Ergebnis 1 bis 3 von 3

Thema: Registrierung ist nur von EINEM Nutzer möglich.

  1. #1
    HTML Newbie
    Registriert seit
    23.12.2016
    Beiträge
    1
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Registrierung ist nur von EINEM Nutzer möglich.

    Hallo Leute.

    Ich bin neu hier und auch neu im Bereich PHP und MySQL.
    Ich habe für eine Seite ein PHP Script entworfen, was es mir erlaubt,
    einen neuen Nutzer in meiner MySQL Datenbank anzulegen.

    Das funktioniert soweit auch ganz gut, jedoch immer nur für genau EINEN Benutzer.
    Sobald ein Benutzer existiert, kann ich keinen neuen Benutzer registrieren,
    erst nach dem Löschen aus der Datenbank ist es dann wieder möglich.

    Danke für eure Hilfe.

    PHP-Code:

    <?php
    require('db.php');

    // If form submitted, insert values into the database.
    if (isset($_REQUEST['username'])){

            
    // removes backslashes
        
    $username stripslashes($_REQUEST['username']);
        
            
    //escapes special characters in a string
        
    $username mysqli_real_escape_string($con,$username); 
        
        
    $zipcode stripslashes($_REQUEST['zipcode']);
        
    $zipcode mysqli_real_escape_string($con,$zipcode);

        
    $email stripslashes($_REQUEST['email']);
        
    $email mysqli_real_escape_string($con,$email);
        
        
    $password stripslashes($_REQUEST['password']);
        
    $password mysqli_real_escape_string($con,$password);
        
        
    $trn_date date("Y-m-d H:i:s");
            
    $query "INSERT into `users` (id, username, password, email, trn_date)
    VALUES ('
    $zipcode', '$username', '".md5($password)."', '$email', '$trn_date')";

            
    $result mysqli_query($con,$query);
            
            if(
    $result){
                echo 
    "<div class='content'>
    <h3>You are registered successfully.</h3>
    <br/>Click here to <a href='login.php'>Login</a></div>"
    ;
            }
        }else{
    ?>
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    24.10.2016
    Beiträge
    303
    Danke
    0
    Bekam 25 mal "Danke" in 24 Postings

    Standard AW: Registrierung ist nur von EINEM Nutzer möglich.

    Ändere
    PHP-Code:
    $result mysqli_query($con,$query); 
    in
    PHP-Code:
    $result mysqli_query($con,$query)
       or die (
    "MySQL-Error: " mysqli_error($con)); 
    MySQL wird dir dann verraten, wo das Problem liegt.

  3. #3
    Moderator Avatar von Arne Drews
    Registriert seit
    20.01.2016
    Ort
    Friedrichstadt, NF
    Beiträge
    1.168
    Danke
    21
    Bekam 118 mal "Danke" in 117 Postings

    Standard AW: Registrierung ist nur von EINEM Nutzer möglich.

    Hallo,

    Welche Version von PHP kommt bei Dir zum Einsatz?
    Seit einigen Jahren ( spätestens seit Beginn der v5 ) ist es sinnvoller, $_POST oder $_GET anstatt $_REQUEST zu verwenden ( je nachdem, über welche Methode das Formular die Daten versendet ).
    Als Entwickler Deiner Scripte, weißt Du, über welchen Kanal die Daten kommen!

    Du benötigst auch kein stripslashes(), da Du mit mysqli_real_escape_string() eh die Daten maskierst. Entweder es wird so gefunden oder nicht.
    Es gibt keinen Grund, dem "bösen" User behilflich zu sein, indem man nicht gewünschte Zeichen aus der Eingabe entfernt.

    Dann empfehle ich PreparedStatements zu verwenden. Da ich PDO verwende, kann ich Dir das nur aus dem Ärmel geschüttelt für MySQLi beispielhaft zeigen.
    Dein Code sähe mit den bisher angesprochenen Veränderungen in etwa so aus:
    PHP-Code:
    require('db.php');


    if (isset(
    $_POST['username'])){

        
    $username mysqli_real_escape_string($con,$username); 
        
    $zipcode mysqli_real_escape_string($con,$zipcode);
        
    $email mysqli_real_escape_string($con,$email);
        
    $password mysqli_real_escape_string($con,$password);

        
    $trn_date date("Y-m-d H:i:s");

        
    $stmnt mysql_prepare$con"INSERT into `users` (id, username, password, email, trn_date) VALUES (?, ?, ?, ?, ?)" );
        
    mysqli_bind_param$con$zipcode$usernamemd5($password), $email$trn_date );
        
    mysqli_stmt_execute$stmnt );

        if ( 
    mysqli_stmt_affected_rows($stmnt) )
            echo 
    "<div class='content'><h3>You are registered successfully.</h3><br/>Click here to <a href='login.php'>Login</a></div>";

    } else { 
    /* ...was auch immer hier kommt... */ 
    Ich habe hierfür mal den prozeduralen Stil verwendet, wie Du.
    Ich empfehle allerdings für MySQLi den objektorientierten Stil anzugewöhnen.

    Weiterhin solltest Du Passwörter statt mit md5() mit password_hash() und password_verify() handeln.

    Gruß Arne

Ähnliche Themen

  1. Mediawiki: Nutzer nur mit bestimmter Mail-Adresse Registrierung erlauben
    Von Teron Gerofied im Forum Webanwendungen - Webapplikationen
    Antworten: 1
    Letzter Beitrag: 10.11.2011, 17:41
  2. Keine erfolgreiche Registrierung möglich.
    Von razor9.1 im Forum HTML & CSS Forum
    Antworten: 45
    Letzter Beitrag: 09.06.2009, 21:14
  3. Verschiedene Links in einem Bild möglich?
    Von AÖ-Ravenation im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 4
    Letzter Beitrag: 24.11.2006, 22:08
  4. Windows XP bei so einem Computer möglich ???
    Von im Forum Computer - Internet Forum
    Antworten: 5
    Letzter Beitrag: 31.08.2004, 12:29

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •