Fehler im eigenen login script bei sql abfrage

LiVe

Mitglied
Hallo leute will mir meine eigenes login script basstel nur ich habe im code ne fehler und habe schon einiges verändert doch es klapt nicht ich denke mal ihr könnt mir helfen hier die fehler meldung vom script

Parse error: parse error, unexpected '}' in /var/www/web1/html/test.php on line 53
ist eigentlich klar was das heißen soll aber ich finde es einfach nicht


Code:
<?php
// Session starten 
session_start (); 

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhost", "**********", "*******"); 
if (!mysql_select_db ("usr_web285_42", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

// Wen man auf submit klickt
    if(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) {
        if(!preg_match('/^\w+$/', trim($_POST['name']))) {
            echo "<p class=\"error\">\n";
            echo "    Bitte benutzen sie einen Name nur aus Alphanumerischen\n";
            echo "    Zeichen (Zahlen und Buchstaben).\n";
            echo "</p>\n";
        } else {
$sql = "SELECT ". 
    "Id". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ". 
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["t_user_id"] = $data["Id"]; 
  // WEiterleitung bei login
  header ("Location: test.php"); 
  $sql = "UPDATE
                        benutzerdaten
                    SET
                        IP = ('".$_SERVER['REMOTE_ADDR']."')
                    WHERE
                        ID = '".$_SESSION['t_user_id']."';";
            mysql_query($sql) OR die(mysql_error());
        }
    }
}
else 
{ 
// Weiterleitung bei fehler
  header ("Location: error.php?loginfehler=0");  
		} 
}  // Line 53 ! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Das formular zum login erforderlich

    echo "<form action=\"login.php?section=admin&amp;site=self\" method=\"post\" class=\"formular\">\n";
    echo "            <label for=\"name\">Nick</label>\n";
    echo "            <input type=\"text\" name=\"name\" id=\"name\"/>\n";
    echo "        </li>\n";
    echo "        <li>\n";
    echo "            <label for=\"pwd\">Password</label>\n";
    echo "            <input type=\"password\" name=\"pwd\" id=\"pwd\"/>\n";
    echo "        </li>\n";
    echo "        <li>\n";
    echo "            <input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n";
    echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
    echo "            <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
    echo "        </li>\n";
    echo "    </ol>\n";
    echo "</form>\n";
?>
 
Da steht unexpected '}' das heißt auf deutsch unerwartet '}'. Das bedeutet das eine Klammer ( } ) in Zeile 53 unerwartet auftritt. Entweder ist sie zuviel oder zuwendig...

Edit:
Benutze bitte PHP Code-Tags um dein Script zu Highlighten... [ PHP ][ /PHP ] (ohne leerzeichen)
 
Zuletzt bearbeitet:
Du schließt den Block bereits eine Zeile höher. Konsequentes, einheitliches Code-Formatting hilft solche Fehler zu finden:
PHP:
<?php
// Session starten
session_start ();

// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "**********", "*******");
if (!mysql_select_db ("usr_web285_42", $connectionid)) {
    die ("Keine Verbindung zur Datenbank");
}

// Wen man auf submit klickt
if(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) {
    if(!preg_match('/^\w+$/', trim($_POST['name']))) {
        echo "<p class=\"error\">\n";
        echo "    Bitte benutzen sie einen Name nur "
            ."aus Alphanumerischen\n";
        echo "    Zeichen (Zahlen und Buchstaben).\n";
        echo "</p>\n";
    } else {
        $sql = "SELECT ".
                "Id".
              "FROM ".
                "benutzerdaten ".
              "WHERE ".
                "(Nickname like '".$_REQUEST["name"]."') AND ".
                "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
        $result = mysql_query ($sql);

        if (mysql_num_rows ($result) > 0) {
            // Benutzerdaten in ein Array auslesen.
            $data = mysql_fetch_array ($result);

            // Sessionvariablen erstellen und registrieren
            $_SESSION["t_user_id"] = $data["Id"];
            // WEiterleitung bei login
            header ("Location: test.php");
            $sql = "UPDATE
                        benutzerdaten
                    SET
                        IP = ('".$_SERVER['REMOTE_ADDR']."')
                    WHERE
                        ID = '".$_SESSION['t_user_id']."';";
            mysql_query($sql) OR die(mysql_error());
        }
    }
} else {
    // Weiterleitung bei fehler
    header ("Location: error.php?loginfehler=0");
}
//}  // Line 53 ! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Das formular zum login erforderlich

echo "<form action=\"login.php?section=admin&amp;site=self\""
    ." method=\"post\" class=\"formular\">\n";
echo "            <label for=\"name\">Nick</label>\n";
echo "            <input type=\"text\" name=\"name\" "
    ."id=\"name\"/>\n";
echo "        </li>\n";
echo "        <li>\n";
echo "            <label for=\"pwd\">Password</label>\n";
echo "            <input type=\"password\" name=\"pwd\" "
    ."id=\"pwd\"/>\n";
echo "        </li>\n";
echo "        <li>\n";
echo "            <input type=\"submit\" name=\"submit\" "
    ."value=\"Speichern\" />\n";
echo "            <input type=\"reset\" name=\"submit\" "
    ."value=\"Zurücksetzen\" />\n";
echo "            <input type=\"hidden\" name=\""
    .session_name()
    ."\" value=\""
    .session_id()
    ."\" />\n";
echo "        </li>\n";
echo "    </ol>\n";
echo "</form>\n";
?>
Gruß hpvw
 
hi wenn ich jetzt die seite auffruffe linkt er mich zu
PHP:
    header ("Location: error.php?loginfehler=0");
aber das login formular kommt er ganicht was ist falsch?
 
nein es geht ja die seite öffnet er ja nur das problem ist das login script kommt ganicht sonder soford ide fehler seite eigentlich müßte beim auf ruffen der seite das login formular kommen aber es kommt soford die fehler weiterleitung
 
Nach der jetzigen Bedingung wird, wenn das Formular noch nicht abgeschickt wurde, sofort zur nächsten Seite weitergeleitet. Damit kommt er nicht mehr zu dem Code nach dem (nach meinem Vorschlag) äußeren if-else und zeigt somit auch nicht das Formular an.

Du mußt Dir noch mal über die Logik Deiner Bedingungen klar werden. Offensichtlich war die schließende Klammer an einer anderen Stelle zuviel.

Gruß hpvw
 
Zurück