[SOLVED] Ahh! Validation Driving Me Mad!

This is a discussion on "[SOLVED] Ahh! Validation Driving Me Mad!" within the Web Page Design section. This forum, and the thread "[SOLVED] Ahh! Validation Driving Me Mad! are both part of the Design Your Website category.



Go Back   Webforumz.com > Main Forums > Design Your Website > Web Page Design

Notices


Reply
 
LinkBack Thread Tools
  #1 (permalink)  
Old Jan 13th, 2008, 21:38
Jack Franklin's Avatar
Resources Administrator

SuperMember
Join Date: May 2007
Location: Cornwall, England
Posts: 1,288
Blog Entries: 8
Thanks: 10
Thanked 5 Times in 5 Posts
[SOLVED] Ahh! Validation Driving Me Mad!

I'm trying to validate the backend of Penguin CMS. All the errors are coming from the login.php script, but I do not understand them!
http://validator.w3.org/check?uri=ht...Inline&group=0

MainAdmin.php
PHP: Select all

<?
/**
 * Checks whether or not the given username is in the
 * database, if so it checks if the given password is
 * the same password in the database for that user.
 * If the user doesn't exist or if the passwords don't
 * match up, it returns an error code (1 or 2). 
 * On success it returns 0.
 */
function confirmUser($username$password){
   global 
$conn;
   
/* Add slashes if necessary (for query) */
   
if(!get_magic_quotes_gpc()) {
 
$username addslashes($username);
   }
   
/* Verify that user is in database */
   
$q "select password from siteusers where username = '$username'";
   
$result mysql_query($q,$conn);
   if(!
$result || (mysql_numrows($result) < 1)){
      return 
1//Indicates username failure
   
}
   
/* Retrieve password from result, strip slashes */
   
$dbarray mysql_fetch_array($result);
   
$dbarray['password']  = stripslashes($dbarray['password']);
   
$password stripslashes($password);
   
/* Validate that password is correct */
   
if($password == $dbarray['password']){
      return 
0//Success! Username and password confirmed
   
}
   else{
      return 
2//Indicates password failure
   
}
}
/**
 * checkLogin - Checks if the user has already previously
 * logged in, and a session with the user has already been
 * established. Also checks to see if user has been remembered.
 * If so, the database is queried to make sure of the user's 
 * authenticity. Returns true if the user has logged in.
 */
function checkLogin(){
   
/* Check if user has been remembered */
   
if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])){
      
$_SESSION['username'] = $_COOKIE['cookname'];
      
$_SESSION['password'] = $_COOKIE['cookpass'];
   }
   
/* Username and password have been set */
   
if(isset($_SESSION['username']) && isset($_SESSION['password'])){
      
/* Confirm that username and password are valid */
      
if(confirmUser($_SESSION['username'], $_SESSION['password']) != 0){
         
/* Variables are incorrect, user not logged in */
         
unset($_SESSION['username']);
         unset(
$_SESSION['password']);
         return 
false;
      }
      return 
true;
   }
   
/* User not logged in */
   
else{
      return 
false;
   }
}
/**
 * Determines whether or not to display the login
 * form or to show the user that he is logged in
 * based on if the session variables are set.
 */
function displayLogin(){
   global 
$logged_in;
   if(
$logged_in){
      echo 
"<h1>Logged In!</h1>";
      echo 
"Welcome <b>$_SESSION[username]</b>, you are logged in. <a href=\"logout.php\">Logout</a><br />";
   echo 
"You can now proceed to the Administration . <a href=\"mainadmin.php\">Administration</a>";
   echo 
"<meta http-equiv='refresh' content='0;url=mainadmin.php'>";
   }
   else{
?>
<br />
<h1>Login</h1>
<form action="" 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="left"><input type="checkbox" name="remember">Remember me next time</td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="sublogin" value="Login"></td></tr>
</table>
</form>
<?
   
}
}

/**
 * Checks to see if the user has submitted his
 * username and password through the login form,
 * if so, checks authenticity in database and
 * creates session.
 */
if(isset($_POST['sublogin'])){
   
/* Check that all fields were typed in */
   
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.");
   }
   
/* Checks that username is in database and password is correct */
   
$md5pass md5($_POST['pass']);
   
$result confirmUser($_POST['user'], $md5pass);
   
/* Check error codes */
   
if($result == 1){
      die(
'That username doesn\'t exist in our database.');
   }
   else if(
$result == 2){
      die(
'Incorrect password, please try again.');
   }
   
/* Username and password correct, register session variables */
   
$_POST['user'] = stripslashes($_POST['user']);
   
$_SESSION['username'] = $_POST['user'];
   
$_SESSION['password'] = $md5pass;
   
/**
    * This is the cool part: the user has requested that we remember that
    * he's logged in, so we set two cookies. One to hold his username,
    * and one to hold his md5 encrypted password. We set them both to
    * expire in 100 days. Now, next time he comes to our site, we will
    * log him in automatically.
    */
   
if(isset($_POST['remember'])){
      
setcookie("cookname"$_SESSION['username'], time()+60*60*24*100"/");
      
setcookie("cookpass"$_SESSION['password'], time()+60*60*24*100"/");
   }
   
/* Quick self-redirect to avoid resending data on refresh */
   
echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
   return;
}
/* Sets the value of the logged_in variable, which can be used in your code */
$logged_in checkLogin();
?>
It all seems to be coming from the Form the Login displays if the user is not logged in. Could anyone help?

I know it's TRansitional, but once I've done this I'll go to Strict!

Jack
__________________
Resources Administrator


Last Blog Entry: A Week with VBulletin (Aug 28th, 2008)
Reply With Quote

  #2 (permalink)  
Old Jan 13th, 2008, 21:55
SuperMember

SuperMember
Join Date: May 2007
Location: UK
Age: 27
Posts: 1,111
Thanks: 0
Thanked 0 Times in 0 Posts
Re: Ahh! Validation Driving Me Mad!

In XHTML, every tag must be closed. For example, you must use <p>...</p> for paragraphs.

If an element is empty, then you must use the self-closing sytax:
Code: Select all
<input type="text" name="user" maxlength="30" />
Start with that.
Reply With Quote
  #3 (permalink)  
Old Jan 13th, 2008, 22:00
Jack Franklin's Avatar
Resources Administrator

SuperMember
Join Date: May 2007
Location: Cornwall, England
Posts: 1,288
Blog Entries: 8
Thanks: 10
Thanked 5 Times in 5 Posts
Re: Ahh! Validation Driving Me Mad!

IT WORKED! And if I over-write the doctype, it's xHTML Strict. Thanks Mike.

(Now I have to do that on all my pages :P)

Jack
__________________
Resources Administrator


Last Blog Entry: A Week with VBulletin (Aug 28th, 2008)
Reply With Quote
  #4 (permalink)  
Old Jan 13th, 2008, 22:21
SuperMember

SuperMember
Join Date: May 2007
Location: UK
Age: 27
Posts: 1,111
Thanks: 0
Thanked 0 Times in 0 Posts
Re: Ahh! Validation Driving Me Mad!

Quote:
Originally Posted by jackfranklin View Post
IT WORKED! And if I over-write the doctype, it's xHTML Strict. Thanks Mike.
Hurrah!
Reply With Quote
  #5 (permalink)  
Old Jan 13th, 2008, 22:38
alexgeek's Avatar
Technical Administrator

SuperMember
Join Date: Jul 2007
Location: Webforumz 24/7
Age: 15
Posts: 3,793
Blog Entries: 9
Thanks: 0
Thanked 2 Times in 2 Posts
Re: [SOLVED] Ahh! Validation Driving Me Mad!

Solved!

it's so easy to miss a few tags that should be self-closed especially when using PHP.
Last Blog Entry: 3D Chess in your browser! (Mar 14th, 2008)
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] 2 validation errors danny322 Web Page Design 5 Jan 15th, 2008 15:26
[SOLVED]Asp Form needs special validation Andrew1986 Classic ASP 4 Dec 21st, 2007 08:14
[SOLVED] javascript from validation eon201 JavaScript Forum 2 Oct 24th, 2007 17:41
[SOLVED] ASP-MySQL Username Validation Monie Classic ASP 2 Oct 22nd, 2007 06:06
[SOLVED] CSS validation error Graisbeck Web Page Design 6 Aug 22nd, 2007 14:44


All times are GMT. The time now is 04:11.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC8
© 2003-2008 Webforumz.com : All Rights Reserved

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43