martijntju30
Gebruiker
- Lid geworden
- 23 jun 2010
- Berichten
- 32
Hoi allemaal,
Ik wil op mijn site in het beheerpaneel alle beheerders posters kunnen laten maken. Ik wil dit als volgt doen:
1. Een formulier invullen waarin je de tekst geeft, en 1 plaatje.
2. GD libary zorgt er dan voor dat de tekst op de juiste plaats in het plaatje wordt gezet
3. En tot stot het plaatje weergeven
Dit zou moeten kunnen met GD Libary.
MAAR, daar zit mijn probleem. Ik heb verschillende tutorials bekeken, gezocht op google en alle tutorials werken niet (of niet bij mij) en zijn ook zo oud dat reageren daar geen zin heeft. Daarom deze vraag.
Nu is het niet: Dit wil ik, maken jullie het script?
Ik ben zo ver gekomen:
Zoals jullie kunnen zien moet ik alleen nog het deel van de GD libary.(regel 27-31) Kan iemand mij hiermee helpen. (eerst de code voorkauwen en daarna uitleggen vind ik ook prima, maar ik wil het wel graag zelf ook kunnen anders dan heb ik er niets aan.
Alvast bedankt!
PS: Dit zijn de scripts die ik van internet heb gehaald maar a) niet goed snap en b) niet werken:
Ik wil op mijn site in het beheerpaneel alle beheerders posters kunnen laten maken. Ik wil dit als volgt doen:
1. Een formulier invullen waarin je de tekst geeft, en 1 plaatje.
2. GD libary zorgt er dan voor dat de tekst op de juiste plaats in het plaatje wordt gezet
3. En tot stot het plaatje weergeven
Dit zou moeten kunnen met GD Libary.
MAAR, daar zit mijn probleem. Ik heb verschillende tutorials bekeken, gezocht op google en alle tutorials werken niet (of niet bij mij) en zijn ook zo oud dat reageren daar geen zin heeft. Daarom deze vraag.
Nu is het niet: Dit wil ik, maken jullie het script?
Ik ben zo ver gekomen:
PHP:
//Wat hier voor staat maak niet uit..
<div id="hulslinksonder">
<p><?php
$pagina = $_GET['p'];
if (($pagina) == "poster") {
if (isset($_POST['uitvoeren']))
{
$fouten = array(); //array voor fouten starten
if(empty($_POST['kop'])) //Kop checken
{
$fouten[] = 'Je moet wel een kop invullen'; //wanneer kop leeg is
}
elseif(empty($_POST['alinea'])) //Alinea checken
{
$fouten[] = 'Je moet wel een eerste invullen'; //wanneer eerste alinea leeg is
}
elseif(empty($_POST['tekst'])) //tekst checken
{
$fouten[] = 'Je moet wel een tekst invullen'; //wanneer tekst leeg is
}
if(count($fouten) == 0) //wanneer er 0 fouten zijn
{
echo "<p>Er zijn geen fouten gevonden<br /><br />
Nu moet de poster te zien zijn en op te slaan en/of te printen.</p>";
/*Hier zit het probleem: Het plaatje maken*/
echo "<p><br />
<br />
Klik <a href='http://www.geldersweer.nl/bronkerk/pics/folders/poster_leeg.jpg'>hier</a> voor gewoon de lege poster<br />
<br />
En klik <a href='javascript:history.go(-1);'>hier</a> om terug te gaan naar de bewerk pagina voor de poster als deze poster niet goed is.</p>";
}
else //wanneer er wel fouten zijn
{
?>
<table>
<tr>
<td>
<?php
for($i = 0; $i < count($fouten); $i++) //for lus die fouten telt
{
echo '<p> - '.$fouten[$i].'</p><br />'; //fouten weergeven
}
?>
<p>Klik <a href="javascript:history.go(-1);">hier</a> om terug te gaan naar de bewerk pagina en de fouten te verbeteren.</p>
</td>
</tr>
</table>
<?php
}
}
else {
?>
<form method='post' action='indexfolders.php?p=poster'>
<table border='0' width='575'>
<tr>
<td><div id="nieuwsbar">Typ hier je kop: </div></td><td><input name="kop" size='30'></td>
</tr>
<tr>
<td><div id="nieuwsbar">Geef hier een plaatje op:(URL) </div></td><td><input name="plaatje" size='30'></td> <!--<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /><input name="userfile" type="file">-->
</td>
<tr>
<td><div id="nieuwsbar">Typ hier je eerste alinea: </div></td><td><textarea name="alinea" rows='5' cols='30'></textarea></td>
</tr>
<tr>
<td><div id="nieuwsbar">Typ hier je uitgebreide tekst: </div></td><td><textarea name="tekst"rows='5' cols='40'></textarea></td>
</tr>
<tr>
<td colspan='2'><input type="submit" name="uitvoeren" value="Uitvoeren"></td>
</tr>
</table>
</form>
<?php
}
echo "<p><br />
<br />
Klik <a href='http://www.geldersweer.nl/bronkerk/pics/folders/poster_leeg.jpg'>hier</a> voor gewoon de lege poster</p>";
}
else {
switch ($pagina){
case "folder":
echo "Klik <a href='http://www.geldersweer.nl/bronkerk/pics/folders/folder_voorkant.jpg'>hier</a> voor de voorkant van de folder<br />en <a href='http://www.geldersweer.nl/bronkerk/pics/folders/folder_achterkant.jpg'>hier</a> voor de achterkant.<br />
Je kan de folder niet bewerken, als je fouten ziet mail je gewoon naar <a href='mailto:moldavie@live.nl'>mij</a>";
break;
case "cadeaulabel":
echo "Klik <a href='http://www.geldersweer.nl/bronkerk/pics/folders/cadeaulabel.jpg'>hier</a> voor de cadeaulabel, deze kan je op de pakketjes plakken maar ook op een potje honing.";
break;
case"":
echo"Kies rechts welke folder je wil zien!";
break;
}
}
?></p>
</div>
//En wat hierna komt maak ook niet uit...
Zoals jullie kunnen zien moet ik alleen nog het deel van de GD libary.(regel 27-31) Kan iemand mij hiermee helpen. (eerst de code voorkauwen en daarna uitleggen vind ik ook prima, maar ik wil het wel graag zelf ook kunnen anders dan heb ik er niets aan.
Alvast bedankt!
PS: Dit zijn de scripts die ik van internet heb gehaald maar a) niet goed snap en b) niet werken:
PHP:
<?php
//de tekst uit je URL halen, kun je eventueel weg laten en bij $text gewoon $_GET['tekst'] zetten.
$tekst = addslashes($_GET['tekst']);
$image = addslashes($_GET['img']);
//aangeven dat het om een plaatje gaan d.m.v. een header (LET OP: ik heb PNG gebruikt voor betere kwaliteit!! het werkt dus WEL)
if (!file_exists($image)){
die ("Unknown image file");
}
//Geef het plaatje aan waar dat de tekst in moet komen (kun je evt. uit database of URL halen, maar zorg ervoor dat het plaatje op je host staat!)
//het plaatje MOET .jpg of .jpeg zijn, voor andere extensies zie php.net
$extension = explode(".", $image);
$extension = strtolower(end($extension));
switch ($extension){
case 'jpg':
$im = imagecreatefromjpeg($image);
break;
case 'jpeg':
$im = imagecreatefromjpeg($image);
break;
case 'gif':
$im = imagecreatefromgif($image);
break;
case 'bmp':
$im = imagecreatefrombmp($image);
break;
default:
die("Unknown filetype");
break;
}
header('Content-type: image/png');
$c = imagecolorallocate($im, 0, 0, 0); //kleur zwart
if (isset($_GET['txtcolor'])){
$colorArray = Array ("white" => "FFFFFF", "black" => "000", "grey" => "808080");
if (isset($colorArray[strtolower(addslashes($_GET['txtcolor']))]))
$a = $colorArray[strtolower(addslashes($_GET['txtcolor']))];
else
$a = addslashes($_GET['txtcolor']);
$hexArray = sscanf('#'.$a, '#%2x%2x%2x');
$c = imagecolorallocate($im, $hexArray[0], $hexArray[1], $hexArray[2]);
}
//eventueel een vierkantje, dan moet je de dubbel slash voor de volgende regel weg halen.
//imagefilledrectangle($im, 0, 0, 399, 29, $white);
//Het lettertype, let op dat deze zich op je host MOET bevinden.
$font = 'tahoma.ttf';
//De originele tekst, in het zwart. en de positie ervan.
imagefttext($im, 20, 0, 5, 25, $c, $font, $tekst);
//Gebruik imagepng() voor een mooier en duidelijker resultaat van je plaatje!!
imagepng($im); //output
//verwijder de afbeelding weer om plaats op je host te behouden.
imagedestroy($im);
?>
HTML:
<img src="create_img.php?tekst=Hello%20World&img=plaatje.jpg&txtcolor=00FFFF" alt="plaatje" />