Ankündigung

Einklappen
Keine Ankündigung bisher.

ein login-system, basierend auf MySQL und sessions

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Papst
    antwortet
    AND u_pass = '".md5($_POST['u_pass'])."'


    du musst das Passwort vorher md5 "hashen"

    Einen Kommentar schreiben:


  • mike-loewe
    antwortet
    Hallo, ich habe Dein Login_System eins zu eins übernommen und das check_login angepasst (siehe unten). In der Datenbanktabelle gibt es 10 Felder die bis auf zwei leer sind. In nic_name steht "test01" und in pw_user steht "123456".

    Die Datenbank wird erkannt!

    Wenn ich die Seite aufrufe die Daten eingebe erhalte ich folgende Fehlermeldung " Unknown column 'user_mse' in 'field list' " ? Kannst Du mir sagen wo der Fehler liegt?

    SKRIPT
    =====
    <?php
    session_start();
    //konfiguration und verbindungsdaten holen
    include_once('config.php');
    include_once('connect.php');
    //prüfen, ob die eingabefelder ausgefüllt wurden
    if(empty($_POST['u_name']) || empty($_POST['u_pass']))
    {
    //wenn sie nicht ausgefüllt wurden
    echo 'es wurden nicht alle relevanten felder ausgefüllt';
    exit();
    }
    //wenn sie ausgefüllt wurden
    else
    {
    //eine SQL-abfrage vorbereiten und sie abschicken
    $sql = "SELECT user_mse,
    nic_name,
    pw_user
    FROM user_mse
    WHERE nic_name = '".mysql_real_escape_string($_POST['u_name'])."'
    AND pw_user = '".md5($_POST['u_pass'])."'
    ";
    $result = mysql_query($sql) or die(mysql_error());
    //prüfung, ob genau eine der spalten mit der eingabe überein stimmt
    if(mysql_num_rows($result) != 1)
    {
    //wenn nicht übereinstimmt
    echo 'sie konnten nicht als benutzer identifiziert werden';
    exit();
    }
    //wenn übereinstimmt
    else
    {
    //eine session "logged" auf TRUE setzen
    //eine session mit dem usernamen erstellen
    $_SESSION['logged'] = TRUE;
    $_SESSION['nic_name'] = $_POST['u_name'];
    //auf die geschützte datei weiterleiten
    header('location: intern.php');
    exit();
    }
    }
    ?>

    Einen Kommentar schreiben:


  • Klabautermann
    antwortet
    Hast in der Datei check_login in Zeile 30 einen Fehler. Du hast geschrieben:
    Code:
    if(mysql_num_rows($reuslt) != 1)
    Ich denke es soll heissen

    Code:
    if(mysql_num_rows($result) != 1)

    Einen Kommentar schreiben:


  • XraYSoLo
    antwortet
    hätte echt nicht gedacht, dass der beitrag hier noch zündstoff für über einen monat ist ^^.

    Nils aka XraYSoLo

    Einen Kommentar schreiben:


  • janvl
    antwortet
    Kein Fehler!

    Verzeihung, hatte mein Eintrag schon geändert weil ich es gefunden
    habe. Es waren Leerzeichen, beim kopieren nicht aufgepasst .

    Es funktioniert einwandfrei! Danke.

    Ich werde es wahrscheinlich nutzen für ein Tierschützer-Seite
    in ein sehr einfaches "CMS".

    Freundlichen Grüssen,

    Jan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von janvl Beitrag anzeigen
    Ich habe es probiert und bekomme folgende fehler:
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/testordner3/config.inc.php:9) in /var/www/testordner3/check_login.php on line 45

    Wo habe ich ein Fehler gemacht?
    Steht doch da:
    output started at /var/www/testordner3/config.inc.php:9

    Einen Kommentar schreiben:


  • janvl
    antwortet
    Ich habe es probiert und bekomme folgende fehler:
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/testordner3/config.inc.php:9) in /var/www/testordner3/check_login.php on line 45

    Wo habe ich ein Fehler gemacht?
    Ich bin noch neu zu PHP.
    Database und Tabelle u_user sind da, user ist gemacht inkl md5 passwort.
    Mit diese Fehler weiss ich nicht wo zu suchen.

    HABE ES GEFUNDEN!
    Es dürfen im include-files KEINE LEERZEICHNEN nach ?> kommen!
    Jetzt funktioniert es und kann ich weiter bauen, Danke!

    Jan

    Einen Kommentar schreiben:


  • David
    antwortet
    Zitat von XraYSoLo Beitrag anzeigen
    3. das db_select kommt davon, dass ich normalerweise mehrere DBs verwende
    Dann muss das aber auch irgendwo im Tutorial vorkommen. Ansonsten kopiert jemand den Code, probiert's aus, geht nicht, "öh Mist, weg" und sucht sich das nächste tutorial. Ausserdem steht da $db_select(). Vielleicht doch ein Tippfehler?
    Zitat von XraYSoLo Beitrag anzeigen
    5. ich arbeite immernoch mit 4.01 trans ^^ (und das ist doch valide da oben, bis auf das fehlende grundgerüst)
    Naja, das sollte man dann aber auch dazu schreiben. So beliebt und sinnvoll ist 4.01 transitional ja nun nicht mehr, als dass man das unkommentiert "lehren" muss.

    Einen Kommentar schreiben:


  • Q-Meax
    antwortet
    Danke dir !

    Einen Kommentar schreiben:


  • XraYSoLo
    antwortet
    1. solange ich noch da meinen posten hab', werd' ich das eindämmen, wies mir möglich ist ^^
    2. ich selber verwende diesen login-mechanismus selber schon sehr erfolgreich
    3. das db_select kommt davon, dass ich normalerweise mehrere DBs verwende
    4. das formular soll ja nur zu tutorial-zwecken dienen
    5. ich arbeite immernoch mit 4.01 trans ^^ (und das ist doch valide da oben, bis auf das fehlende grundgerüst)
    6. JETZT sollte aber alles klar sein, oder?

    Nils aka XraYSoLo

    Einen Kommentar schreiben:


  • Q-Meax
    antwortet
    Hey, der Script hört sich ganz nett an. Werde es heute Abend mal ausprobieren.

    @all: Hat jemand dieses Tutorial schon ausprobiert ? Funktioniert das?

    ich kenn' das von html.de, da gabs auch mal 'ne welle von diesem dreck
    xray, erinner mich nich an dieses Kiddi-Forum Möchte mein Feierabend nachher genießen können *greez*

    Einen Kommentar schreiben:


  • David
    antwortet
    Es wäre gut, wenn das Formular valides HTML 4 wäre, noch besser xhtml konform
    Code:
    <form action="check_login.php" method="post">
      <p>
        username:
        <br />
        <input type="text" name="u_name" />
      </p>
      <p>
        password:
        <br />
        <input type="password" name="u_pass" />
      </p>
      <p>
        <input type="submit" value="login" />
      </p>
    </form>
    Zitat von XraYSoLo Beitrag anzeigen
    if(!$db_select($_access['name']))
    Entweder ein Schreibfehler oder es fehlt irgendwo noch $db_select='mysql_select_db'. Letzteres macht aber kaum Sinn.

    Einen Kommentar schreiben:


  • XraYSoLo
    antwortet
    gott, fängt diese spammerei jetzt hier auch an...chefs, löscht das bitte mal (ich kenn' das von html.de, da gabs auch mal 'ne welle von diesem dreck).

    Nils aka XraYSoLo

    Einen Kommentar schreiben:


  • Robinb
    antwortet
    Wegen Spam gelöscht

    Einen Kommentar schreiben:


  • KingCrunch
    antwortet
    Wenn man die Felder anständig validiert, kann man auf addslashes und co verzichten. Reguläre Ausdrücke sind ein mächtige Werkzeug

    Einen Kommentar schreiben:

Lädt...
X