Formular FEHLER hilfeeeee

LoMo

Erfahrenes Mitglied
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Forumular Test</title>
</head>
<body>
<?php
	if (isset($_POST['sent']) & isset($_POST['name']))
	{
		echo <<<FORMANSWER
		Sie haben folgende Nachricht gesendet:<p />
		<b>Ihr Name:</b> {$_POST['name']} <br />
		<b>E-Mail:</b> {$_POST['email']} <br />
		<b>Bewertung:</b> {$_POST['rank']} <br />
		<b>Ihre Nachricht:</b> {$_POST['message']} <br />
		<b>Gekauft bei:</b> {$_POST['purchase']}
		
		<form method="post" action="{$_SERVER['PHP_SELF']}">
		<input type="submit" value="Neue Nachricht senden?" />
		</form>
		FORMANSWER;
	}
	else
	{
		?>
		<h3> wie hat Ihnen das Buch bisher gefallen?</h3>
		<form method="post" action="<?=$_SERVER['PHP_SELF']?>"> //FEHLER SIEHE UNTEN
		<table>
			<tr>
				<td>Mein Name:</td>
				<td><input type="text" name="name" size="50" /></td>
			</tr>
			<tr>
				<td>Meine E-Mail:</td>
				<td><input type="text" name="email" size="50" /></td>
			</tr>
			<tr>
				<td>Bewertung:</td>
				<td>
				1<input type="radio" name="rank" value="1" />
				2<input type="radio" name="rank" value="2"
					checked="checked"/>
				3<input type="radio" name="rank" value="3" />
				4<input type="radio" name="rank" value="4" />
				5<input type="radio" name="rank" value="5" />
				(Schulnoten)
				</td>
			</tr>
			
			<tr>
				<td valign="top">Nachricht:</td>
				<td>
				<textarea cols="30" rows="6" name="message">
					Ihre Nachricht...</textarea>
				</td>
			</tr>
			<tr>
				<td>Wo haben Sie es gekauft?</td>
				<td>
				<select size="1" name="purchase">
				<option value="Fachbuchhandel" >Fachbuchhandel</option>
				<option value="Kaufhaus" >Kaufhaus</option>
				<option value="Online" >Online</option>
				<option value="Verlag" >Verlag</option>
				<option value="Nur geliehen" >Nur geliehen</option>
				</select>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<input type="submit" value="Absenden" />
					<input type="reset" />
					<input type="hidden" name="sent" value="1" />
				</td>
			</tr>
		</table>
</form>
		<?php
		} /* end if */
		?>
	}
?>
</body>
</html>

FEHLER: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Programme\Apache Group\Apache2\htdocs\Formular.php on line 28

weiss jemand was ich falsch gemacht hab ?

mfg lomo
 
Wiso auch <? =$_SERVER['PHP_SELF']?>?
Wie wäre es mit <? echo $_SERVER['PHP_SELF']; ?>

@pycak: Ist beides möglich!
 
Zuletzt bearbeitet:
ermal danke für die schnelle antwort

@suyey
Code:
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">

habs jetzt mal so gemacht wie du gesagt hast der bringt aber den immernoch den gleichen fehler an der gleichen stelle.


kann es vielleicht daran liegen (Apache/2.0.52 (Win32) PHP/4.3.10), dass ich nicht die aktuellste php version hab ?


grml......

mfg lomo
 
Zuletzt bearbeitet:
Das ist so eigentlich komplett richtig, an der PHP Version dürfte es auch nicht liegen.
Ich frage mich nur die ganze Zeit, was das im ersten If Block ist?
PHP:
echo <<<FORMANSWER
		Sie haben folgende Nachricht gesendet:<p />
		<b>Ihr Name:</b> {$_POST['name']} <br />
		<b>E-Mail:</b> {$_POST['email']} <br />
		<b>Bewertung:</b> {$_POST['rank']} <br />
		<b>Ihre Nachricht:</b> {$_POST['message']} <br />
		<b>Gekauft bei:</b> {$_POST['purchase']}
		
		<form method="post" action="{$_SERVER['PHP_SELF']}">
		<input type="submit" value="Neue Nachricht senden?" />
		</form>
		FORMANSWER;
Sicher, dass das so geht?
Kann auch sein, dass ich das noch nicht kenne, aber was bewirkt <<< und warum kannst du auf einmal mit {} php tags einbinden? Würde mich mal interessieren.
 
in geschweifte klammern wird es nur geschrieben wenn es in Heredoc-Blöcken ist weil sonst php nicht erkennt was zur varialben gehört.

im normalen text wirde es ohne geschweifte klammern geschrieben

mmh die schreibweise sollte eigentlich passen.
 
Ok, kannte ich noch nicht, genauso wenig wie "Herecode-Blöcke" ... man lernt nie aus.

ontopic: Den Fehler kann ich mir dann aber absolut nicht erklären .. kann mir nur vorstellen, dass der php code vor dem eigentlichen Fehler not valid ist, aber wie gesagt, mit dem was da steht kann ich nix anfangen.
 
Kenne mich mit der heredoc-Syntax nicht aus, aber in Zend Studio zeigt er gleich schon an, das es so irgendwie net hinhaut.

in der Besagten Zeile kannst du
PHP:
<form method="post" action="$_SERVER[PHP_SELF]">
rein schreiben und es geht, zumindest kommt dann bei mir keine Fehlermeldung mehr, aber dann weiter unten. Es ist irgendwie so, als würde das ab dem <<<ABC nur noch ein einziger String sein der einfach nicht aufhört, egal was ich mache(so sieht es in Zend Studio aus).
 
@Kerwin: wenn ich es so abänder wie du gesagt hast dann bringt er bei mir nen fehler bei </html> achja hab noch nen fehler gefunden hab unten ne klammer zuviel. mmmh also ich wüssert nicht was noch falsch sein könnte
 
Zuletzt bearbeitet:
Zurück