Duplicate record
The duplicate record check does not work properly
if($_POST) { $required = array('full_name','usr_email','pwd','user_name'); $missing = array(); foreach($_POST as $key => $value) { if (empty($value) && in_array($key, $required)) { array_push($missing, $key); } else { ${$key} = escape($value); } } if($_POST['usr_email'] !='') { if (!isEmail($_POST['usr_email'])) { array_push($missing, 'email_invalid'); } } $duplicate = "SELECT count(*) as total FROM users WHERE user_email='".$_POST['usr_email']."'"; mysql_select_db($database_conndb, $conndb); $result = mysql_query($duplicate, $conndb) or die(mysql_error()); $rows = mysql_fetch_assoc($result); $total_rows = mysql_num_rows($result); if ($total_rows > 0) { array_push($missing, 'duplicate'); } mysql_free_result($result); if (!empty($missing)) { if(in_array('full_name', $missing)) { $full_name = 'Please provide your full name'; } if(in_array('usr_email', $missing) || in_array('email_invalid', $missing)) { $usr_email = 'Please provide your valid email address'; } if(in_array('duplicate', $missing)) { $usr_email = 'Email address already registered'; } if(in_array('user_name', $missing)) { $user_name = 'Please create a password'; } if(in_array('pwd', $missing)) { $pwd = 'Please create a password'; } } else { // stores sha1 of password $sha1pass = PwdHash(${'pwd'}); $usr_email = ${'usr_email'}; $user_name = ${'user_name'}; $sql = "INSERT INTO users (`full_name`,`user_email`,`pwd`,`user_name`) VALUES ('${full_name}','${usr_email}','$sha1pass','${user_name}')"; mysql_select_db($database_conndb, $conndb); $result = mysql_query($sql, $conndb) or die(mysql_error()); $success ='<p>Thank you.<br />You have succesfully registered.</p>'; } } <html> <head> <title>PHP Login :: Free Registration/Signup Form</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="styles.css" rel="stylesheet" type="text/css"> </head> <body> <?php if (isset($success)) { echo $success; } else { ?> <form action="" method="post" name="regform" id="regform"> <table border="0" cellspacing="0" cellpadding="0"> <?php if (isset($full_name)) { ?> <tr> <th> </th> <td class="warn"><?php echo $full_name; ?></td> </tr> <?php } ?> <tr> <th scope="row"><label for="full_name">Full name</label></th> <td><input type="text" name="full_name" id="full_name"></td> </tr> <?php if (isset($user_name)) { ?> <tr> <th> </th> <td class="warn"><?php echo $user_name; ?></td> </tr> <?php } ?> <tr> <th scope="row"><label for="user_name">User Name:</label></th> <td> <input type="text" name="user_name" id="user_name"></td> </tr> <?php if (isset($usr_email)) { ?> <tr> <th> </th> <td class="warn"><?php echo $usr_email; ?></td> </tr> <?php } ?> <th scope="row"><label for="user_email">User Email:</label></th> <td> <input type="text" name="usr_email" id="usr_email"></td> </tr> <?php if (isset($pwd)) { ?> <tr> <th> </th> <td class="warn"><?php echo $pwd; ?></td> </tr> <?php } ?> <tr> <th scope="row"><label for="pwd">Password</label></th> <td><input type="password" name="pwd" id="pwd"></td> </tr> <tr> <th scope="row"> </th> <td><input type="submit" name="button" id="button" value="Submit"></td> </tr> </table> </form> // <?php } ?> </body> </html>When I click on submit button it gives error saying record already exists even on an empty database mysql CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_name` tinytext COLLATE latin1_general_ci NOT NULL, `user_name` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '', `user_email` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '', `pwd` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `user_email` (`user_email`), FULLTEXT KEY `idx_search` (`full_name`,`user_email`,`user_name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ; does anyone know why the dupliacte record check does not work?
Started: September 21, 2011
Latest Activity: September 21, 2011
php
mysql
validation
duplicaterecord
1 Answer
try that
if($_POST) { $required = array(\'full_name\',\'usr_email\',\'pwd\',\'user_name\'); $missing = array(); foreach($_POST as $key => $value) { if (empty($value) && in_array($key, $required)) { array_push($missing, $key); } else { $$key = escape($value); } } if($_POST[\'usr_email\'] !=\'\') { if (!isEmail($_POST[\'usr_email\'])) { array_push($missing, \'email_invalid\'); } } if (!empty($missing)) { if(in_array(\'full_name\', $missing)) { $full_name = \'Please provide your full name\'; } if(in_array(\'usr_email\', $missing) || in_array(\'email_invalid\', $missing)) { $usr_email = \'Please provide your valid email address\'; } if(in_array(\'duplicate\', $missing)) { $usr_email = \'Email address already registered\'; } if(in_array(\'user_name\', $missing)) { $user_name = \'Please create a password\'; } if(in_array(\'pwd\', $missing)) { $pwd = \'Please create a password\'; } } else { $duplicate = \"SELECT * FROM `users` WHERE `user_email` =\'$user_email\'\"; if($dup = mysql_fetch_array(mysql_query($duplicate))){ $success =\'<p>sorry.<br />there is a user use \'.$dup[\'user_email\'].\'.</p>\'; }else{ $sql = \" INSERT INTO users (`full_name`,`user_email`,`pwd`,`user_name`) VALUES (\'$full_name\',\'$user_email\',\'\".PwdHash($pwd).\"\',\'$user_name\')\"; $success =\'<p>Thank you.<br />You have succesfully registered.</p>\'; } } } please to make a database connection in each page Posted: MacOS 1 of 1 people found this answer helpful. Did you? Yes No |
© Advanced Web Core. All rights reserved