Beiträge von Stef

    Hey,

    habe jetzt noch mal ein var_dump auf die Session, im script registration.php, angewendet. Da wird die eingegebene E-Mail ausgegeben. Also muss diese ja in der Session sein.

    Habe nun nochmal auf den Registrationslink zum Bestätigen geklickt und was passiert nun.

    Es wird die Erfolgsmeldung ausgegeben: Registration wurde abgeschlossen. Hier können sie sich anmelden.

    Ebenso wird jetzt ,wenn ich die Session auf dieser Seite var_dumpe, die E-Mail ausgegeben.

    Finde ich voll komisch. Gestern Abend gings nicht. Und jetzt gehts wieder... Woran kann es denn liegen ?

    Hey,

    habe es mal getestet.

    Es wird ausgegeben: kein error - setze session

    Das heißt die ist gesetzt..

    Das Problem muss in diesem Script sein:

    Hey,

    ich erstelle bei dem Registriervorgang eine Session wenn keine Fehler bestehen. Die Function session_start(); steht am anfang des codes.

    PHP
    session_start();
    
    if(count($error) === 0)    {
    
    $_SESSION['email'] = $email;
    
    }

    Nun überprüfe ich im Registration bestätigen script ob diese session vorhanden ist. Sollte ja vorhanden sein. Hat auch bis heute mittag funktioniert. Aber jetzt wird einfach keine Session übergeben...

    Ich kann mir nicht erklären warum. Habe schon gedebugt und alles versucht.. konnte aber den Fehler nicht finden.

    Hoffe ihr findet den Fehler..

    Stef

    Hast du keine anderen Hobbys als ein 7 Jahre alten Post zu kommentieren. Menschenskinner wie kann man nur so **** sein.

    Solche User gehören m.M.n. gesperrt!

    Hey,

    wollte mich eben wie immer normal anmelden. Aber jedesmal kam eine Fehlermeldung. Habe mich erst mal gewundert.

    Dann viel mir nach dem 10 ten Versuch das Captcha auf...

    Warum ist es jetzt hinzugefügt worden ?

    Stef

    Ja genau... so einfach.. Ich denke meistens kompliziert.

    Den Hash für den Link habe ich schon miteingebaut muss nurnoch dann das feld mit active machen und prüfen ob es 1 ist. Und wenn ja login zulassen wenn 0, an den registrationsseite weiterleiten oder sagen das die Registration muss noch bestätigt werden.

    Danke :)

    Ja stimmt auch wieder. Muss ich noch machen.

    Habe das F5 garnicht mal gekannt. Aber ich überprüfe ja ob es schon ein eintrag in der db mit der email oder username gibt.

    Ja ok. Aber ich möchte doch ein douple-opt-in Verfahren erstellen. Sodass dieser erst wenn er auf den Link in der email klickt sich einloggen kann.

    Aber wie kann man es denn erreichen, dass erst nach dem klick auf den link, und der Überprüfung ob der hash als parameter mit dem hash aus der db überein stimmt, der User sich einloggen kann ?

    Dachte : 2 Tabellen erstellen, und die eine speichert die eingaben vom registrierformular. Und die andere Tabelle erhält diese daten erst, wenn der hash übereinstimmt und dann wird diese zum Login benutzt. Anders kann ich es mir nun nicht vorstellen.

    Ja werde ich mal machen.

    Danke

    Hey,

    hm komisch... jetzt funktioniert es. Villt lag es doch am Password oder so.... keine Ahnung

    Ich lasse nur Usernames zu, die noch nicht in der DB stehen. Wäre ja schon ziemlich unübersichtlich wenn da 2 oder mehrere Users mit dem selben Namen sind.

    Ich habe mal hier meine Testseite: http://stef97.bplaced.net/

    Trotzdem danke für die Hilfe :)

    Stef

    PHP
    var_dump('Gezogener Passwordhash aus DB:', $fetchRow->password);
                    echo "<br>";
                    var_dump('Eingegebenes Password mit dem Pepper: ', $password.$pepper);

    Folgende Ausgabe kommt vom Debug:

    string(30) "Gezogener Passwordhash aus DB:"
    string(60) "$2y$10$awVVwJUcz4hZFBt8czSopeF3dqr2Ju9U5ZsXqriTO2X/6G4WQ1ka."


    string(38) "Eingegebenes Password mit dem Pepper: "
    string(14) "Stef123Pfeffer"

    Ich komm bei dem error raus, wenn der hash mit dem password nicht zusammenpasst.

    Also bei der Ausgabe : Fehler

    Jap.. das ist ab und zu echt ein Problem. Aber es ist doch gut, dass die sowas kostenlos anbieten. Braucht man nix zu zahlen, nur Englisch zu lernen und genau hinzuhören und sich teilsweise was dazudichten :)

    Es wird richtig aus der DB geholt, meines Erachtens. Im $fetchRow->password steht der hash drin. Also da wird der hash aus der DB gezogen.

    Ich erkenne weiterhin keinen Fehler..

    Meine beiden Scripts:

    Registration.php (Ein Teil davon):

    Login.php:

    So hash ich das Password mit Pepper

    PHP
    //pepper erstellen 
                     $pepper = "Pfeffer"; 
                     // ************** Pepper wieder hinzufügen ******************
    
                     //Pasword hashen
                     $passwordHash = password_hash($password . $pepper , PASSWORD_DEFAULT);

    So ist der login:

    PHP
    $pepper = "Pfeffer";
    
    if(password_verify($password . $pepper, $fetchRow->password)){
                            header("Location: profil.php?$fetchRow->id"  );
                            $_SESSION['zugriff'] = true;

    Aber da sind dann am Ende 2 verschiedene Hashwerte. Ist ja auch klar.

    Hey,

    ich habe ein Problem. Wenn sich einer registriert bekommt das password noch ein pepper. Nun wenn ich den hash aus der DB mit der Passworteingabe vergleiche, mit password_verify() , dann kommt immer: Fehler beim Login. Und ich denke es kommt vom Pepper.

    Passwort wird mit Pepper gehast und der Hash wird in DB eingetragen und dann später wieder rausgezogen aus der db zum vergleich.

    Habe schon versucht das pepper auf der Login seite an das Passwort zu hängen aber da entsteht dann ein anderer Hash als in DB gespeichert.

    Wie kann ich den Login denn mit dem pepper machen. ?

    Stef

    Hi,

    ich melde mich mal zu Wort.

    Für so ne Webseite würde ich niemals einen kostenlosen Webspace benutzen. Es sieht doch doof aus wenn hinter dem seitennamen dann der name des Hosters/kostenlosen webspaces steht.. Finde sowas nicht schön. Wenn man nur ein Blog hat ok warum nicht oder zum testen. Aber sonst wäre ich eher für kostenpflichtigen Webspace.

    Es gibt schon ziemliche Vorteile eines kostenpflichtigen Webspaces. Diese haben die Pflicht aus meiner Sicht, dass alles aktuell ist (PHP, MYSQL, ....) auf den kostenlosten wiederum ist meistens eine ältere Version drauf.

    Hey,

    den code welchen du dir zusammengestellt hast, bzw. geschrieben ist, ist veraltet. Heute wird HTML5 genutzt.

    Ich habe mir mal die Mühe gemacht und es nachgebaut. Es kann sein, dass ich ab und zu nicht die richtigen HTML-Kontainer einsetze oder etwas anderes falsch mache. Wenn das so ist, würde ich mich freuen wenn ein Profi es mir sagt. So sieht es dann aus: https://jsfiddle.net/99fmh6v4/6/

    Hier der Code:

    Hey,

    bitte halte dich an das Eingabe-Verarbeitung-Ausgabe-Prinzip. Siehe auch : https://php-de.github.io/jumpto/eva-prinzip/

    Weist du was du da machst ? Der Code sieht grausam aus.

    Bei Insert Into tust du die ganzen daten in die datenbank eintragen nicht auswählen und sozusagen herausziehen.

    Dann ist der Teil schonmal meiner Ansicht nach Käse : $ctrl_register = $insertRegister->fetch(); 

    Dann folgenden Zeilen:

    PHP
    $insertRegister = $db->prepare("INSERT INTO tbl_logindata (username, password, email, firstname, lastname, birthday, gender) VALUES (':username', ':pw', ':email', ':firstname', ':lastname', ':date', ':geschlecht')");
                        $result_register = $insertRegister->execute(array('username' => $username, 'password' => $pw, 'email' => $email, 'firstname' => $firstname, 'lastname' => $lastname, 'birthday' => $date, 'gender' => $geschlecht));


    Dort hast du bei execute immer das : vor den Platzhaltern welchen den Wert der Variablen zugewiesen werden vergessen.

    Hier ist ein Ansatz mit Insert Into bei einem Registriervorgang:

    Was ich dir raten würde, ist dabei noch ein extra zufälligen hashwert zu erstellen, z.b. aus dem namen oder so, und dann fügst du diesen hashwert deinem Link als Parameter an : deineseite/registriervorgang_abschluss.php?hashwert . Dann würde ich dem jenigen eine E-Mail senden wo er, bevor er sich anmelden kann, noch den Link bestätigen muss. Dann würde ich auf dieser Abschlusseite denn erstellten hashwert der an die email gehongen worden ist aus der db ziehen, und wenn jemand mit diesem link auf die seite kommt, den Parameter im Link auslesen und mit dem in der Datenbank vergleichen.

    Ebenso natürlich vor dem Insert Into, muss ein Select-Statement erstellt werden, welches überprüft ob schon ein benutzer mit dem Namen regestriert ist, und wenn ja fehlermeldung ausgeben.

    Stef