wilson Posted June 17, 2012 Share Posted June 17, 2012 Hello Forum Members: Could I get some help where the problem might be? I have my script partially working but I can't register the user to the DB. It shows correct connectivity but I can't save the users, all I got is the error message saying duplicate. I tried to compile a picture to show that the script works for a couple of functions but when it comes to save the user to the DB, it gives me an error. Any suggestion accepted. My code : <?php # Script 8.3 - register.php #2 $page_title = 'Register'; include ('includes/header.html'); // Check if the form has been submitted: if (isset($_POST['submitted'])) { //Open the DB require_once('../mysqli_connect3.php'); $errors = array(); // Initialize an error array. // Check for a first name: if (empty($_POST['first_name'])) { $errors[] = 'You forgot to enter your first name.';} else {$fn = trim($_POST['first_name']); } // Check for a last name: if (empty($_POST['last_name'])) { $errors[] = 'You forgot to enter your last name.';} else {$ln = trim($_POST['last_name']); } // Check for an email address: if (empty($_POST['email'])) { $errors[] = 'You forgot to enter your email address.';} else {$e = trim($_POST['email']); } // Check for a password and match against the confirmed password: if (!empty($_POST['pass1'])) { if ($_POST['pass1'] != $_POST['pass2']) { $errors[] = 'Your password did not match the confirmed password.';} else { $p = trim($_POST['pass1']);} } else {$errors[] = 'You forgot to enter your password.';} if (empty($errors)) { // If everything's OK. // Register the user in the database... require_once ('../mysqli_connect3.php'); //connect to the db. // Make the query: $q = "INSERT INTO users (first_name, last_name, email, pass) VALUES ('$fn', '$ln', '$e', SHA1('$p') )"; //$r = @mysqli_query ($dbc, $q); //As per forum suggestion //this will output any query string error syntax. $r = @mysqli_query ($dbc, $q) or die("Error: " . mysqli_error($dbc) ); //$r = @mysqli_query ($dbc, $q); //Check if the query ran. Does $r have a TRUE value? if ($r) { //Print a thankyou message to the user echo '<h1>Thank you</h1> <p>You are now registered. In Chapter 11 you will actually be able to log in!</p><p><br /></p>'; } else { //If the query didn't run OK. //A message to the user echo '<h1>Oops, system error.</h1> <p class="error">You might not be registered because of a system error. Sorry.</p>'; //A message to the programmer echo '<p>' . mysqli_error($dbc) . '<br /><br />Query: ' . $q . '</p>'; } //Close the Db connection mysqli_close($dbc); //include the footer and exit the script include ('includes/footer.html'); exit(); } else{ //Report the input errors to the user echo '<h1>Errors</h1> <p class="error">The following error(s) occurred:<br />'; foreach ($errors as $msg) { echo " - $msg<br />\n"; } echo '</p><p>Please try again.</p><p><br /></p>'; } //Close the Db connection mysqli_close($dbc); } ?> <h1>Register</h1> <form action="register.php" method="post"> <p>First Name: <input type="text" name="first_name" size="15" maxlength="20" value="<?php if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p> <p>Last Name: <input type="text" name="last_name" size="15" maxlength="40" value="<?php if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p> <p>Email Address: <input type="text" name="email" size="20" maxlength="80" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /> </p> <p>Password: <input type="password" name="pass1" size="10" maxlength="20" /></p> <p>Confirm Password: <input type="password" name="pass2" size="10" maxlength="20" /></p> <p><input type="submit" name="submit" value="Register" class="button_style"/></p> <input type="hidden" name="submitted" value="TRUE" /> </form> <?php include ('includes/footer.html'); ?> <?php #Script - mysqli_connect.php //This file contains the database access information //This file also establishes a connection to MySQL //and selects the Database. //Set the database access information as constants: DEFINE ('DB_USER','XXXX'); DEFINE ('DB_PASSWORD' , 'XXXX'); DEFINE ('DB_HOST' , 'XXXX.1and1.com'); DEFINE ('DB_NAME', 'XXXX'); //Make the connection: $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (!$dbc) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysqli_connect_error(); ?> Link to comment Share on other sites More sharing options...
wilson Posted June 17, 2012 Author Share Posted June 17, 2012 Problem solved. I had a blank column on the DB that seemed to be causing the message error. Link to comment Share on other sites More sharing options...
Larry Posted June 18, 2012 Share Posted June 18, 2012 Kudos for figuring it out and thanks for sharing the solution. Link to comment Share on other sites More sharing options...
Recommended Posts