Code-Generator

PC Freak

Erfahrenes Mitglied
Hallo,

ich bin leider unerfahren in Sachen PHP.

Ich betreibe ein Gutscheinblog und die Gutscheincodes werden in einer Tabelle gespeichert:

gutscheinfq5a.jpg


Der HTML-Code der 1. Zeile (nach der Kopfleiste) sieht folgendermassen aus.

Code:
<tr>
<td height="30">

<b><a class="" href="http://www.3gstore.de" target="_blank" rel="nofollow" onclick="this.innerHTML='gulli';<br />
var Fenster = window.open(this.href, 'Neuesfenster01', 'directories=yes,resizable=yes,scrollbars=yes,status=yes,menubar=yes,location=yes,locationbar=yes,toolbar=yes,width=980,height=760'); Fenster.blur();self.focus();<br />
alert('Wir haben die Anbieter-Seite im Hintergrund geöffnet. Geben Sie dort nun während der Bestellung den folgenden Gutschein Code ein: \n\ngulli\n\n'); return false;">Gutschein anzeigen</a></b>

</td>

<td>30 Euro 3gStore Gutschein beim Kauf eines iPhone 3GS</td>
<td>keiner</td>
<td>auf Widerruf</td>
</tr>


Mit Hilfe von verschiedenen Code-Schnippseln, habe ich eine Art "Code Generator" programmiert. Damit ich alle Daten (Gutscheincode, Mindestbestellwert ...) nur eingeben brauche und mir der HTML Code der Tabellenzeile, automatisch generiert wird.


Über eine Php datei übermittel ich alle von mir eingegebenen Daten (Funktioniert) an die Datei Code.php. Dort befindet sich die Ausgabe:


Code:
<?php
	if(isset($_POST['generate_code'])) {
	// post values
	$text		= $_POST['text'];
	$gutscheincode			= $_POST['gutscheincode'];
	$link	= $_POST['link'];
	$wert	= $_POST['wert'];
	$mindestbestellwert	= $_POST['mindestbestellwert'];
	$gueltigkeit	= $_POST['gueltigkeit'];

	$code	= '

<tr>
<td height="30"><b><a class="" href="'.$link.'" target="_blank" rel="nofollow" onclick="this.innerHTML=''.$gutscheincode.'';<br />
var Fenster = window.open(this.href, 'Neuesfenster01', 'directories=yes,resizable=yes,scrollbars=yes,status=yes,menubar=yes,location=yes,locationbar=yes,toolbar=yes,width=980,height=760'); Fenster.blur();self.focus();<br />
alert(''.$text.' \n\n'.$gutscheincode.'\n\n'); return false;">Gutschein anzeigen</a></b></td>
<td>'.$wert.'</td>
<td>'.$mindestbestellwert.'</td>
<td>'.$gueltigkeit.'</td>
</tr>';
}
		echo $code;
	}
?>


Leider erhalte ich folgende Meldung:

<br />
<b>Parse error</b>: syntax error, unexpected T_STRING in <b>/www/htdocs/w00d7c81/gutschein/ausgabe.php</b> on line <b>14</b><br />

Die Ausgabe scheint irgendwie falsch zu sein ... mit dem Zeichen ' mache ich glaub ich irgendetwas falsch, bei $code.
 
Zuletzt bearbeitet:
Auf Zeile 14
Code:
.... this.innerHTML=''.$gutscheincode.'';<br /> ....
Warum 2 ' hintereinander?
Wenn da wirkliche ein ' ausgegeben werden sollte, dann musst du es mit \ escapen
Code:
.... this.innerHTML=\''.$gutscheincode.'\';<br /> ....
 
Du hast tatsächlich ein Problem, weil du den Überblick über die öffnenden und schließenden Anführungszeichen verlierst. Das ist auch kein Wunder. Das ist jedem schon passiert.

Du wirst jetzt nicht drumherumkommen, deinen Code ganz ab $code = ' ... ganz durchzusehen.

Ich empfehle dir bei so unübersichtlichen Konstrukten zu HTML überzugehen. So mache ich es jedenfalls immer. Das ist zwar auch nicht richtig "schön", aber ich glaube, eine wirklich schöne Schreibweise gibt es dafür nicht. Wenn du so vorgehst, hast du zwar etwas mehr zu tippen, aber du kommst mit den Anführungszeichen etwas weniger durcheinander. Ich zumindest.

Also
Code:
<a href="<?php echo $link; ?>" usw.
 
Bei grösseren HTML-komponenten lohnt sich ansonsten auch der Ansatz von Anna. Es macht das ganze lesbarer.
 
Zurück