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 [email protected] with the fix i would be much obliged Thanks so much 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(). 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? 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); 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 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()); 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? 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? 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? 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 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 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? 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 . "'" Link to comment https://forums.phpfreaks.com/topic/48379-php-help-debug/#findComment-237287 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.