Hallo,
ich bin dabei mich mit PHP zu beschäftigen, bisher habe ich allerdings nur gute Kenntnisse in HTML. Als Ziel für mein erstes PHP-Projekt habe ich mir vorgenommen, ein Grafikgenerator zu erstellen, bei dem durch die vom User eingegebenen Daten ein GIF erzeugt wird. Das ist mir dann nach etlichen Tagen und viel lesen auch gelungen, nun wollte ich das ganze Projekt noch erweitern. Mein Ziel ist es nun, dass sich die Grafik nahezu in "Echtzeit" an die Eingaben anpasst und das durch die Größeneingabe (die Größe der Grafik muss sich nicht verändern) automatisch ein Preis ermittelt wird. Das Problem was ich habe ist, dass sich die Grafik zwar ändert, aber die Werte alle nicht erhalten bleiben und das alles dabei ziemlich chaotisch wird. Außerdem klappt das mit der Größeneingabe nicht, die Länge soll sich automatisch durch die Höhe ergeben und anders rum. Ich habe tagelang gegooglet und stehe voll auf dem Schlauch, vielleicht könnt Ihr mir auf die Sprünge helfen?
Gruß,
Laura
Hier die Codes:
bildformular.php
textzubild.php
ich bin dabei mich mit PHP zu beschäftigen, bisher habe ich allerdings nur gute Kenntnisse in HTML. Als Ziel für mein erstes PHP-Projekt habe ich mir vorgenommen, ein Grafikgenerator zu erstellen, bei dem durch die vom User eingegebenen Daten ein GIF erzeugt wird. Das ist mir dann nach etlichen Tagen und viel lesen auch gelungen, nun wollte ich das ganze Projekt noch erweitern. Mein Ziel ist es nun, dass sich die Grafik nahezu in "Echtzeit" an die Eingaben anpasst und das durch die Größeneingabe (die Größe der Grafik muss sich nicht verändern) automatisch ein Preis ermittelt wird. Das Problem was ich habe ist, dass sich die Grafik zwar ändert, aber die Werte alle nicht erhalten bleiben und das alles dabei ziemlich chaotisch wird. Außerdem klappt das mit der Größeneingabe nicht, die Länge soll sich automatisch durch die Höhe ergeben und anders rum. Ich habe tagelang gegooglet und stehe voll auf dem Schlauch, vielleicht könnt Ihr mir auf die Sprünge helfen?
Gruß,
Laura
Hier die Codes:
bildformular.php
PHP:
<html>
<head>
</head>
<body>
<?php
session_start();
$mytext=$_GET['meintextform'];
$schriftfarbe=$_GET['color'];
$schriftart=$_GET['font'];
$text_width = $_GET['textlänge'];
$text_height = $_GET['texthöhe'];
//$grafikpreis = $_GET['preis'];
if(isset($mytext)){print '<img src="textzubild.php?meintextform=' . $mytext . '&color=' . $schriftfarbe . '&font=' . $schriftart . '&textlänge=' . $text_width .'&texthöhe=' . $text_height .'">';}
?>
<br>
<br>
<table width="654" border="1" align="center" cellpadding="3" cellspacing="0" bgcolor="#ffffff">
<tr>
<td align='center'><b><h2>Wähle einen Text aus.</h2></b></td>
</tr>
</table>
<table width="650" border="1" align="center" cellpadding="0" cellspacing="1" bgcolor="#ffffff">
<tr>
<form name="form" method="get" action="bildformular.php">
<td>
<table width="650" border="0" cellpadding="3" cellspacing="1" bgcolor="#ffffff">
<tr>
<td><b>Bildausgabe:</b></td>
</tr>
<tr>
<td><input name="meintextform" type="text" size="100" maxlength="100" value="<?php echo ($_SESSION['meintextform']); ?>" onChange="this.form.submit()"></td>
</tr>
<tr>
<td>
Schriftart auswählen:
<p>
<input type="radio" name="color" value="color1" onClick="this.form.submit()" <?php if($_SESSION['color']=='color1') echo 'checked="checked"'; else echo 'checked="checked"' ?>>weiss<br>
<input type="radio" name="color" value="color2" onClick="this.form.submit()" <?php if($_SESSION['color']=='color2') echo 'checked="checked"'; ?>>rot<br>
<input type="radio" name="color" value="color3" onClick="this.form.submit()" <?php if($_SESSION['color']=='color3') echo 'checked="checked"'; ?>>blau
</p>
<br>
Schriftfarbe auswählen:
<p>
<input type="radio" name="font" value="Agate Bold" onClick="this.form.submit()" <?php if($_SESSION['font']=='Agate Bold') echo 'checked="checked"'; else echo 'checked="checked"' ?>>Agate Bold<br>
<input type="radio" name="font" value="AirstreamNF" onClick="this.form.submit()" <?php if($_SESSION['font']=='AirstreamNF') echo 'checked="checked"'; ?>>AirstreamNF<br>
<input type="radio" name="font" value="Allegro_BT" onClick="this.form.submit()" <?php if($_SESSION['font']=='Allegro_BT') echo 'checked="checked"'; ?>>Allegro_BT
</p>
<br>
Größe des Schriftzugs in cm:
<p>
Länge:
<input name="textlänge" type="text" size="7" maxlength="3" value="<?php echo ($_SESSION['grafiklänge']); ?>" onChange="this.form.submit()">cm<br>
Höhe:
<input name="texthöhe" type="text" size="7" maxlength="3" value="<?php echo ($_SESSION['grafikhöhe']); ?>" onChange="this.form.submit()">cm
</p>
<br>
Gespiegelte Grafik:
<p>
<input type="checkbox" name="gespiegelt" value="gespiegelt"> gespiegelt<br> <!--Wie spiegelt man GIF...? -->
</p>
<br>
Preis:
<p>
<input type="hidden" name="preis" value="<?php echo ($_SESSION['preis']); ?>"> EURO
</p>
<br>
</td>
</tr>
<tr>
<td><input type="submit" name="save_form" value="Submit"> <input type="reset" name="save_form" value="Reset"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</body>
</html>
textzubild.php
PHP:
<?php
session_start();
header("Content-type: image/gif");
$mytext = $_GET['meintextform'];
$schriftfarbe = $_GET['color'];
$schriftart = $_GET['font'];
$text_width = $_GET['textlänge'];
$text_height = $_GET['texthöhe'];
//$grafikpreis = $_GET['preis'];
$_SESSION['meintextform'] = $_GET['meintextform']; //SESSIONS bekommen erst richtigen value nach refresh, nicht nach submit.
$_SESSION['color'] = $_GET['color'];
$_SESSION['font'] = $_GET['font'];
$_SESSION['textlänge'] = $_GET['textlänge'];
$_SESSION['texthöhe'] = $_GET['texthöhe'];
//$_SESSION['preis'] = $_GET['preis']
// hier kommen die Schriftarten hin:
$font = '';
switch ($schriftart) {
case "Agate Bold":
$font = './Agate Bold.ttf';
break;
case "AirstreamNF":
$font = './AirstreamNF.ttf';
break;
case "Allegro_BT":
$font = './Allegro_BT.ttf';
break;
};
$fontsize = 36;
$angle = 0;
$bg_size = imagettfbbox($fontsize, $angle, $font, $mytext);
$width = (abs($bg_size[4] - $bg_size[0]) + 60);
$height = (abs($bg_size[5] - $bg_size[1]) + 40);
$pos_x = 30;
$pos_y = (($height / 2) + 18) ;
$picture = imagecreate($width, $height);
$bg_color = imagecolorallocate($picture, 255, 255, 127);
// Hier wird die Textfarbe ausgewählt:
$textcolor = '';
switch ($schriftfarbe) {
case "color1":
$textcolor = imagecolorallocate($picture,255,255,255);
break;
case "color2":
$textcolor = imagecolorallocate($picture,255,0,2);
break;
case "color3":
$textcolor = imagecolorallocate($picture,2,0,255);
break;
};
imagefill($picture, 0, 0, $bg_color);
imagettftext($picture, $fontsize,$angle,$pos_x,$pos_y, $textcolor, $font, $mytext);
imagegif($picture);
imagegif($picture,"1bildausgabe.gif");
imagedestroy($picture);
// Größenberechnung grafik
$grafikverhältnis = ($width / $height); // Für Berechnung mit der Eingabe der Grafikmaße.
//Rechnung funktioniert noch nicht wie gewollt!!! Eingegebener Wert muss erhalten bleiben, anderer ausgerechnet werden (if else?)
$grafiklänge = ($text_height * $grafikverhältnis); //automatische Grafiklänge, wenn nur Höhe angegeben wurde
$_SESSION['grafiklänge'] = $grafiklänge;
//$_SESSION['grafiklänge'] = $text_width;
$grafikhöhe = ($text_width / $grafikverhältnis); //automatische Grafikhöhe, wenn nur Länge angegeben wurde
$_SESSION['grafikhöhe'] = $grafikhöhe;
// Preisberechnung:
/* $grafikgröße = ($grafiklänge + $grafikhöhe)
$grafikpreis = '';
//$_SESSION['grafikpreis'] = $grafikpreis
if ( $grafikgröße <= 50 )
{ $grafikpreis = "1,00 Euro"; }
elseif ($grafikgröße <= 1000)
{ $grafikpreis = "2,00 Euro"; }
elseif ($grafikgröße <= 2000)
{ $grafikpreis = "3,00 Euro"; }
else
{ $grafikpreis = "Der Grafik ist zu groß."; };
*/
?>
Zuletzt bearbeitet: