2016-04-18 21 views
0
require_once('appvars.php'); 
require_once('connectvars.php'); 

// Connect to the database 
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) 
or die('Error connecting to MySQL server.'); 

if (isset($_POST['submit'])) { //check for submit 
// Grab the profile data from the POST 
$username = mysqli_real_escape_string($dbc, trim($_POST['username'])); 

$password1 = mysqli_real_escape_string($dbc, trim($_POST['pass1'])); 
$password2 = mysqli_real_escape_string($dbc, trim($_POST['pass2'])); // validate user input 
if (!empty($username) && !empty($password1) && !empty($password2) && ($password1 == $password2)) { 
    // Make sure someone isn't already registered using this username 
    $query = "SELECT * FROM users WHERE username = '$username'"; 
    $data = mysqli_query($dbc, $query) 
    or die('Error querying database.'); 
    if (mysqli_num_rows($data) == 0) { // new function num_row gives you the number of rows retrieved from the query. 
    // The username is unique, so insert the data into the database 
( --> problem line) $query = "INSERT INTO users (username,pass) VALUES ('$username', SHA1('$pass1'), NOW())"; // SHA1 is encrytion being implied to password. 
    mysqli_query($dbc, $query); 

    // Confirm success with the user 
    echo '<p>Your new account has been successfully created. You\'re now ready to <a href="login.php">log in</a>.</p>'; 

    mysqli_close($dbc); 
    exit();// is a function to get out of the program. 
    } 
    else { 
    // An account already exists for this username, so display an error message 
    echo '<p class="error">An account already exists for this username. Please use a different address.</p>'; 
    $username = ""; 
    } 
} //end of validation, user passed the validation. 
else { 
    echo '<p class="error">You must enter all of the sign-up data, including the desired password twice.</p>'; 
} 
} // end of submit 

mysqli_close($dbc); 

Ich weiß, das wurde viel gefragt, aber ich kann keine Antwort finden. Ich erhalte den SQL-Fehler Nummer 1136 - Spaltenanzahl stimmt nicht überein, Wert für meine Abfrage: INSERT INTO Benutzer (Benutzername, übergeben) VALUES ('$ Benutzername', SHA1 ('$ Pass1'), NOW())# 1136 - Spaltenanzahl stimmt nicht mit Wert überein?

Nummer 1136 - Die Anzahl der Spalten stimmt nicht mit der Anzahl der Werte überein, wie Sie sehen können. Alle Werte sind aufgelistet. Kann mir jemand bitte helfen

Danke

+1

Seine einfache Sie können sehen, dass die Anzahl der Werte, die Sie versuchen, Benutzer Tabelle hinzuzufügen ist 3, aber Sie haben nur 2 Spaltennamen angeben. Fügen Sie den anderen Spaltennamen hinzu, der dem letzten Wert (NOW()) entspricht. Dies wird dein Problem lösen. –

Antwort

1

Sie drei Wert in zwei Spalte passieren versuchen, das ist, warum es gibt Ihnen Ihr Einsatz Abfrage wie folgt error.change.

$sql=INSERT INTO users (username,pass,date) VALUES ('$username', SHA1('$pass1'), NOW()); 
+0

Woher kommt die Datumsvariable? –

+0

Sie speichern das Datum oder nicht. Sie hatten jetzt verwendet, wenn nicht, dann entfernen Sie Datum und jetzt. Die Abfrage wird einwandfrei funktionieren. –