xreigninflame Posted April 24, 2007 Share Posted April 24, 2007 im getting an error at the numrows line <? session_start(); include("database.php"); /** * Returns true if the username has been taken * by another user, false otherwise. */ function usernameTaken($username) { global $conn; if(!get_magic_quotes_gpc()) { $username = addslashes($username); } $q = "select username from users where username = '$username'"; $result = mysql_query($q,$conn); return (mysql_numrows($result) > 0); /*this is the error*/ } /** * Inserts the given (username, password) pair * into the database. Returns true on success, * false otherwise. */ function addNewUser($username, $password) { global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); } /* Displays the appropriate message to the user after the registration attempt. It displays a success or failure status depending on a session variable set during registration. */ function displayStatus(){ $uname = $_SESSION['reguname']; if($_SESSION['regresult']){ ?> <h1>Registered!</h1> <p>Thank you <b><? echo $uname; ?></b>, your information has been added to the database, you may now <a href="main.php" title="Login">log in</a>.</p> <? } else{ ?> <h1>Registration Failed</h1> <p>We're sorry, but an error has occurred and your registration for the username <b><? echo $uname; ?></b>, could not be completed.<br> Please try again at a later time.</p> <? } unset($_SESSION['reguname']); unset($_SESSION['registered']); unset($_SESSION['regresult']); } if(isset($_SESSION['registered'])){ /** * This is the page that will be displayed after the * registration has been attempted. */ ?> <html> <title>Registration Page</title> <body> <? displayStatus(); ?> </body> </html> <? return; } /** * Determines whether or not to show to sign-up form * based on whether the form has been submitted, if it * has, check the database for consistency and create * the new account. */ if(isset($_POST['subjoin'])){ /* Make sure all fields were entered */ if(!$_POST['user'] || !$_POST['pass']){ die('You didn\'t fill in a required field.'); } /* Spruce up username, check length */ $_POST['user'] = trim($_POST['user']); if(strlen($_POST['user']) > 30){ die("Sorry, the username is longer than 30 characters, please shorten it."); } /* Check if username is already in use */ if(usernameTaken($_POST['user'])){ $use = $_POST['user']; die("Sorry, the username: <strong>$use</strong> is already taken, please pick another one."); } /* Add the new account to the database */ $md5pass = md5($_POST['pass']); $_SESSION['reguname'] = $_POST['user']; $_SESSION['regresult'] = addNewUser($_POST['user'], $md5pass); $_SESSION['registered'] = true; echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[php_SELF]\">"; return; } else{ /** * This is the page with the sign-up form, the names * of the input fields are important and should not * be changed. */ ?> <html> <title>Registration Page</title> <body> <h1>Register</h1> <form action="<? echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="post"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr> <tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr> <tr><td colspan="2" align="right"><input type="submit" name="subjoin" value="Join!"></td></tr> </table> </form> </body> </html> <? } ?> if you could please email me at drummer666@gmail.com with the fix i would be much obliged Thanks so much Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/ Share on other sites More sharing options...
trq Posted April 24, 2007 Share Posted April 24, 2007 Its mysql_num_rows() not mysql_numrows(). Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236524 Share on other sites More sharing options...
xreigninflame Posted April 24, 2007 Author Share Posted April 24, 2007 i tried that and it throws an error still. i cant see it though. it happenese too fast, any way to slow the error down? Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236530 Share on other sites More sharing options...
trq Posted April 24, 2007 Share Posted April 24, 2007 Try simply... return mysql_num_rows($result); Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236533 Share on other sites More sharing options...
xreigninflame Posted April 24, 2007 Author Share Posted April 24, 2007 nope it still throws an error...i am really baffled GRRR lol Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236536 Share on other sites More sharing options...
sanfly Posted April 24, 2007 Share Posted April 24, 2007 or $result = mysql_query($q,$conn) or die(mysql_error()); Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236537 Share on other sites More sharing options...
trq Posted April 24, 2007 Share Posted April 24, 2007 Yeah, it is likely that your query is failing. What error exactly are you getting? Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236540 Share on other sites More sharing options...
xreigninflame Posted April 24, 2007 Author Share Posted April 24, 2007 thats part of the problem.. it happens so fast i cant see it. but i know it one line 18... is there a way to slow the error down? Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236542 Share on other sites More sharing options...
sanfly Posted April 24, 2007 Share Posted April 24, 2007 If you use die it should kill the script and display the error Maybe for debugging purposes, pull the query out of the function and run it directly? Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236546 Share on other sites More sharing options...
MadTechie Posted April 24, 2007 Share Posted April 24, 2007 use die; the script will stop when it hits it Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-236553 Share on other sites More sharing options...
xreigninflame Posted April 24, 2007 Author Share Posted April 24, 2007 i was able to copy the error it is warning: mysql_num_rows(): supplied arguments is not a valid MySQL result resource in /home/wasdaone/public_html/thomas/newuser.php on line 18 Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-237022 Share on other sites More sharing options...
sanfly Posted April 24, 2007 Share Posted April 24, 2007 That would indicate that something has gone wrong with the query above that populates $result Can you please post the code as you have it now? Did you put the "or die(mysql_error());" after the SELECT query? Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-237281 Share on other sites More sharing options...
shaunrigby Posted April 24, 2007 Share Posted April 24, 2007 Try changing $q to "SELECT `username` FROM `users` WHERE `username` = '" . $username . "'" Quote Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-237287 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.