2016-04-19 18 views
-1

Ich habe eine Webseite namens Register.php erstellt, die Daten in meine Datenbank einfügen soll. Das Problem dabei ist, dass die Registrierungsseite funktioniert, aber wenn ich versuche, mich anzumelden, wurde die Information nicht in meine Datenbank eingefügt. Gibt es irgendetwas, das ich falsch gemacht habe, das ich nicht finden kann?PHP MySQL kann "INSERT INTO" nicht verwenden

<?php 
    echo "<h1>Register</h1>"; 
    $submit = $_POST['submit']; 
    //form data 
    $FullName = strip_tags($_POST['FullName']); 
    $UserName = strip_tags($_POST['UserName']); 
    $Password = strip_tags($_POST['Password']); 
    $RepeatPassword = strip_tags($_POST['RepeatPassword']); 
    if ($submit) 
    { 
     //open database 
     $connect = mysql_connect("localhost","root",""); 
     mysql_select_db("cs266db_db1"); 

     $namecheck = mysql_query("SELECT UserName FROM user_ID WHERE UserName='$UserName'"); 
     $count = mysql_num_rows($namecheck); 
     if ($count!=0) 
     { 
      die("UserName already taken"); 
     }  
     //check for existence 
     if($FullName&&$UserName&&$Password&&$RepeatPassword) 
     {   
      //check password and repeat password match 
      if($Password==$RepeatPassword) 
      {   
       //check length of username and fullname 
       if (strlen($UserName) > 25 || strlen($FullName)>25) 
       { 
        echo "Length of username or fullname is over 25 characters!"; 
       } 
       else { 
        //check password 
        if(strlen($Password)>25 || strlen($Password) < 6) { 
        echo "Password must be between 6 and 25 characters"; 
        } else {    
         //encrypt password 
         $Password = md5($Password); 
         $RepeatPassword = md5($RepeatPassword);        
         $queryreg = mysql_query("INSERT INTO user_id VALUES (FullName='".$FullName."',UserName='".$UserName."',Password='".$Password."'");    
        } 
        die("You have been registered <a href='index1.php'> Return to Login Page </a>");   
       }   
      } 
      else{ 
       echo "Your passwords do not match"; 
      }   
     } else { 
      echo "Please fill in all fields!";  
     } 
    } 
?> 

<html>  
<form action="register.php" method="POST"> 
<table> 
    <tr> 
     <td> 
      Your full name: 
     </td> 
     <td> 
      <input type="text" name="FullName" value="<?php echo $FullName ?>"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Choose a username: 
     </td> 
     <td> 
      <input type="text" name="UserName" value="<?php echo $UserName ?>"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Choose a password: 
     </td> 
     <td> 
      <input type="password" name="Password"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Repeat your password: 
     </td> 
     <td> 
      <input type="password" name="RepeatPassword"> 
     </td> 
    </tr> 
</table>   
    <br> 
    <input type="submit" name="submit" value="Register">     
</form>  
</html> 

Im einen Fehler von diesem auch immer (ich auf Netbeans leite):

Notice: Undefined index: in C einreichen: \ Xampp \ htdocs \ Resume_DB \ register.php auf Zeile 4 Hinweis: Undefiniert Index: FullName in C: \ Xampp \ htdocs \ Resume_DB \ register.php in Zeile 7 Hinweis: Undefinierter Index: Benutzername in C: \ Xampp \ htdocs \ Resume_DB \ register.php in Zeile 8 Hinweis : Undefiniert index: Passwort in C: \ Xampp \ htdocs \ Lebenslauf_DB \ register.php on line 9 Noti ce: Undefined index: RepeatPassword in C: \ Xampp \ htdocs \ Resume_DB \ register.php on line 10

hat das mit meinem Problem der Einfügung zu tun? Wenn ja, kannst du helfen! Bitte und Danke!

+6

** ACHTUNG **: Wenn Sie nur PHP lernen, lernen Sie bitte nicht das obsolete ['mysql_query'] (http://php.net/manual/en/function.mysql-query.php) Schnittstelle. Es ist schrecklich und wurde in PHP 7 entfernt. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps-pdo- for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) hilft Best Practices zu erklären. Ihre Benutzerparameter sind ** nicht ** [richtig entkernt] (http://bobby-tables.com/php) und Sie haben strenge [SQL injection Bugs] (http://bobby-tables.com/) hier. – tadman

+5

** WARNUNG **: Es ist nicht einfach, eine eigene Zugriffssteuerungsschicht zu schreiben, und es gibt viele Möglichkeiten, um sie ernsthaft falsch zu machen. Bitte schreiben Sie nicht Ihr eigenes Authentifizierungssystem, wenn Sie ein modernes [Entwicklungsframework] (http://codegeekz.com/best-php-frameworks-for-developers/) wie [Laravel] (http://laravel.com/) verfügt über ein robustes [Authentifizierungssystem] (https://laravel.com/docs/5.2/authentication). Am absolutesten folgen Sie [empfohlene Best Practices für die Sicherheit] (http://www.phptherightway.com/#security) und speichern Sie Passwörter niemals als Nur-Text. – tadman

+0

Ihre Einfügesyntax ist falsch. – larsAnders

Antwort

0

Ich glaube nicht, das die Art und Weise Sie den Einsatz laufen in MySql noch gültig ist, Ich habe gerade versucht es auf meinem MySql auf wamp und die Linie nicht wieder Fehler, sondern alle Werte, die gewesen sind Einsatz NULL Ich spreche über diese Linie

insert into tmp_table values (`field_1`='value_1', `field_2`='value_2', `field_3`='value_3' ...) 

Erhalten Sie leere Zeilen in Ihrer DB oder überhaupt keine Zeilen?