tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
276
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Hallo,
    ich bins mal wieder! Ich habe ein Loginscript gebastelt, welches aber nicht ganz t Hier meine Codes:

    login.php
    PHP-Code:
    <form action="l/portal.php" method="post">
    <
    input type="text" name="user"><input type="password" name="pass"><input type="submit"></form
    portal.php
    PHP-Code:
    <?php

    session_start
    (); // Session starten

    $_SESSION['username'] = $_POST['user']; // Session registrieren
    $_SESSION['passwort'] = $_POST['pass']; // Session registrieren

    include("mysql_connect.php"); //MySQL-Verbindung einbinden

      
    $abfrage "SELECT * FROM sw_portal";
              
    $ergebnis mysql_query($abfrage)
              OR die(
    "Error: $abfrage <br>".mysql_error());  
              while(
    $row mysql_fetch_object($ergebnis))
              {
              
    $username=$row->username;
              
    $password=$row->passwort;
              
    $benutzergroup=$row->benutzergroup;
              }

    if (
    $_POST['user']==$username AND $_POST['pass']==$password)
    {
    include(
    "start.php");
    }
    else
    {
    include(
    "login.php");
    }
    ?>
    start.php
    PHP-Code:
    <?php
    session_start
    ();

    $username $_SESSION['username'];
    $passwort $_SESSION['password'];

    include(
    "mysql_connect.php"); //MySQL-Verbindung einbinden

      
    $abfrage "SELECT * FROM sw_portal";
              
    $ergebnis mysql_query($abfrage)
              OR die(
    "Error: $abfrage <br>".mysql_error());  
              while(
    $row mysql_fetch_object($ergebnis))
              {
              
    $username=$row->username;
              
    $password=$row->passwort;
              
    $benutzergroup=$row->benutzergroup;
              }

    $benutzergruppe $benutzergroup;

    if (
    $benutzergruppe=="X7X*********ryU7")
    {
    include(
    "benutzer/admin.php");
    }
    else if (
    $benutzergruppe=="**7**U**Yvcmnq**t")
    {
    include(
    "benutzer/familie.php");
    }
    else if (
    $benutzergruppe=="**SxgjBn0*****ei")
    {
    include(
    "benutzer/kohlfahrt.php");
    }
    else if (
    $benutzergruppe=="im*ZT1vvt***qF*r")
    {
    include(
    "benutzer/berlin.php");
    }
    else if (
    $benutzergruppe=="Wb*aiU*dN*lJrM**")
    {
    include(
    "benutzer/meckpomm.php");
    }
    else if (
    $benutzergruppe=="OlS*Ez*AT**eN*tZ")
    {
    include(
    "benutzer/eike-friends.php");
    }
    else
    {
    include(
    "benutzer/no.php");
    }
    ?>
    Wenn ich mich jetzt mit meinem Benutzernamen (Ben: Eike Pass: ***) dann komme ich auch auf die admin.php - Wenn ich mich jetzt mit meinem Testbenutzer (Ben: Test Pass: ***) Anmelde, klappt das nicht! Dann dachte ich, ich muss villeicht die sessions löschen, aber auch das hat nichts genützt!

    Was ist falsch?

    Danke im Vorraus!!

    EIke
    Geändert von dr-stein (09.01.10 um 12:01 Uhr) Grund: Fehler behoben
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  2. #2
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Meine Logoutdatei mit der ich die Sessions gelöscht habe:

    PHP-Code:
    <?php
    session_start
    ();
    session_destroy();
    ?>
    LG; EIke
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  3. #3
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Ich habe auf den ersten Blick nichts Falsches gesehen, aber was ich mich dennoch frage, ist, warum du alle Datensätze aus der Datenbank lädst und dann mit PHP prüfst, ob der Nutzer mit diesem Passwort existiert. Das kannst du doch direkt in deiner Anfrage prüfen, was auch die Datenbank und PHP entlastet.
    Außerdem solltest du die Session auch erst dann registrieren, wenn du weißt, dass dieser Nutzer gültig ist.

    Meine Lösung würde in etwa so aussehen:
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    <?php
    session_start();
    include 'mysql_connect.php';
     
    $username = mysql_real_escape_string($_POST['user']);
    $password = mysql_real_escape_string($_POST['pass']);
     
    $sql = 'SELECT * FROM `sw_portal` WHERE `username` = "'.$username.'" AND `passwort` = "'.$password.'" LIMIT 1';
    if(!($result = mysql_query($sql))) {
        include 'login.php';
    }
    else {
        $data = mysql_fetch_assoc($result);
        $_SESSION['username']      = $data['username'];
        $_SESSION['password']      = $data['passwort'];
        $_SESSION['benutzergroup'] = $data['benutzergroup']; // Kannst du dann in start.php benutzen
        
        include 'start.php';
    }
    Geändert von einfach nur crack (09.01.10 um 12:23 Uhr) Grund: unten genannten Fehler behoben
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  4. #4
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Stimmt! Bekomme allerdings jetzt folgende Fehlermeldung nachdem ich auf anmelden geklickt habe:

    HTML-Code:
    Parse error: syntax error, unexpected '{' in /var/www/web378/html/www.schlueter.ws/l/portal.php on line 10
    Woran liegt das?
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  5. #5
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Habe den Fehler gefunden:

    PHP-Code:
    <?php
    session_start
    ();
    include 
    'mysql_connect.php';
     
    $username mysql_real_escape_string($_POST['user']);
    $password mysql_real_escape_string($_POST['pass']);
     
    $sql 'SELECT * FROM `sw_portal` WHERE `username` = "'.$username.'" AND `passwort` = "'.$password.'" LIMIT 1';
    if(!(
    $result mysql_query($sql)))
    {
        include 
    'login.php';
    }
    else {
        
    $data mysql_fetch_assoc($result);
        
    $_SESSION['username']      = $data['username'];
        
    $_SESSION['password']      = $data['passwort'];
        
    $_SESSION['benutzergroup'] = $data['benutzergroup']; // Kannst du dann in start.php benutzen
        
        
    include 'start.php';
    }
    Es fehlte eine Klammer! Jetzt t es!

    vorher:
    PHP-Code:
    if(!($result mysql_query($sql)) 
    nachher:
    PHP-Code:
    if(!($result mysql_query($sql))) 
    Danke dir... noch ein schönes wochenende
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  6. #6
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Merke grad, dass es doch nicht t... jetzt können auch falsche daten eingegeben werden! Und man kommt immer auf die admin.php

    Lieben Gruß, Eike
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  7. #7
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Ich hab nur deine portal.php verändert. Das heißt, dass du deine start.php noch anpassen musst.

    In etwa so:
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    <?php
    session_start();
     
    switch($_SESSION['benutzergroup']) {
        case 'X7X*********ryU7':
            include 'benutzer/admin.php';
            break;
     
        case '**7**U**Yvcmnq**t':
            include 'benutzer/familie.php';
            break;
     
        case '**SxgjBn0*****ei':
            include 'benutzer/kohlfahrt.php';
            break;
     
        case 'im*ZT1vvt***qF*r':
            include 'benutzer/berlin.php';
            break;
     
        case 'Wb*aiU*dN*lJrM**':
            include 'benutzer/meckpomm.php';
            break;
     
        case 'OlS*Ez*AT**eN*tZ':
            include 'benutzer/eike-friends.php';
            break;
     
        default:
            include 'benutzer/no.php';
            break;
    }
    ?>
    Geändert von einfach nur crack (09.01.10 um 12:34 Uhr)
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  8. #8
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    jop... habe ich aber schon gemacht: jetzt werden alle falschen nutzer auf no.php geleitet und alle richtigen entsprechend einsortiert!

    PHP-Code:
    <?php
    session_start
    ();

    $_SESSION['benutzergroup'] = $data['benutzergroup']; // Kannst du dann in start.php benutzen


    if ($data['benutzergroup']=="X7X******JXP6ryU7")
    {
    include(
    "benutzer/admin.php");
    }
    else if (
    $data['benutzergroup']=="Dc7pA******nqCt")
    {
    include(
    "benutzer/familie.php");
    }
    else if (
    $data['benutzergroup']=="FJ******Bgyei")
    {
    include(
    "benutzer/kohlfahrt.php");
    }
    else if (
    $data['benutzergroup']=="imw*****")
    {
    include(
    "benutzer/berlin.php");
    }
    else if (
    $data['benutzergroup']=="Wb*******wv")
    {
    include(
    "benutzer/meckpomm.php");
    }
    else if (
    $data['benutzergroup']=="OlS9********Z")
    {
    include(
    "benutzer/eike-friends.php");
    }
    else
    {
    include(
    "benutzer/no.php");
    }
    ?>
    oder ist das so falsch?
    Geändert von dr-stein (09.01.10 um 12:37 Uhr)
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  9. #9
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    PHP-Code:
    $_SESSION['benutzergroup'] = $data['benutzergroup']; 
    ... das funktioniert so nicht. Schau dir lieber mal mein Beispiel an, was ich oben noch hinzugefügt habe.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  10. #10
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Danke... nun klappts! Habe dein Beispiel nicht gesehn!

    aber habe noch ein Problem... Ich möchte nun bei der start.php anstatt der no.php gerne eine weiterleitung zur login.php haben. Habe also folgendes geändert:

    PHP-Code:
    <?php
    session_start
    ();
     
    switch(
    $_SESSION['benutzergroup']) {
        case 
    'X7XWCgpVJXP6ryU7':
            include 
    'benutzer/admin.php';
            break;
     
        case 
    'Dc7pAUdEYvcmnqCt':
            include 
    'benutzer/familie.php';
            break;
     
        case 
    'FJSxgjBn04IBgyei':
            include 
    'benutzer/kohlfahrt.php';
            break;
     
        case 
    'imwZT1vvtMm2qFDr':
            include 
    'benutzer/skat.php';
            break;
     
        case 
    'WbZaiUNdN8lJrMwv':
            include 
    'benutzer/meckpomm.php';
            break;
     
        case 
    'OlS9EzvATZzeNptZ':
            include 
    'benutzer/eike-friends.php';
            break;
     
        default:
            
    Header ('Location: login.php');
            break;
    }
    ?>
    bekomme dann aber folgende Fehlermeldung:

    HTML-Code:
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web378/html/www.schlueter.ws/l/mysql_connect.php:10) in /var/www/web378/html/www.schlueter.ws/l/start.php on line 30
    Was mache ich hier falsch!
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  11. #11
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Hier meine mysql_connect.php

    PHP-Code:
    <?php 

    $db_host 
    "localhost"//Hostadresse zur MySql Datenbank (Normalerweise "localhost") 
    $db_user "***"//Der Benutzername für die MySql Datenbank 
    $db_password "***"//Das Passwort für die MySql Datenbank 
    $db_name "usr_***_2"//Der Name der MySql Datenbank 

      
    mysql_connect($db_host,$db_user,$db_password) or die (mysql_error()); //Wir stellen eine Verbindung zum MySql Server her 
      
    mysql_select_db($db_name) or die (mysql_error()); // Wir wählen unsere Datenbank aus 
    ?>
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

  12. #12
    Avatar von saftmeister
    saftmeister saftmeister ist gerade online Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Kann es ein, das in deiner mysql_connect.php hinten eine neue Zeile nach dem "?>" oder ein Leerzeichen ist?
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  13. #13
    dr-stein dr-stein ist offline Mitglied Silber
    Registriert seit
    Nov 2009
    Beiträge
    74
    Ja... jetzt klappts!

    Danke dir für deine Hilfe!
    schönes Wochenende!

    Gruß, Eike
     
    PHP-Code:
    <?php

    $aussage 
    "Hallo Welt";
    $antwort "Hallo Du";


    function 
    answer($antwort);


    echo 
    "$aussage";



    answer($antwort);
    ?>
    **Grins**

Ähnliche Themen

  1. [PHP/mySQL] Login-System mit Sessions
    Von xytrax im Forum PHP
    Antworten: 4
    Letzter Beitrag: 03.05.07, 22:34
  2. Antworten: 9
    Letzter Beitrag: 01.09.04, 17:41
  3. php/mysql Login mit Sessions
    Von bleeeez im Forum PHP
    Antworten: 10
    Letzter Beitrag: 25.06.04, 11:42
  4. login mit sessions über mysql
    Von Slowdown im Forum PHP
    Antworten: 3
    Letzter Beitrag: 06.08.03, 01:41