php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.11.2009, 18:48  
Neuer Benutzer
 
Registriert seit: 14.11.2009
Beiträge: 7
PHP-Kenntnisse:
Anfänger
kael befindet sich auf einem aufstrebenden Ast
Standard login mit datenbank und sessions

das ist mein erster forum-post (überhaupt)
- ich bin absolute php-anfängerin.
habe zwar das buch php 5.3 & mysql 5.1 (der Einstieg in die Programmierung... etc)
durchgearbeitet, aber an verständnis mangelt es noch sehr. ich arbeite an einem login via datenbank abruf.
Folgender Fehler "Undefined index: login in.../.../../on line 46" tritt auf in meiner "login.php".
sitze jetzt schon ewigkeiten dahinter und verstehe es nicht so ganz!
der login funktioniert eigentlich einwandfrei - bis auf die fehlermeldung!
für einen kleine unterstützung wäre ich sehr dankbar! merci!

zuerst: DATENBANK LOGIN (funktioniert)
PHP-Code:
 SESSION_START();
    
$link mysql_connect($_db_host$_db_username$_db_passwort);
    if (!
$link)
        {
        die(
"Keine Datenbankverbindung möglich: " mysql_error());
        }
    
$datenbank mysql_select_db($_db_datenbank$link);

    if (!
$datenbank)
        {
        echo 
"Kann die Datenbank nicht benutzen: " mysql_error();
        
mysql_close($link);        
        exit;                   
        }
    if (!empty(
$_POST["submit"]))
        {
        
$_username mysql_real_escape_string($_POST["username"]);
        
$_passwort mysql_real_escape_string($_POST["passwort"]);
            
$_sql "SELECT * FROM login_usernamen WHERE
                    username='$_username' AND
                    passwort='$_passwort' AND
                    user_geloescht=0
                LIMIT 1"
;
        
$_res mysql_query($_sql$link);
        
$_anzahl = @mysql_num_rows($_res);
        if (
$_anzahl 0)
            {
            echo 
"Der Login war erfolgreich.<br>";
            
$_SESSION["login"] = 1;
            
$_SESSION["user"] = mysql_fetch_array($_resMYSQL_ASSOC);
            
$_sql "UPDATE login_usernamen SET letzter_login=NOW()
                     WHERE id=" 
.$_SESSION['user']['id'];
            
mysql_query($_sql);
            }
        else
            {
            echo 
"Die Logindaten sind nicht korrekt.<br>";
            }
        }
        if (
$_SESSION['login'] == 0)
        {
        include(
"login-formular.html");
        
mysql_close($link);
        exit;
        }
        include 
"inhalt.php";
    
mysql_close($link);
?> 

Geändert von nikosch (23.11.2009 um 21:41 Uhr).
kael ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.11.2009, 19:07  
Erfahrener Benutzer
 
Benutzerbild von taurus
 
Registriert seit: 01.11.2008
Beiträge: 825
PHP-Kenntnisse:
Anfänger
taurus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

editier mal bitte deinen beitrag und setz das in die PHP tags.. haben wir ja nicht umsonst

PHP-Code:
$_sql "SELECT * FROM login_usernamen WHERE
username='$_username' AND
passwort='$_passwort' AND
user_geloescht=0
LIMIT 1"
;
$_res mysql_query($_sql$link);
$_anzahl = @mysql_num_rows($_res); //das @ unterdrückt fehler, mach das weg! :-)
if ($_anzahl 0)
//die if schleife wird eben nicht ausgeführt.. daher ist session['login'] auch nicht definiert! 
//gib einfach mal POST aus damit du siehst ob name und pass auch richtig ankommen..

//prüfe hiermit, is kuerzer :-)
if (mysql_num_rows($result)==1) { 
mach hier halt kurz für $SESSION['login'] eine 1 rein dann wird der fehler wohl verschwinden...
PHP-Code:
{
echo 
"Die Logindaten sind nicht korrekt.<br>";

taurus ist offline  
Alt 23.11.2009, 19:10  
Benutzer
 
Registriert seit: 22.11.2009
Beiträge: 78
PHP-Kenntnisse:
Anfänger
christophk befindet sich auf einem aufstrebenden Ast
Standard

if-Schleife <3
christophk ist offline  
Alt 23.11.2009, 19:59  
Neuer Benutzer
 
Registriert seit: 14.11.2009
Beiträge: 7
PHP-Kenntnisse:
Anfänger
kael befindet sich auf einem aufstrebenden Ast
Standard

hallo taurus!
und danke für deine antwort!
ich bin echt ganz am anfang. - der code ist schon
weiter als ich....
an welcher stelle prüfe ich - ganau das sind so basics, die noch nicht angekommen sind bei mir! ersetze ich, oder ergänze ich!
- wenn ich 1 in $SESSION['login'] schreibe werde ich nicht mehr auf die
gewünschte seite weitergeleitet!

Geändert von kael (23.11.2009 um 20:02 Uhr).
kael ist offline  
Alt 23.11.2009, 21:10  
Erfahrener Benutzer
 
Benutzerbild von taurus
 
Registriert seit: 01.11.2008
Beiträge: 825
PHP-Kenntnisse:
Anfänger
taurus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

da hast du mich falsch verstanden

PHP-Code:
 if ($_anzahl 0)
            {
            echo 
"Der Login war erfolgreich.<br>";
            
$_SESSION["login"] = 1;
            
$_SESSION["user"] = mysql_fetch_array($_resMYSQL_ASSOC);
            
$_sql "UPDATE login_usernamen SET letzter_login=NOW()
                     WHERE id=" 
.$_SESSION['user']['id'];
            
mysql_query($_sql);
            }
        else
            {
$SESSION['login'] = 0;
            echo 
"Die Logindaten sind nicht korrekt.<br>";
            }
        }
        [
color="Red"]if ($_SESSION['login'] == 1)[/color]
        {
        include(
"login-formular.html");
        } else { echo 
'fehlerhafter login'; ] 
damit wollte ich dir veranschaulichen das es in deinem sql query keinen eintrag mit dem POST['username'] + 'pass' gibt. daher ist $anzahl = 0 und er login nicht erfolgreich.

übrigens ist die if klausel $_SESSIN['login'] == 1 unnötig.
du weißt ja bereits hier
PHP-Code:
if ($_anzahl 0)
            {
            echo 
"Der Login war erfolgreich.<br>"
ob dein login erfolgreich war oder nicht daher kannst du dort gleich die entsprechende datein includen.


die if abfrage ob session == 1 verwendet du um auf logged_in zu prüfen (auf anderen seiten (die du includest? ) und wofür man einloggt sein muss)

prüfe also erstmal ob deine $_POST variablen richtig an das query übergeben werden, sprich lass dir mal das $_sql query per echo ausgeben. dann siehst du wonach er in der datenbank sucht.. und das muss dann halt auch vorhanden sein...

übrigens speichere dein passwort als hash und lese das dann auch wieder so aus:
PHP-Code:
           $_sql "SELECT * FROM login_usernamen WHERE
                    username='$_username' AND
                    passwort='hash("
sha1",$_passwort)' AND
                    user_geloescht=0
                LIMIT 1"

taurus ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Notice: Undefined property Thoresus PHP Tipps 2009 2 17.08.2009 23:30
Formular läuft lokal, online nicht simon1101 PHP Tipps 2009 9 25.03.2009 12:16
Erneut Vorstellung meiner Seite. litterauspirna Off-Topic Diskussionen 11 16.02.2009 19:17
php datei löschen djscaleo PHP Tipps 2008 21 14.11.2008 15:47
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 15:30
thumbnails erstellen dom PHP Tipps 2008 39 21.07.2008 21:28
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Notice: Undefined index Kein Genie PHP Tipps 2008 5 23.04.2008 17:40
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Suche Programmierer, Designer, Schreiber... blinkster.de Beitragsarchiv 76 14.08.2005 18:31
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
Undefined index PHP Tipps 2005 5 05.02.2005 14:57
Notice-Meldungen bei PHP PHP Tipps 2005 14 02.02.2005 12:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
undefined, login php datenbank, php sessions login mit datenbank, login mit sessions, login php 5.3, if(!$_session[\'login\'], php login per datenbank, session login php, \if ($_session[\login\] != 1)\ undefined index, session php 5.3, echo session php, login.php on line 28, php 5.3 session, $session login, php session login datenbank, session php 5.3 undefined user, datenbank in login session, datenbankanmeldung url, php 5.3 undefined index, $session php

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum