[PHP] Problem mit Script

STL

Well-known member
ID: 216039
L
21 Mai 2006
336
13
Hi!
Ich habe versucht zur Übung ein kleines Gästebuch zu schreiben, dass nicht mit einer Datenbank sondern mit einer .txt-Datei kommuniziert. Leider erhalte ich die folgende Fehlermeldung:
Parse error: syntax error, unexpected T_STRING in /opt/lampp/htdocs/gb/eintragen.php on line 1
bzw.
Parse error: syntax error, unexpected T_STRING in /opt/lampp/htdocs/gb/index.php on line 1

Ich habe hier die eintragen.php:
Code:
<?xml version="1.0" encoding="utf-8"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   
  "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="https://www.w3.org/1999/xhtml"> 
  <head>  
    <title>Gästebuch</title> 
  </head>
  <body>
	<?php
	$name = $_POST['name'];
	$mail = $_POST['mail'];
	$www = $_POST['www'];
	$mitt = $_POST['mitt'];

	$data = "<table border="1" width="80%">
		   <tr>
		   <td>Von: <?php $name ?></td>
		   <td>Mail: <a href="mailto:$mail">$mail</a></td>
		   <td>Homepage: <a href="$www">$www</a></td>
		   <td> </td>
		   <td>Mitteilung: <br />$mitt</td>"

	$file = 'content.txt'
	$fh = fopen($file, 'a') or die ('Could not open file!');
	fwrite($fh, "$data \n\n\n") or die ('Could not write to file!');
	fclose($fh)
	?>

	<p><a href="gb.php">Zurück zum Gästebuch>/a></p>
  </body>  
</html>

und hier die index.php:
Code:
<?xml version="1.0" encoding="utf-8"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   
  "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="https://www.w3.org/1999/xhtml"> 
  <head>  
    <title>Gästebuch</title>
  </head>
  <body>
    <p>
	<form action="eintragen.php" method="post">
	Name: <input name="name" size="35"><br />
	Email: <input name="mail" size="35"><br />
	Homepage: <input name="www" size="35"><br />
	Mitteilung: <textarea name="mitt" rows="8" cols="35">Ihre Mitteilung</textarea>
	<br /><br />
	<input type="submit" name="submit" value="Abschicken">
	</form>
    </p>
    <p>
	<?php
	$file='content.txt'
	$data=file_get_contents($file) or die ('Could not read file!');
	echo $data
	?>
    </p>
  </body>  
</html>

Die Index.php beinhaltet des Formular für einen Neueintrag und die vorhanden Einträge, die aus der datei content.txt ausgelesen werden soll. Eintragen.php ist zuständig für das Speichern der Formulardaten in der content.txt.

Wäre schön, wenn mir jemand helfen könnte, ich weiß nämlich im moment echt nicht weiter.
 
Das liegt daran, dass der XML Tag fuer den PHP Interpreter aussieht, als waere es ein PHP Anfangs-Tag (<?). Das passiert, da dein Provider short_tags aktiviert hat, damit es funktioniert, machst dus am besten so:

Code:
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
statt deiner ersten Zeile.
 
Danke, der Fehler wäre behoben, jetzt hab ich bei der index.php folgende Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE in /opt/lampp/htdocs/gb/index.php on line 22
und bei der eintragen.php:
Parse error: syntax error, unexpected T_LNUMBER in /opt/lampp/htdocs/gb/eintragen.php on line 15
...

EDIT.: Die index.php läuft nun, habe einige Semikolons vergessen, die eintragen.php leider immernoch nicht (auch hier habe ich fehlende Semikolons ergänzt).
 
Zuletzt bearbeitet:
HI!!

Schreibe Zeile 15-21 in eintragen.php mal so:

PHP:
$data = "<table border=\"1\" width=\"80%\">
		   <tr>
		   <td>Von: ".$name."</td>
		   <td>Mail: <a href=\"mailto:".$mail."\">".$mail."</a></td>
		   <td>Homepage: <a href=\"".$www."\">".$www."</a></td>
		   <td> </td>
		   <td>Mitteilung: <br />".$mitt."</td>"
 
  • Like
Reaktionen: Loo
Ist mir auch gerade aufgefallen, dass ich da keine doppelten Anführungszeichen hätte verwenden dürfen, habe stattdessen jetzt einfache genommen, das funktioniert auch. Danke an alle, jetzt läuft alles fehlerfrei. Hier kann dann dicht.
 
Thx... Das war mir klar... Ich habe aber diese Methode gewählt, damit du besser siehst, was du für ein Fehler gemacht hast...