• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

anfänger probleme mit login per PHP und MYSQL

amario1985

Neues Mitglied
hey leute. ich versuche in meine webseite ein loginsystem per php und mysql einzubinden. ich habe vorerst alle schritte die hier beschrieben werden durchgeführt:
Login mit Hilfe von PHP und mySQL PHP Tutorials nicht nur fr Anfnger php-resource.de
sobald ich nach implementierung all deiser formulare abgeschlossen hab, lande ich auf einem blancopage mit der fehlerangabe :
"Parse error: syntax error, unexpected '{' in /users/aurora/www/2.0/aurora/login_files/sessionhelpers.inc.php on line 3"

1.meine datenbank tabelle wurde richtig angelegt. darüber brauch ich nicht zu diskutieren.

2.den script habe ich als html code in die "login.html" webseite eingebaut:
PHP:
<form method="post" action="login.php">  <label>Benutzername:</label><input name="username" type="text">  <br>  <label>Passwort: </label><input name="userpass" type="password" id="userpass">  <br>  <input name="login" type="submit" id="login" value="Einloggen"> </form>

3. die folgenden scripts wurden alle als php gespeichert und in den "login files" ordner implemiert

login.php:
PHP:
<?php 
session_start(); 
include 'sessionhelpers.inc.php'; 
if (isset($_POST['login'])) 
{ 
    $userid=check_user($_POST['username'], $_POST['userpass']); 
    if ($userid!=false) 
        login($userid); 
    else 
        echo 'Ihre Anmeldedaten waren nicht korrekt!'; 
} 
if (!logged_in()) 
    echo '<form method="post" action="login.php"> 
        <label>Benutzername:</label><input name="username" type="text"><br> 
        <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br> 
        <input name="login" type="submit" id="login" value="Einloggen"> 
    </form>'; 
else 
    echo '<a href="logout.php">Ausloggen</a>'; 
echo '<p /><a href="logged_in.php">Check</a>'; 
?>

danach
logged_in.php
PHP:
<?php 
session_start(); 
include 'sessionhelpers.inc.php'; 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.<p />'; 
echo '<a href="login.php">Start</a>'; 
?>
im anschluss logout.php:
PHP:
<?php 
session_start(); 
include 'sessionhelpers.inc.php'; 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.<p />'; 
logout(); 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.< p/>'; 
echo '<a href="login.php">Einloggen</a>'; 
?>

und zu guter letzt sessionhelpers.inc.php:
PHP:
<?php 
function connect() 
{ 
    $con=mysql_connect('servername','benutzer','passwort') or die(mysql_error()); 
    mysql_select_db('datenbank, die die Benutzertabelle enthält',$con) or die(mysql_error());
} 

function check_user($name, $pass) 
{ 
    $sql="SELECT UserId 
    FROM users 
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') 
    LIMIT 1"; 
    $result=mysql_query($sql) or die(mysql_error()); 
    if (mysql_num_rows($result)==1) 
    { 
        $user=mysql_fetch_assoc($result); 
        return $user['UserId']; 
    } 
    else 
        return false; 
} 

function login($userid) 
{ 
    $sql="UPDATE users 
    SET UserSession='".session_id()."' 
    WHERE UserId=".$userid; 
    mysql_query($sql); 
} 

function logged_in() 
{ 
    $sql="SELECT UserId 
    FROM users 
    WHERE UserSession='".session_id()."' 
    LIMIT 1"; 
    $result=mysql_query($sql); 
      return (mysql_num_rows($result)==1); 
} 

function logout() 
{ 
    $sql="UPDATE users 
    SET UserSession=NULL 
    WHERE UserSession='".session_id()."'"; 
    mysql_query($sql); 
} 

connect(); 
?>

hier habt ihr den link zur login seite zum abchecken: HOME DESIGN VITAL SPA SMART
test user "admin" pass "tutorial".

was müsste hier eigentlich resultieren, wo liegt hier der fehler? vielen dank im voraus. ;heart
 
Guten Morgen,

also ich hab mir das auch mal schnell zusammen kopiert und es funktioniert bei mir wunderbar. Hast du die Codes denn nun vom Tutorial kopiert oder aus deinen Scripts? Wenn der Code nun nicht von deinen Scripts ist dann schau mal in der sessionhelpers in zeile 2. Vielleicht hast du da ein Schreibfehler drin oder so
 
die scripts sind von dem tutorial 1:1 kopiert. sessionhelpers wurde dem speicherort des datenbanks, dem passwort und dem benutzernamen angepasst. könnte genau hier der fehler liegen?
der benutzer und das passwort sind die gleichen wie beim phpAdmin login des hosts, richtig? als speicherort für die datenbank gebe ich "local" an.
nun müsste ich doch einfach beim login.html doch mit "admin" und "tutorial" als pass mich doch einloggen können. gehen wir davon aus - es würde klappen..wohin würde ich weiter geleitet werden?
warum sollte in line 2 des sessionhelpers ein fehler sein, wenns bei dir prima funzt? danke für deine bemühungen :-)
 
Also warum in Zeile 2 ein Fehler liegen müsste kann man an der Ausgabe von der Fehlermeldung sehen.

"Parse error: syntax error, unexpected '{' in/users/aurora/www/2.0/aurora/login_files/sessionhelpers.inc.php on line 3"

PHP zeigt da zwar Zeile 3 an, aber das ist so ne Eigenart das es meist die Zeile davor betrifft. Vielleicht hast du da ein was vergessen beim kopieren. Also am besten vielleicht nochmal alles kopieren.

der benutzer und das passwort sind die gleichen wie beim phpAdmin login des hosts, richtig? als speicherort für die datenbank gebe ich "local" an.
genau, aber anstelle von local, localhost eintragen

Und wenn du dich erfolgreich eingeloggt hast wirst du auf die login.php weitergeleitet
Also zu diesem Abschnitt

PHP:
else 
    echo '<a href="logout.php">Ausloggen</a>'; 
echo '<p /><a href="logged_in.php">Check</a>';
 
da war wohl tatsächlich das script und die angabe "local" fehlerhaft. jetzt bin ich nach der aktualisierung auf eine blanco seite weitergeleitet worden
indem mir die meldung "Access denied for user 'aurora'@'localhost' to database 'datenbank, die die Benutzertabelle enthält'" gemacht wurde. jippii..

jetzt kann es sich nur noch um kleinigkeiten handeln....nur was?
 
Dann sind wir ja schonmal ein Schritt weiter, die jetzige Fehlermeldung gibt dir nun aus das du keine Zugriffsrechte auf die Datenbank hast.

Überprüf da nochmal den Benutzernamen und das Passwort und gib auch deine Datenbank an

PHP:
mysql_select_db('datenbank, die die Benutzertabelle enthält',$con) or die(mysql_error()
So ist das nämlich falsch, du musst "datenbank, die die Benutzertabelle enthält" mit dem Namen deiner Datenbank ersetzen.
 
na toll...jetzt macht der logut.php script probleme -_-

PHP:
<?php session_start(); include 'sessionhelpers.inc.php'; echo 'Sie sind '; if (!logged_in())     echo 'nicht '; echo 'eingeloggt.<p />'; logout(); echo 'Sie sind '; if (!logged_in())     echo 'nicht '; echo 'eingeloggt.< p/>'; echo '<a href="login.php">Einloggen</a>'; ?>

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /users/aurora/www/2.0/aurora/login_files/logout.php on line 3
 
Alter, kannst du nicht lesen!?

@B3nnoX hat dir vorher bereits ausführlich erklärt wie man Fehlermeldungen liest.
 
So weil ich nun gleich Feierabend habe und nett bin, schreib mal in deiner logout.php das "php" wieder nach dem Fragezeichen.

Also falls du es so rauskopiert hast.
 
Zurück
Oben