Hallo Leute
bin gerade dabei ein Buttongenerator Modul zu bauen. Mein Prob ist folgendes.
Soweit läuft er aberhalt nur mit einen Button. Jetzt möchte ich aber das sich der User sich aus 10 verschiedenen Button Bildern eins aus suchen kann und dann abschickt.
Wie kann ich das in der Funktion $im = ImageCreateFromJpeg("button.jpg"); ändern das nicht der eine button drin steht sonder alle 10
[Editiert am 13/1/2003 von oliver]
geht jetzt tausend dank.
wird noch als modul erstellt
[Editiert am 13/1/2003 von oliver]
Hallo !
Benenne alle Buttons nach dem Muster button1.jpg, button2.jpg usw...
for ($i=1; $i<11;n++)
{
$im[$i] = ImageCreateFromJpeg("button".$i.".jpg);
};
So sollte es dann gehen
Es stehen jetzt in $im[1] bis $im[10] die images drin.
MfG
jubilee
[Editiert am 13/1/2003 von SiteAdmin jubilee]
hab das mal so gemacht geht aber trotzdem nicht.
hier mal der code
Header("Content-type: image/jpeg");
for ($i=1; $i<11;n++)
{
$im[$i] = ImageCreateFromJpeg("button".$i.".jpg);
};
// set up image and colours
$white = ImageColorAllocate($im, 255, 255, 255);
// get font dimensiona
$font_height = ImageFontHeight(1);
$font_width = ImageFontWidth(2);
// get image dimensiona
$image_height = ImageSY($im);
$image_width = ImageSX($im);
// get string length
$length = $font_width * strlen($channel);
// calculate start coordinates for string
$image_center_x = ($image_width/2)-($length/2);
$image_center_y = ($image_height/2)-($font_height/1);
// write string
ImageString($im, 3, $image_center_x, $image_center_y, $channel, $white);
Imagejpeg($im);
ImageDestroy($im);
[Editiert am 13/1/2003 von oliver]
das bild wird hier aus gewählt via radio button
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<center><TABLE>
<TR>
<TD>Button Generator</TD>
</TR>
<TR>
<FORM METHOD=POST ACTION="index.php">
<TD><label><input type="radio" name="wunschbutton" value="1" />Button 1</label><img src="button.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="2" />Button 2</label><img src="button1.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="3" />Button 3</label><img src="button2.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="4" />Button 4</label><img src="button3.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="5" />Button 5</label><img src="button4.jpg" border="0" alt=""></TD>
</TR>
<TR>
<TD><INPUT TYPE="submit"></TD>
</TR></FORM>
</TABLE></center>
</BODY>
</HTML>
Hmmmmm .....
Also, wenn überhaupt, muss die Klammer ans ende ...
Zitat<?
Header("Content-type: image/jpeg");
for ($i=1; $i<11;n++)
{
$im[$i] = ImageCreateFromJpeg("button".$i.".jpg);
// set up image and colours
$white = ImageColorAllocate($im, 255, 255 , 255);
// get font dimensiona
$font_height = ImageFontHeight(1);
$font_width = ImageFontWidth(2);
// get image dimensiona
$image_height = ImageSY($im[$i]); ///Variablen anpassen !!!
$image_width = ImageSX($im[$i]);
// get string length
$length = $font_width * strlen($channel);
// calculate start coordinates for s tring
$image_center_x = ($image_width/2)-($length/2);
$image_center_y = ($image_height/2)-($font_height/1);
// write string
ImageString($im[$i], 3, $image_center_x, $image_ce nter_y, $channel, $white);
Imagejpeg($im[$i]);
ImageDestroy($im[$i]);
};
?>
Wo werden die Bilder denn angezeigt. Die Schleife läuft schnell durch.
Evt. bleibt immer nur das letzte Bild stehen. Die Funktion Imagejpeg ()sendet das Bild zwar an den Browser, aber danach beginnt der nächste Schleifendurchlauf mit dem nächsten Bild. So bearbeitest Du die Bilder button1 - button10.jpg durchlaufend. Ich sehen in Deinem Quellcode keine
Struktur um das Bild vorher auszuwählen.
MfG
jubilee
[Editiert am 13/1/2003 von SiteAdmin jubilee]
Ahhh, soo !
Als erstes bitte die Werte der Radiobuttons ändern --->
Zitat<TD><label><input type="radio" name="wunschbutton" value="1" />Button 1</label><img src="button.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="2" />Button 2</label><img src="button1.jpg" border="0" alt=""></TD>
Bitte so abändern :
Zitat<TD><label><input type="radio" name="wunschbutton" value="button1.jpg" />Button 1</label><img src="button.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button2.jpg" />Button 2</label><img src="button1.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button3.jpg" />Button 3</label><img src="button2.jpg" border="0" alt=""></TD>
Wichtig ist, die values müssen den Dateinamen der buttons entsprechen !
Jetzt kann nach absenden des Forms im Script über den Variablennamen
$wunschbutton das ausgewählte Image bearbeitet werden --->
Zitat<?
Header("Content-type: image/jpeg");
$im = ImageCreateFromJpeg($wunschbutton);
// set up image and colours
$white = ImageColorAllocate($im, 255, 255 , 255);
// get font dimensiona
$font_height = ImageFontHeight(1);
$font_width = ImageFontWidth(2);
// get image dimensiona
$image_height = ImageSY($im);
$image_width = ImageSX($im);
// get string length
$length = $font_width * strlen($channel);
// calculate start coordinates for s tring
$image_center_x = ($image_width/2)-($length/2);
$image_center_y = ($image_height/2)-($font_height/1);
// write string
ImageString($im, 3, $image_center_x, $image_ce nter_y, $channel, $white);
Imagejpeg($im);
ImageDestroy($im);
?>
Ich glaub, das funkt besser
geht trotzdem nicht.
pass mal auf folgende dateien hab ich.
################################################
index.html zum aus suchen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<center><TABLE>
<TR>
<TD>Button Generator</TD>
</TR>
<TR>
<FORM METHOD=POST ACTION="index.php">
<TD><label><input type="radio" name="wunschbutton" value="button1.jpg" />Button 1</label><img src="button5.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button2.jpg" />Button 2</label><img src="button1.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button3.jpg" />Button 3</label><img src="button2.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button4.jpg" />Button 4</label><img src="button3.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button5.jpg" />Button 5</label><img src="button4.jpg" border="0" alt=""></TD>
</TR>
<TR>
<TD><INPUT TYPE="submit"></TD>
</TR></FORM>
</TABLE></center>
</BODY>
</HTML>
################################################
index.php wo der button dann angezeigt wird
<?php
$menu_items = array( array (name => "Home", url => "home.html"),
array (name => "Web Links", url => "links.html"),
array (name => "Impressum", url => "impressum.html"),
array (name => "Downloads", url => "downloads.html"),
array (name => "Kontakt", url => "kontakt.html"),
array (name => "Fotos", url => "gallerie.html")
);
?>
<center><h2>Button Generator</h2></center>
<br<<br>
<center><table border="0" cellspacing="0" cellpadding="0">
<?php
$i_max = count($menu_items);
for ($i=0;$i<$i_max;$i++) {
echo "<td><a href=\"".$menu_items[$i][url]."\"><img src=\"button.php?channel=".$menu_items[$i][name]."\" border=\"0\" alt=\"\"></a></td>";
}
?>
</table></center>
################################################
und button.php zum generieren
<?
Header("Content-type: image/jpeg");
$im = ImageCreateFromJpeg($wunschbutton);
// set up image and colours
$white = ImageColorAllocate($im, 255, 255, 255);
// get font dimensiona
$font_height = ImageFontHeight(1);
$font_width = ImageFontWidth(2);
// get image dimensiona
$image_height = ImageSY($im);
$image_width = ImageSX($im);
// get string length
$length = $font_width * strlen($channel);
// calculate start coordinates for string
$image_center_x = ($image_width/2)-($length/2);
$image_center_y = ($image_height/2)-($font_height/1);
// write string
ImageString($im, 3, $image_center_x, $image_center_y, $channel, $white);
Imagejpeg($im);
ImageDestroy($im);
?>
Hmmmmm ...
Setz einmal in der index.php und button.php gleich oben hinter
<?
global $wunschbutton;
MfG
jubilee
geht leider noch nicht
so jetzt hab ich es mal mit als modul versucht. zeigt auch die index an, aber wenn die button dann generiert werden sollen kommt immer nur
########################
You can't access this file directly...
########################
wie kann ich das machen damit die fertigen buttons angezeigt werden.
Ja, das ist ganz schön verzwickt.
Schau mir das nochmal in Ruhe an.
MfG
jubilee
So, versuch das einmal :
index.php :
Zitat<?php
$menu_items = array( array (name => "Home", url => "home.html"),
array (name => "Web Links", url => "links.html"),
array (name => "Impressum", url => "impressum.html"),
array (name => "Downloads", url => "downloads.html"),
array (name => "Kontakt", url => "kontakt.html"),
array (name => "Fotos", url => "gallerie.html")
);
echo "<center><h2>Button Generator</h2></center>"
."<br<"
."<center><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
$i_max = count($menu_items);
for ($i=0;$i<$i_max;$i++) {
$channel=($menu_items[$i][name]);
echo "<td><a href=\"".$menu_items[$i][url]."\"><img src=\"button.php?wunschbutton=",$wunschbutton,"&channel=",$channel,"\"border=\"0\" alt=\"\"></a></td>";
}
echo "</table></center>";
?>
button.php -->
Zitat<?
Header("Content-type: image/jpeg");
$im = ImageCreateFromJpeg($wunschbutton);
// set up image and colours
$white = ImageColorAllocate($im, 255, 255, 255);
// get font dimensiona
$font_height = ImageFontHeight(1);
$font_width = ImageFontWidth(2);
// get image dimensiona
$image_height = ImageSY($im);
$image_width = ImageSX($im);
// get string length
$length = $font_width * strlen($channel);
// calculate start coordinates for string
$image_center_x = ($image_width/2)-($length/2);
$image_center_y = ($image_height/2)-($font_height/1);
// write string
ImageString($im, 3, $image_center_x, $image_center_y, $channel, $white);
Imagejpeg($im);
ImageDestroy($im);
?>
index.html -->
Zitat<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<center><TABLE>
<TR>
<TD>Button Generator</TD>
</TR>
<TR>
<FORM METHOD=POST ACTION="index.php">
<TD><label><input type="radio" name="wunschbutton" value="button1.jpg" />Button 1</label><img src="button1.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button2.jpg" />Button 2</label><img src="button2.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button3.jpg" />Button 3</label><img src="button3.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button4.jpg" />Button 4</label><img src="button4.jpg" border="0" alt=""></TD>
<TD><label><input type="radio" name="wunschbutton" value="button5.jpg" />Button 5</label><img src="button5.jpg" border="0" alt=""></TD>
</TR>
<TR>
<TD><INPUT TYPE="submit"></TD>
</TR></FORM>
</TABLE></center>
</BODY>
</HTML>
So läufts zumindest bei mir .
Mfg
jubilee
[Editiert am 13/1/2003 von SiteAdmin jubilee]
ok ich bin bis jetzt noch nicht weider gekommen.
Mannn so schnell kann man doch gar nicht lesen ?!?!?
:D :D :D
MfG
jubilee
Hallo !
Poste bitte einmal die ersten Zeilen (10) deines Moduls.
MfG
jubilee
steht in der index.php und indexx.php
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
include("header.php");
OpenTable();
Bei allen Dateien, die nicht von der modules.php aufgerufen werden, bekommst Du die Fehlermeldung "You can't...."
Wenn Du noch die html-datei zur Auswahl der Buttons verwendest (und diese dann die index.php aufruft wie in deinen Beispielen), dann kannst Du dieses Konstrukt--->
Zitatif (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
nicht verwenden. Bitte aus der Index.php (dürfte reichen, sonst aus beiden) entfernen.
MfG
jubilee
nein die index.html ist jetzt die index.php
also muss ich alles rausmachen und die pfade von hand setzen.
So fertig jetzt geht alles.
http://fhost.de/modules.php?name=Button_Generator
das design und das script wird noch verfeinert
Danke für eure profesionelle hilfe.
Also, die Idee ist schon einmal GUT, nur ist es fast zwingend das man beim Auswählen des BUTTONS anschliessen wenigstens den TEXT der Buttons selber wählen darf! So ist es irgendwie nur halb. Ich hoffe ich werde nicht erschlagen dafür, finde es ja gut es fehlt halt nur der Kick das gewisse etwas ;)
@Admin DarkBoy
das ging mir gestern auch noch durch den kopf.
das wird auch noch geändert das der user den text bestimmen kann.
könnte bitte mal einer schauen.
habe jetzt mit texteingabe, aber nach dem absenden wird das bild nich angezeigt.
kommt aber auch keine fehlermeldung.
http://fhost.de/modules.php?name=Button_Generator
Hallo !
Nein, kann niemand schauen ...... :exclam:
Das Modul ist nicht aktiv !
MfG
jubilee
zeigt aber aktiv an
Ja, stimmt .
Der link oben ist verkehrt.
Da steht noch ein dahinter.
Das sieht ja verdächtig nach copy&paste aus ;)
MfG
jubilee
wie der link ist verkehrt
edit
achso den hier im forum.
nochmal richtig
http://fhost.de/modules.php?name=Button_Generator
[Editiert am 14/1/2003 von oliver]
Genau der war gemeint.
Hab's mir einmal angeschaut. Denke, das Problem ist ähnlich dem Letzten.
Weitergabe der Parameter schein nicht zu klappen.
Entweder Du schaust nochmal selbst, oder Du schickst mir das Modul einmal per E-Mail zu
mailto:mailcollect@grunert-web.de
und ich schau nochmal.
MfG
jubilee
habs dir per mail mal zu geschickt
O.K.
Werds mir einmal ansehen.
Komm ich aber erst etwas später dazu (heut abend).
Ich versuchs mal zu fixen und schicks Dir dann zurück (falls Erfolg ;) )
MfG
jubilee
ok und setzt in den scripte schon mal dein copyright mit rein.
aben es ja praktisch zusammen gemacht ;)
so habe alles noch mal neu gemacht mit mehren button kategorien zur auswahl.
mein problem ist folgendes.
im modul liegt die index.php mit den kategorien. da ich das modul von der index nicht direkt aufrufen kann hab ich mehrer button1.php, button2.php in einen ordner im root liegen.
wenn ich jetzt von der index.php die button1.php aufrufe wird die datei mainfile.php in der datei header nicht includet.
welche pfad einstellungen muss ich vornehmen oder geht das nicht.
müssen die butten1.php ...... im root liegen.
wo kann man die farbe der schrift ändern
[Editiert am 15/1/2003 von oliver]
Hmmmm.....
Warum packst Du den ganzen(!) Auswahlkram nicht in die
index.php.
Die ruft dann über das Form wieder die Indexx.php auf die auf die
Erstellungsroutine zurückgreift und den fertigen Button ausgibt ??
Dann könntest Du dir die x extra Auswahlseiten sparen.
MfG
jubilee
äh jetzt mal in ruhe was soll ich in die index packen
edit
mach mal bitte ein beispiel
[Editiert am 15/1/2003 von oliver]
Nun, du hast jetzt ja die Auswahl für die Button-Gruppe und die Auswahl für den einzelnen Button in der Gruppe (und den Text) auf verschiedene Dateien aufgeteilt (index.php, button1 - 5.php).
Diese würde ich in eine Datei zusammenfassen (idealerweise in der index.php)
Das würde einige Probleme beheben.MfG
jubilee
mach ich später.
hab gerade mal bei selfphp geschaut, finde aber nichts wie ich die text farbe ändern kann.
Hallo !
Die Textfarbe kannst Du in der ImageString-Funktion einstellen.
Die verwenest du doch, um den String auf die Buttongrafik zu schreiben.
ImageString(int im, int font, int x, int y, string s, int col)
Die Übergabewerte : int im - Image-Variable, int font - Schriftgröße,
int x und int y - (XY-Koordinaten) Startpunkt des Textes, string s - der Text,
int col - die Textfarbe.
MfG
jubilee
da hab ich auch schon alles mögliche geändert aber ohne erfolg
Jaaaaa .... Hmmm hmmm .....
Die farbe, die Du verwenden möchtest, musst Du vorher mit
ImageColorAllocate alloziieren.
Die Farbe wird im RGB-Modus angegeben (RotGrünBlau jeweils von 0 bis 255)
Beispiel :
$Farbe_Text=ImageColorAllocate($im, 255,255,255);
Damit hast Du der Variablen $FarbeText diesen Farbwert zugeweisen.
und dann nimmst du für das Schreiben dann :
ImageString($im,xxx,xxx,xxx,xxx,$Farbe_Text);
So müüste das gehen.
MfG
jubilee
jep so klappt es. so ähnlich hatte ich es auch schon hab nur vergessen die andere variable raus zu machen.