PHP логин система неуспешен логин съобщение

botevis2

Registered
Код:
<?php if(isset($_SESSION['error'])) print $_SESSION['error'];?>


Това съм поставил след грешени данни за логин да изписва съобщение обаче проблема е че съобщението не се показва след натискане на "Вход" ами си седи там :(

login.php ако ще ви помогне


Код:
<?php
	session_start();
	require  'dbConfig.php';
	$username = addslashes($_POST['username']);
	$password = md5(addslashes($_POST['password']));
	
	if($_SERVER['REQUEST_METHOD'] != "POST")
	{
		header('Location: index.php');
	}
	if(isset($username) && isset($password))
	{
	
		$q = mysql_query("SELECT username,password FROM users WHERE username='$password' AND password='$password' LIMIT 1");
		if(mysql_num_rows($q) == 1)
		{
			$user = mysql_fetch_assoc($q);
			$_SESSION['username'] = $user['username'];
			header('Location: index.php');
		}
		else
		{
			$_SESSION[error] = "Грешно име или парола";
			header('Location: index.php');
		}
		
	}
?>
 
$q = mysql_query("SELECT username,password FROM users WHERE username='$password' AND password='$password' LIMIT 1");
 
Това е грешка но не оправя това което ми трябва. Съобщението за грешен логин да излиза след натискане на вход а не да седи постояно това е :)
 
Сложи една проверка дали е натиснат бутона, и чак тогава изпълнявай действието, иначе PHP скрипта просто си изпълнява кода по-надолу, и съответно подава заявката към базата данни с празни стойности, и за това ти извежда грешката, че данните не са верни!

Например, ако бутона за изпращане ти се казва submit, то в началото на кода напиши следното :

PHP:
if (isset($_POST['submit'])) {

//Извършваш действието!

}
 
Ето двата файла login и index сложи го кадето трябва че на мене ми дава грешка :(

login.php
Код:
<?php
	session_start();
	require  'dbConfig.php';
	$username = addslashes($_POST['username']);
	$password = md5(addslashes($_POST['password']));
	
	if($_SERVER['REQUEST_METHOD'] != "POST")
	{
		header('Location: index.php');
	}
	if(isset($username) && isset($password))
	{
	
		$q = mysql_query("SELECT username,password FROM users WHERE username='$username' AND password='$password' LIMIT 1");
		if(mysql_num_rows($q) == 1)
		{
			$user = mysql_fetch_assoc($q);
			$_SESSION['username'] = $user['username'];
			header('Location: index.php');
		}
		else
		{
			$_SESSION[error] = "Грешно име или парола";
			header('Location: index.php');
		}
		
	}
?>

index.php
Код:
<?php
	session_start();
	$user = $_SESSION['username'];
?>
<html>
<head>
<title>Английски футобл,резултати,класиране,прогнози</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="header">
	
	<div id="vhod">
	<?php if(isset($user))
	{
		echo "Здравей ".$user;
	}
	else
	{

	?>
		
		<?php if(isset($_SESSION['error'])) print $_SESSION['error']; ?>
	<form method="post" action="login.php">
	<input type="text" name="username"/>
	<input type="password" name="password"/>
	<input type="submit" name="submit" value="Вход"/>
	<a href="register.php">Регистрация</a> |
	<a href="search.php">Търсачка</a>
	</div>
	</form>
	
	<?php
	}
	?>
</div>
					
<div id="lastnews">
<center><h1>Новини</h1></center>
<hr />
<?php
require  'dbConfig.php';
$query = mysql_query("SELECT post_id, title FROM `posts` ORDER BY `post_id` DESC LIMIT 0,5");

while($row = mysql_fetch_array($query))
 {
	?>
 <a href="read_more.php?post=<?php echo $row['post_id'];?>"><?php echo $row['title'];?></a><br /><br />
	<?php
	
	}
	?>
	
	
	
	
	
	
	
		
	</div>
	
	</body>
</html>
 
Ето двата файла login и index сложи го кадето трябва че на мене ми дава грешка :(

login.php
Код:
<?php
	session_start();
	require  'dbConfig.php';
	$username = addslashes($_POST['username']);
	$password = md5(addslashes($_POST['password']));
	
	if($_SERVER['REQUEST_METHOD'] != "POST")
	{
		header('Location: index.php');
	}
	if(isset($username) && isset($password))
	{
	
		$q = mysql_query("SELECT username,password FROM users WHERE username='$username' AND password='$password' LIMIT 1");
		if(mysql_num_rows($q) == 1)
		{
			$user = mysql_fetch_assoc($q);
			$_SESSION['username'] = $user['username'];
			header('Location: index.php');
		}
		else
		{
			$_SESSION[error] = "Грешно име или парола";
			header('Location: index.php');
		}
		
	}
?>

index.php
Код:
<?php
	session_start();
	$user = $_SESSION['username'];
?>
<html>
<head>
<title>Английски футобл,резултати,класиране,прогнози</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="header">
	
	<div id="vhod">
	<?php if(isset($user))
	{
		echo "Здравей ".$user;
	}
	else
	{

	?>
		
		<?php if(isset($_SESSION['error'])) print $_SESSION['error']; ?>
	<form method="post" action="login.php">
	<input type="text" name="username"/>
	<input type="password" name="password"/>
	<input type="submit" name="submit" value="Вход"/>
	<a href="register.php">Регистрация</a> |
	<a href="search.php">Търсачка</a>
	</div>
	</form>
	
	<?php
	}
	?>
</div>
					
<div id="lastnews">
<center><h1>Новини</h1></center>
<hr />
<?php
require  'dbConfig.php';
$query = mysql_query("SELECT post_id, title FROM `posts` ORDER BY `post_id` DESC LIMIT 0,5");

while($row = mysql_fetch_array($query))
 {
	?>
 <a href="read_more.php?post=<?php echo $row['post_id'];?>"><?php echo $row['title'];?></a><br /><br />
	<?php
	
	}
	?>
	
	
	
	
	
	
	
		
	</div>
	
	</body>
</html>
 
Ето ти го файла login.php !

По индекса не пипай нищо!

PHP:
<?php
   session_start();
 if (isset($_POST['submit'])) {
   require  'dbConfig.php';
   $username = addslashes($_POST['username']);
   $password = md5(addslashes($_POST['password']));
   
   if($_SERVER['REQUEST_METHOD'] != "POST")
   {
      header('Location: index.php');
   }
   if(isset($username) && isset($password))
   {
   
      $q = mysql_query("SELECT username,password FROM users WHERE username='$username' AND password='$password' LIMIT 1");
      if(mysql_num_rows($q) == 1)
      {
         $user = mysql_fetch_assoc($q);
         $_SESSION['username'] = $user['username'];
         header('Location: index.php');
      }
      else
      {
         $_SESSION[error] = "Грешно име или парола";
         header('Location: index.php');
      }
      
   }

 }
?>
 

Back
Горе