Frage zum Tutorial

Kategorien: PHP & MySQL
6 Antworten
-e3-
-e3- am Donnerstag, 29. Dezember 2005 um 16:52
Hallo zusammen Ich wollte mich einwenig wieder mit PHP befassen, aber da kam auch die erste Enttäuschung :D Ich habe den folgenden Code: <? $sql = mysql_connect("localhost","Member","Passwort"); $db = "Datenbank"; mysql_select_db($db, $sql); $table = "test_table"; if($action == "") { ?> <form action="<?= $PHP_SELF; ?>?action=reg" method="post"> Username : <input type="text" name="name"> Passwort : <input type="password" name="pass"> E-Mail : <input type="text" name="mail"> <input type="submit" value="Registrieren"> </form> <? } if($action == "reg") { if(empty($name) or empty($pass) or empty($mail)) { echo "Eines der Felder wurde nicht ausgef&uuml;llt!"; } else { $user_query = mysql_query("SELECT * FROM $table WHERE name='$name'"); if(mysql_num_rows($user_query) <= 0) { $add_query = mysql_query("INSERT INTO $table (name, pass, mail) values ('$name', '$pass', '$mail')"); if(!$add_query) { echo "Fehler: ".mysql_error(); } else { echo "Erfolgreich registriert! <a href=index.php>Zur Startseite</a>"; } else { echo "Username existiert schon!"; } } } ?> Aber da kommt diese Fehlermeldung: " Parse error: parse error, unexpected T_ELSE in /usr/export/www/vhosts/funnetwork/hosting/free24/Member/register.php on line 34" Ich hab keinen Plan an was es liegen könnte vielleicht an den "}" Klammern? Kann mir jemand helfen, bitte? Danke schon im Voraus Gruss

Kommentare

blackfeet
blackfeet am Donnerstag, 29. Dezember 2005 um 17:09

Ja dir fehlt eine Klammer:

<?
$sql = mysql_connect("localhost","Member","Passwort");
$db = "Datenbank";
mysql_select_db($db, $sql);
$table = "test_table";

if($action == "") {
?>
<form action="<?= $PHP_SELF; ?>?action=reg" method="post">
Username : <input type="text" name="name">
Passwort : <input type="password" name="pass">
E-Mail : <input type="text" name="mail">
<input type="submit" value="Registrieren">
</form>
<?
}
if($action == "reg") { //1. Block auf

if(empty($name) or empty($pass) or empty($mail)) { //2. Block auf
echo "Eines der Felder wurde nicht ausgef&uuml;llt!";
} //2. Block zu
else { //3. Block (else) auf
$user_query = mysql_query("SELECT * FROM $table WHERE name=&#039;$name&#039;");

if(mysql_num_rows($user_query) <= 0) { //4. Block auf

$add_query = mysql_query("INSERT INTO $table (name, pass, mail) values (&#039;$name&#039;, &#039;$pass&#039;, &#039;$mail&#039;)");
if(!$add_query) { // 5. Block auf
echo "Fehler: ".mysql_error();
} // 5. Block zu
else { // 6. auf
echo "Erfolgreich registriert! <a href=index.php>Zur Startseite</a>";
} // 6. zu
else { // 7. auf
echo "Username existiert schon!";
} // 7. zu
} // 4. Block zu
} // 3. Block (else) zu
} // Wurde von mir eingefügt, .. schließt Block 1
?>

-e3-
-e3- am Donnerstag, 29. Dezember 2005 um 22:59

hehe danke für die Hilfe, aber jetzt kommt wieder eine Fehlermeldung und zwar diese:


Parse error: parse error, unexpected T_ELSE in /usr/export/www/vhosts/funnetwork/hosting/free24/Member/register.php on line 34

es ist das gleiche Problem

Markus René Einicher
Markus René Einicher am Freitag, 30. Dezember 2005 um 11:27

Also ich stoß mich schon an der neunten Zeile. Was bitte ist denn das:
action="<?= $PHP_SELF; ?>?action=reg"

Was tut das Gleichzeichen da nach dem Fragezeichen? Simuliert das einen echo - der hier fällig wäre, ich kenn das so nämlich nicht. Hab aber gerade gesehen, dass der Syntaxhighlight von bluefish das erkennt, aber auf php.net findet die suche das <?= nicht.

und das andere Problem erkennst du vielleicht wenn du den Quelltext so siehst wie ich ihn aufstellen würde:

<?php
$sql = mysql_connect(&#039;localhost&#039;, &#039;Member&#039;, &#039;Passwort&#039;);
$db = &#039;Datenbank&#039;;
mysql_select_db($db, $sql);
$table = &#039;test_table&#039;;

if ($action == &#039;&#039;) {
?>
<form action="<? echo $_SERVER[&#039;PHP_SELF&#039;]; ?>?action=reg" method="post">
Username : <input type="text" name="name">
Passwort : <input type="password" name="pass">
E-Mail : <input type="text" name="mail">
<button type="submit">Registrieren</button>
</form>
<?
}
if ($action == &#039;reg&#039;) {
if(empty($name) or empty($pass) or empty($mail)) {
echo &#039;Eines der Felder wurde nicht ausgef&uuml;llt!&#039;;
} else {
$user_query = mysql_query("SELECT * FROM $table WHERE name=&#039;$name&#039;");
if (mysql_num_rows($user_query) <= 0) {
$add_query = mysql_query("INSERT INTO $table (name, pass, mail) values (&#039;$name&#039;, &#039;$pass&#039;, &#039;$mail&#039;)");
if (!$add_query) {
echo &#039;Fehler: &#039;.mysql_error();
} else {
echo &#039;Erfolgreich registriert! <a href=index.php>Zur Startseite</a>&#039;;
} else {
echo &#039;Username existiert schon!&#039;;
}
}
}
}
?>

Siehst dus? in der innersten Schleife hast du zwei else Funktionen, das geht nicht. Ich denke du hast vergessen eine if ordentlich zu zu machen oder?

-e3-
-e3- am Freitag, 30. Dezember 2005 um 12:35

Das ist doch nicht normal. Jetzt kommt wieder ein Fehle rund zwar in der Zeile 28!

"Parse error: parse error, unexpected T_ELSE in /usr/export/www/vhosts/funnetwork/hosting/free24/Member/register.php on line 28"

Mensch was ist los mit dem Code. Alles was ich versuche geht nicht. :(

Markus René Einicher
Markus René Einicher am Freitag, 30. Dezember 2005 um 12:59

Du hast das was ich oben geschrieben hab einfach nur rauskopiert und aufgerufen, der Quelltext oben is aber immernoch flasch, ich hab dir nur gesagt wo der Fehler is, behoben hab ich ihn noch nicht.

Du hast ganz einfach nur die if vor der else nciht zugemacht deshalb treffen jetzt zwei elese aufeinander. Es fehlt nur ein einziges Zeichen, das hier: }

-e3-
-e3- am Freitag, 30. Dezember 2005 um 13:09

hehe ok danke ich werds mal versuchen. ;-)