0

My membership script works fine, except I can't login, because this check.php script doesn't work. Login form action is check.php. Once I login with username and password, check.php gives me an error message "Please enter ALL of the information". The only information on login form is username and password. The password is a random md5 password. I copied and paste this script from a php tutortial, because I don't know php. Everything works except this file. How do I direct it to my member page once its working? Please help.

<?
/* Check Username Script */
session_start();  // Start Session

include 'db.php';
// Conver to simple variables
$username = $_POST['username'];
$password = $_POST['password'];

if((!$username) || (!$password)){
	echo "Please enter ALL of the information! <br />";
	include 'login_form.html';
	exit();
}

// Convert password to md5 hash
$password = md5($password);

// check if the user info validates the db
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
	while($row = mysql_fetch_array($sql)){
	foreach( $row AS $key => $val ){
		$$key = stripslashes( $val );
	}
		// Register some session variables!
		session_register('first_name');
		$_SESSION['first_name'] = $first_name;
		session_register('last_name');
		$_SESSION['last_name'] = $last_name;
		session_register('email_address');
		$_SESSION['email_address'] = $email_address;
		session_register('special_user');
		$_SESSION['user_level'] = $user_level;
		
		mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'");
		
		header("Location: members.php");
	}
} else {
	echo "You could not be logged in! Either the username and password do not match or you have not validated your membership!<br />
	Please try again!<br />";
	include 'login_form.html';
}
?>

Edited by nav33n: Use [code][/code] tags to wrap your code for easy readability.

4
Contributors
8
Replies
9
Views
7 Years
Discussion Span
Last Post by rajarajan07
0

where is your log-in form? if you run this directly of course you will encounter an error to enter the field, coz you username and password are empty

0

here is th login script.

<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="check.php" method="post" name="" id="">
  <table width="50%" border="0" align="center" cellpadding="4" cellspacing="0">
    <tr> 
      <td width="22%">Username</td>
      <td width="78%"><input name="username" type="text" id="username"></td>
    </tr>
    <tr> 
      <td>Password</td>
      <td><input name="password" type="password" id="password"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit"></td>
    </tr>
  </table>
</form>
</body>
</html>

Edited by nav33n: Please use [code][/code] tags.

0

put your code inside $_POST

like

<?
/* Check Username Script */
session_start(); // Start Session

include 'db.php';
// Conver to simple variables
$username = $_POST['username'];
$password = $_POST['password'];

if($_POST['Submit']){ // start of $_POST['Submit']

if((!$username) || (!$password)){
echo "Please enter ALL of the information! <br />";
include 'login_form.html';
exit();
}

// Convert password to md5 hash
$password = md5($password);

// check if the user info validates the db
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
// Register some session variables!
session_register('first_name');
$_SESSION['first_name'] = $first_name;
session_register('last_name');
$_SESSION['last_name'] = $last_name;
session_register('email_address');
$_SESSION['email_address'] = $email_address;
session_register('special_user');
$_SESSION['user_level'] = $user_level;

mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'");

header("Location: members.php");
}
} else {
echo "You could not be logged in! Either the username and password do not match or you have not validated your membership!<br />
Please try again!<br />";
include 'login_form.html';
}

} // end of $_POST['Submit']

?>

Edited by vaultdweller123: n/a

0
if(empty($username) || empty($password)){
echo "Please enter ALL of the information! <br />";
include 'login_form.html';
exit();
}
0

I uploaded the code above. After I type username and password on login form I got these error messages.

1. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by output started at check.php

2. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent output started at check.php

0

session_start(): should be in the first line, Some unwanted characters are added before or after <?php and session_start. Try to identify in some of the editors and remove it. it will work.

0

haeders are send when ou output something.
so put the sesion stuf before anything else.

also make sure that there are no empty lines before your

no empty line here
<?php 

no echo here

sesion_stuff()
?>

Edited by pzuurveen: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.