hallo iedereen

ik heb hier een login form en kan de fout er niet uitvinden de email activation en register werkt allemaal maar de login form niet kunnen jullie me verder helpen

<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();
$username = $_SESSION['userid'];
$username = $_SESSION['username'];
?>
<!DOCTYPE html>
<html>

  <head>
        <title>Login Page</title>

  </head>

  <body>
<?php

if($username && $userid){
	
	echo "You are already logged in as <b>$username</b> <a href='./member.php'>click here</a> to go to the member page";
	
}else{
$form = "<form action='./login.php' method='POST'>
<table>
<tr>
	<td>Username:</td>
	<td><input type='text' name='user'/></td>
</tr>
<tr>
	<td>Password:</td>
	<td><input type='password' name='password'/></td>
</tr>
<tr>
	<td></td>
	<td><input type='submit' name='loginbtn' value='Login'/></td>
</tr>
<tr>
	<td></td>
	<td><a href='./register.php'>Register</a> <a href='./forgetpass.php'>Forget your Password?</a></td>
</tr>
</table>
</form>";
if ($_POST['loginbtn']){
	$user = $_POST['user'];
	$password = $_POST['password'];
	if($user){
		if($password){
			require("connect.php");
			
			$password = md5(md5("asddsfnkelknd".$password)."kfdgklndfg");
			
			// make sure login info correct
			
			$query= mysql_query("SELECT * FROM members WHERE username='$user' ") or die( mysql_error());
			$numrows = mysql_num_rows($query) or die( mysql_error());
			if($numrows == 1){
				$row = mysql_fetch_assoc($query) or die( mysql_error());
				$dbid = $row['id'] or die( mysql_error());
				$dbuser = $row['username'] or die( mysql_error());
				$dbpass = $row['password'] or die( mysql_error());
				$dbactive = $row['emailactivated'] or die( mysql_error());
				
				if ($password === $dbpass){
					if($dbactive == 1){
						echo "You have logged in as <b>$dbuser</b> <a href='./member.php'>click here</a> to go to the member page";
						// set session info
						$_SESSION['userid'] = $dbid ;
						$_SESSION['username'] = $dbuser;
						mysql_close();
						
						
					}else{
						echo "You must activate your account using your email. $form";
						mysql_close();
					}
					
				}else{
					echo "Your username or password are incorrect. $form";
					mysql_close();
				}
				
			}else
				echo "Username is not found. $form";
				mysql_close();
			
			
			
		
		}else
			echo "You must enter your password. $form";
			mysql_close();
	}else
		echo "You must enter your username. $form";
	
}else
	echo "$form";
}
?>
  </body>
</html>
Kan je wat specifieker zijn dan: "Het werkt niet"? Er is vast wel wat er juist wel gebeurt.
als ik een werkende username met een fout password invoer dan zie ik geen text en als ik de username en de password correct in voer krijg ik ook geen text te zien
- Zet E_NOTICES aan, fouten zijn bedoeld om verholpen te worden.
- Gebruik goede foutafhandeling
- Zorg voor een robuuste debugging door elke statement een echo mee te geven. ZO kan je precies herleiden welke route door de if-else statements je PHP-script loopt.
Bedank ik ben er achter wat het is de register die maakt het wachtwoord niet aan en daarom doet hij niks
Daarom is het bij dergelijke fouten altijd handig om te debuggen. Als het wachtwoord niet klopt is het raadzaam om beide variabelen (uit je invoerveld en uit je database) te vergelijken. Uiteraard horen beiden gehashed te zijn voor de veiligheid.
<?php
$username = $_SESSION['userid'];
$username = $_SESSION['username'];
?>


Hoi.
ik heb nu nog een vraagje voor de register hij zeg de hele tijd dit: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com, 'member', '0','February 20, 2015','b71b14c4dd03d0b41e8f20cefefe5d6d'' at line 2

dit is mijn code van die regel
mysql_query("INSERT INTO members (username,password,city,name,country,email,accounttype,emailactivated,Registerdate,code) VALUES (
'$getuser', '$password', '$getcity','$getname', 'getcountry', $getemail, 'member', '0','$date','$code'") or die(mysql_error());
Dan moet je even alles wat er in je query staat echo'en.
ja dat heb ik gedaan maar de error is er nog steeds
Ja, dat verhelpt de melding niet maar moet wel duidelijkheid geven over welke querie er nou precies wordt uitgevoerd.

Reageren