Hartley Posted January 15, 2007 Share Posted January 15, 2007 In the following script that I wrote (used to work, but for some reason when I made a change it did some funny stuff), for some reason, 2 rows appear instead of one:The first one is the regular row exactly as it should be, the second is completely empty with the exception of the default values. I can't figure out why the second one is appearing...[code]$rname = htmlspecialchars($_POST['rname']);$age = htmlspecialchars($_POST['age']);$email = htmlspecialchars($_POST['email']);$appusername = htmlspecialchars($_POST['appusername']);$profession = htmlspecialchars($_POST['profession']);$whyjoin = htmlspecialchars($_POST['whyjoin']);$whyjoin = nl2br($whyjoin);$role = htmlspecialchars($_POST['role']);$role = nl2br($role);$responsibility = htmlspecialchars($_POST['responsibility']);$responsibility = nl2br($responsibility);$friendships = htmlspecialchars($_POST['friendships']);$friendships = nl2br($friendships);$hear = htmlspecialchars($_POST['hear']);$hear = nl2br($hear);$cname = htmlspecialchars($_POST['cname']);$class = htmlspecialchars($_POST['class']);$talent = htmlspecialchars($_POST['talent']);$daily = htmlspecialchars($_POST['daily']);$prof1 = htmlspecialchars($_POST['prof1']);$prof2 = htmlspecialchars($_POST['prof2']);$previous = htmlspecialchars($_POST['previous']);$previous = nl2br($previous);$references = htmlspecialchars($_POST['references']);$references = nl2br($references);$oldguilds = htmlspecialchars($_POST['oldguilds']);$oldguilds = nl2br($oldguilds);$whyyou = htmlspecialchars($_POST['whyyou']);$whyyou = nl2br($whyyou);$raider = htmlspecialchars($_POST['raider']);$raider = nl2br($raider);$spec_gameplay = htmlspecialchars($_POST['spec_gameplay']);$spec_gameplay = nl2br($spec_gameplay);$yourgoals = htmlspecialchars($_POST['yourgoals']);$yourgoals = nl2br($yourgoals);$ourgoals = htmlspecialchars($_POST['ourgoals']);$ourgoals = nl2br($ourgoals);$anythingelse = htmlspecialchars($_POST['anythingelse']);$anythingelse = nl2br($anythingelse);$software = htmlspecialchars($_POST['software']);$behavior_agree = htmlspecialchars($_POST['behavior_agree']);$hostname="----";$username="----";$password="----";$dbname="----";$conn = mysql_connect($hostname,$username, $password) OR DIE ("Unable to connect to database! Please try again later.");mysql_select_db($dbname);mysql_query("INSERT INTO $faction (appid, rname, age, email, username, profession, whyjoin, role, responsibility, friendships, hear, cname, class, talent, daily, prof1, prof2, previous, igreferences, oldguilds, whyyou, raider, spec_gameplay, yourgoals, ourgoals, anythingelse, software, behavior_agree) VALUES ('', '$rname', '$age', '$email', '$appusername', '$profession', '$whyjoin', '$role', '$responsibility', '$friendships', '$hear', '$cname', '$class', '$talent', '$daily', '$prof1', '$prof2', '$previous', '$references', '$oldguilds', '$whyyou', '$raider', '$spec_gameplay', '$yourgoals', '$ourgoals', '$anythingelse', '$software', '$behavior_agree')") or die(mysql_error());mysql_close($conn);[/code] Quote Link to comment Share on other sites More sharing options...
hvle Posted January 16, 2007 Share Posted January 16, 2007 if appid is an auto-increment column, do not include it in the query.To make sure that it only inserted once, put limit 1 as a guard. Aside of that I don't see any problem with the query that caused it to insert twice.Maybe you have a loop somewhere that do this for you? Quote Link to comment Share on other sites More sharing options...
Hartley Posted January 16, 2007 Author Share Posted January 16, 2007 I do have another database query earlier, is there anything in the chunk of code that may cause problems?[code]<?phpif (empty($_COOKIE['sbbuserid'])) { $pmbox = " <!-- login form --> <form action=\"http://www.sedition-gaming.com/community/login.php?do=login\" method=\"post\" style=\"display:inline\" onsubmit=\"md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, $show[nopasswordempty])\"> <script type=\"text/javascript\" src=\"clientscript/vbulletin_md5.js?v=$vboptions[simpleversion]\"></script> <table cellpadding=\"0\" cellspacing=\"$stylevar[formspacer]\" border=\"0\"> <tr> <td class=\"smallfont\"><label for=\"navbar_username\">User</label></td> <td><input type=\"text\" class=\"bginput\" style=\"font-size: 11px\" name=\"vb_login_username\" id=\"navbar_username\" size=\"10\" accesskey=\"u\" tabindex=\"101\" value=\"Username\" style=\"display:inline\" onfocus=\"if (this.value == 'Username') this.value = '';\" /></td> <td class=\"smallfont\" colspan=\"2\" nowrap=\"nowrap\"><input type=\"checkbox\" name=\"cookieuser\" value=\"1\" tabindex=\"103\" id=\"cb_cookieuser_navbar\" style=\"display:inline\" accesskey=\"c\" />Remember Me</td> </tr> <tr> <td class=\"smallfont\">Pass</td> <td><input type=\"password\" style=\"display:inline\" class=\"bginput\" style=\"font-size: 11px\" name=\"vb_login_password\" id=\"navbar_password\" size=\"10\" tabindex=\"102\" /></td> <td><input type=\"submit\" class=\"button\" value=\"Log in\" tabindex=\"104\" title=\"Enter username to login\" accesskey=\"s\" /></td> </tr> </table> <input type=\"hidden\" name=\"s\" value=\"$session[sessionhash]\" /> <input type=\"hidden\" name=\"do\" value=\"login\" /> <input type=\"hidden\" name=\"vb_login_md5password\" /> <input type=\"hidden\" name=\"vb_login_md5password_utf\" /> </form> <!-- / login form -->"; $register = "<td class=\"silverbar\"><a href=\"http://www.sedition-gaming.com/community/register.php\" rel=\"nofollow\">Register</a></td>";} else {$dbhost = '----';$dbuser = '----';$dbpass = '----';$dbname = '----';$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');mysql_select_db($dbname);$pminbox = "SELECT pmtotal, pmunread, userid, username, salt, lastvisit FROM user WHERE userid = " .$_COOKIE['sbbuserid'];$pmquery = mysql_query($pminbox);while($pmstatus = mysql_fetch_assoc($pmquery)){ $unread = "{$pmstatus['pmunread']}"; $total = "{$pmstatus['pmtotal']}"; $userid = "{$pmstatus['userid']}"; $username = "{$pmstatus['username']}"; $salt = "{$pmstatus['salt']}"; $lastvisit = "{$pmstatus['lastvisit']}";if (!$unread || $unread == "0") {$unread = $unread; }else {$unread = "<strong>$unread</strong>"; }define('COOKIE_SALT', 'VBFD762FE8');$logouthash = md5($userid . $salt . COOKIE_SALT); $usercp = "<td class=\"silverbar\"><a href=\"http://www.sedition-gaming.com/community/usercp.php$session[sessionurl_q]\">Edit Profile</a></td>"; $logout = "<td class=\"silverbar\"><a href=\"http://www.sedition-gaming.com/community/login.php?do=logout&logouthash=$logouthash\" onclick=\"return log_out()\">Log Out</a></td>";}$orientation = "SELECT userid, usergroupid, username, orientation, popupstat FROM user WHERE userid = " .$_COOKIE['sbbuserid'];$orientationquery = mysql_query($orientation);while($orstatus = mysql_fetch_assoc($orientationquery)){ $userid = "{$orstatus['userid']}"; $usergroupid = "{$orstatus['usergroupid']}"; $username = "{$orstatus['username']}"; $orientation = "{$orstatus['orientation']}"; $popup = "{$orstatus['popupstat']}";if (!$usergroupid || $usergroupid == "6") {if (!$orientation || $orientation == "0") {$orientationstatus = "<table class=\"tborder\" cellpadding=\"0\" cellspacing=\"1\" border=\"0\" width=\"558\"><tr><td class=\"newspost-head-red\"><a href=\"http://www.sedition-gaming.com/orientation.php?step=1\">Welcome to Sedition Gaming!</a></td></tr><tr><td class=\"newspost-body\"> Hello, and congratulations on becoming a member of Sedition, a global gaming community. All members are required to go through a brief orientation to familiarize yourselves with some of our guild's structure and policies. The entire process should take approximately 15 minutes to complete and is required within 7 days of attaining membership status. <a href=\"http://www.sedition-gaming.com/orientation.php?step=1\" class=\"darkredlink\">Click here</a> to begin!</td></tr></table><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"> <tr> <td height=\"5\"><img src=\"images/site/clear.gif\" width=\"1\" height=\"1\" border=\"0\" alt=\"Spacer\" /></td> </tr></table>";if (!$popup || $popup == "0") {$popupquery = "UPDATE user SET popupstat='1' WHERE userid = " .$vbulletin->userinfo['userid'];$popupquery2 = mysql_query($popupquery);$orientationpopup = "<script type=\"text/javascript\"><!--// script to show new private message popupif (confirm(\"Congrats on becoming a member of Sedition!\\n\\n**Orientation is required within 7 days.**\\n\\nClick OK to go to first step, or cancel to hide this prompt.\\n\\nA message will be at the top of the forum until you complete orientation.\")){ // Output when OK is clicked if (confirm(\"Open orientation in a new window?\\n\\n(Press cancel to open in the current window.)\")) { var winobj = window.open(\"http://www.sedition-gaming.com/orientation.php?step=1\", \"orientation\", \"statusbar=yes,menubar=yes,scrollbars=yes,toolbar=yes,location=yes,directories=yes,resizable=yes,top=50,left=50\"); if (winobj == null) { alert(\"Unable to open a new browser window,\\n This might be due to a 'popup blocker'\"); } } else { window.location = \"http://www.sedition-gaming.com/orientation.php?step=1\"; }}// end pm popup script//--></script>";}}}}$currenttime = time();$timediff = $currenttime - $lastvisit;if ($timediff < 0) {$timeago = "1 minute ago"; }elseif ($timediff == 1) {$timeago = "1 second ago"; }elseif ($timediff >= 2 && $timediff < 60) {$timediff = $timediff;$timeago = "$timediff seconds ago"; }elseif ($timediff >= 60 && $timediff < 120) {$timeago = "1 minute ago"; }elseif ($timediff >= 120 && $timediff < 3600) {$timediff = floor($timediff / 60);$timeago = "$timediff minutes ago"; }elseif ($timediff >= 3600 && $timediff < 7200) {$timeago = "1 hour ago"; }elseif ($timediff >= 7200 && $timediff < 86400) {$timediff = floor($timediff / 3660);$timeago = "$timediff hours ago"; }elseif ($timediff >= 86400 && $timediff < 172800) {$timeago = "1 day ago"; }elseif ($timediff >= 172800 && $timediff < 604800) {$timediff = floor($timediff / 86400);$timeago = "$timediff days ago"; }elseif ($timediff >= 604800 && $timediff < 1209600) {$timeago = "1 week ago"; }elseif ($timediff >= 1209600 && $timediff < 2592000) {$timediff = floor($timediff / 604800);$timeago = "$timediff weeks ago"; }elseif ($timediff >= 2592000 && $timediff < 5184000) {$timeago = "1 month ago"; }elseif ($timediff >= 5184000 && $timediff < 31104000) {$timediff = floor($timediff / 2592000);$timeago = "$timediff months ago"; }elseif ($timediff >= 31104000 && $timediff < 62208000) {$timeago = "1 year ago"; }elseif ($timediff >= 62208000) {$timediff = floor($timediff / 31104000);$timeago = "$timediff years ago"; }mysql_close($conn); $pmbox = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\"42\"><tr><td valign=\"bottom\"><strong>Welcome, $username!</strong></td></tr> <tr><td valign=\"bottom\">You last visited: $timeago.</td></tr> <tr><td valign=\"bottom\"><a href=\"http://www.sedition-gaming.com/community/private.php\">Private Messages</a>: Unread $unread, Total $total.</tr></td></if></table>";}if (empty($_GET['p'])) { $p = 'latest';} else { $p = $_GET['p'];}?>[/code]Thanks again for your time, I've been up 30 hours working on this and it's hard to find everything. Quote Link to comment Share on other sites More sharing options...
Hartley Posted January 16, 2007 Author Share Posted January 16, 2007 Another thing I noted: I added a timestamp, and the second field (the empty one) adds itself one second after the first. I removed the above code and it still showed the same error.I have another small script that updates some other stuff in the database, and oddly enough, that one is doing a very similar thing and resetting any updates I make. I'll have to delve into the code and see where it could be going wrong. Quote Link to comment Share on other sites More sharing options...
Hartley Posted January 16, 2007 Author Share Posted January 16, 2007 I discovered the problem: my rollover javascript is causing some sort of bug. I'm going to find some other code for it and see if this solves the problem. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.