Jamesking56 Posted January 30, 2009 Share Posted January 30, 2009 I have made a login script, because I have no users, it will always fail because it cant find the username to type in.BUT! for some reason, I type any username and password I click login and it just refreshes the page, The error text doesn't show??Why is this?Here is my login.php file: <?php include('core.php'); $page = "Login"; include('templates/header.php'); $disablesidebar = true; include('templates/sidebar.php'); // Form Submitted? if ( isset($_POST['login']) ) { // Form Submitted, Check Details & Log User In $username = $_POST['username']; $password = $_POST['password']; if ( !$username | !$password | $username=="" | $password=="" ) { $error = true; $errortext = "Please Fill In All Fields!"; } else { // Check Details $get_username = @mysql_query("SELECT username FROM users WHERE username = '$username'"); $get_password = @mysql_query("SELECT password FROM users WHERE username = '$username'"); if ( !$get_username || !$get_password ) { // User Doesn't Exist $error = true; $errortext = "User Not Found!"; } elseif ( $get_password !== md5($password) ) { // Passwords Don't Match $error = true; $errortext = "Password Incorrect!"; } else { // Log User In $user_cookie = setcookie('ft_username','$get_username',time()+3600); $pass_cookie = setcookie('ft_password','$get_password',time()+3600); if ( !$user_cookie || !$pass_cookie ) { // Error Making Cookies if ( !$user_cookie ) { // Delete Password Cookie $cookiedelete = setcookie('ft_password','',time()-3600); } elseif ( !$pass_cookie ) { // Delete Username Cookie $cookiedelete = setcookie('ft_username','',time()-3600); } if ( !$cookiedelete ) { // Cookies Not Deleted $cookiesdeleted = false; } $error = true; $redirect = true; if ( !$cookiesdeleted ) { // change error text $errortext = "Cookie Error! Please Enable Cookies, Delete All Cookies then try again!"; $redirect = false; } else { // normal error text $errortext = "Cookie Error! Could Not Create Cookies!"; $redirect = false; } if ( $redirect ) { // Redirect to Security Check echo ""; } } } } }?> <script type="text/javascript">function check(){ if(document.loginform.username.value=="" || document.loginform.username.length==0) { alert('Please Fill in your Username!'); return false; } else if(document.loginform.password.value=="" || document.loginform.password.length==0) { alert('Please Fill in your Password!'); return false; } else { return true; } }</script> <div id="main"> <?php // Check if User is Logged In if ( loggedin() ) { $error = true; $errortext = "You Are Already Logged In!"; $showlogin = true; } else { // Show Login Form $showlogin = true; $error = false; } if ( $error ) { // Show Error ?> <h2><a href="#">Error!</a></h2> <p><?php echo $errortext; ?></p> <?php } if ( $showlogin ) { // Show Login Form echo "<h2><a href=\"login.php\">Login</a></h2>"; if ( $error ) { // Error Forund with Login, Display Error echo "<font color=red>" . $errortext . "</font><br />"; } echo "<form method=\"post\" action=\"login.php\" name=\"loginform\">"; echo "Username: <input type=\"text\" name=\"username\" value=\"\" class=\"textbox\" />"; echo "<br />Password: <input type=\"password\" name=\"password\" value=\"\" class=\"textbox\" /><br />"; echo "<input type=\"submit\" name=\"login\" value=\"Login!\" class=\"button\" OnClick=\"return check();\" /></p>"; echo "<p><a href=\"forgot.php\" title=\"Click here to Request a New Password!\">Forgot Your Password?</a><br />"; echo "<a href=\"register.php\" title=\"Signup Here Today!\">Signup!</a>"; echo "</form>"; } ?> </div> <!-- content-wrap ends here --> </div> <?php include('templates/footer.php');?> Please Help, thanks in advance! Link to comment Share on other sites More sharing options...
jeffman Posted January 31, 2009 Share Posted January 31, 2009 Basic debugging strategy. Lard your code with echo statements. Echo every variable as soon as it gets assigned anything other than a literal, even if you're "sure" you know what's going in there. You may get surprised. Especially echo your POST and GET values. (Use var_dump on arrays and objects.)But also put echo statements at key points inside control structures: if/else statements, loops, etc. In these cases, you can echo a variable, or simply echo a word that tells you where you are. As in:echo "Entered for loop<br>";The stuff that gets echoed will help you trace values and flow. Often, it's the flow that turned out weird, and you have to go figure out why. But now you know where to look.(Obviously, remove the echoes when the problem is solved.) Link to comment Share on other sites More sharing options...
clonetrooper9494 Posted January 31, 2009 Share Posted January 31, 2009 I just skimmed it through and might have found the problem, you say if ( loggedin() ){$error = true;$errortext = "You Are Already Logged In!";$showlogin = true;}else{// Show Login Form$showlogin = true;$error = false;} basicly, your script is setting $error to true, but since they aren't logged in, it resets $error to false.If you have any other problems, try the echo thing like Deirdre's Dad said. Link to comment Share on other sites More sharing options...
Jamesking56 Posted February 2, 2009 Author Share Posted February 2, 2009 Thanks! I sorted the problem!it was where I had set $error to false again! Silly Me! and thanks Deidres Dad I am going to use your technique in the future!Thanks! Link to comment Share on other sites More sharing options...
cpugeek Posted February 18, 2009 Share Posted February 18, 2009 try turning error_reporting on, it might help you debug the script. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.