Brauche Hilfe Buttongenerator

Begonnen von oliver, 13 Januar 2003, 08:09:35

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

oliver

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]

oliver

geht jetzt tausend dank.

wird noch als modul erstellt

[Editiert am 13/1/2003 von oliver]

jubilee

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]

oliver

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]

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>

jubilee

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]

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

oliver

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);
?>

jubilee

Hmmmmm ...
Setz einmal in der index.php und button.php gleich oben hinter
<?
global $wunschbutton;
 MfG
jubilee

oliver


oliver

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.

jubilee

Ja, das ist ganz schön verzwickt.
Schau mir das nochmal in Ruhe an.
MfG
jubilee

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]

oliver

ok ich bin bis jetzt noch nicht weider gekommen.

Mannn so schnell kann man doch gar nicht lesen ?!?!?
 :D  :D  :D
MfG
jubilee

jubilee

Hallo !
Poste bitte einmal die ersten Zeilen (10) deines Moduls.
MfG
jubilee

oliver

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();

jubilee

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

oliver

nein die index.html ist jetzt die index.php

also muss ich alles rausmachen und die pfade von hand setzen.

oliver

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.