Замяна на $_SESSION с $_GET ?

karamel4o

Registered
как мога да направя тази заявка да не е $_SESSION['error'] ами $_GET['error'] ? :)
PHP:
<?php
session_start();
require ("config.php");
$username = addslashes($_POST['username']);
$password = md5(addslashes($_POST['password']));

if($_SERVER['REQUEST_METHOD'] != "POST")
{
	header('Location: index.php');
}
if(isset($_POST['submit'])) {
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
	{
		$error = "Грешно име или парола";
		$_SESSION['error'] = $error;
		?>
		<meta http-equiv="refresh" content="0; index.php">
		<?
	}
}
}
?>

PHP:
	 <?php if($_SESSION[error]) { ?>
  <table class="red" align="center">
  <tr>
  <td>
   <center><b><?php print $error; session_destroy(); ?></b>
  </td>
  </tr>
  </table>
<?php
}
?>
 
session_destroy(); унищожава всички налични сесии.

unset($_SESSION['name']); унищожава сессия със името "name".


А до твоя въпрос, ето един урок:

http://web-tourist.net/login/login/view.php?st=3418
 
Това не ми върши работа искам да направя една грешка с GET която при сгрешено потребителско име или парола да я изкарва ?
 
мм прочетох го но не схванах как трябва да се направи пробвах така :
login.php
PHP:
<?php
session_start();
require ("config.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
	{
		$_GET['error'] = "Грешно име или парола";
		?>
		<meta http-equiv="refresh" content="0; index.php?login=error">
		<?
	}
}
?>
index.php
PHP:
$error = $_GET['error'];
	 <?php if($error) { ?>
  <table class="red" align="center">
  <tr>
  <td>
   <center><b><?php print $_GET['error'];?></b>
  </td>
  </tr>
  </table>
<?php
}
?>
но не става :(
 
Не мисля че има нещо сложно във кода.
Ето обяснение за всеки ред от кода дано съм помогнал ;)

Код:
<?php
//Стартира сесията
session_start();
//Зареждаш конф файла
require ("config.php");
//Защитаваш от sql injection
$username = addslashes($_POST['username']);
//Правиш паролата md5
$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)
//Ако съвпадат създава сесия с потр. име и пренасочва към index.php
        {
                $user = mysql_fetch_assoc($q);
                $_SESSION['username'] = $user['username'];
                header("Location: index.php");
        }
//Ако потр. име или паролата не съвпадат създава GET с грешката
        else
        {
                $_GET['error'] = "Грешно име или парола";
                ?>
                <meta http-equiv="refresh" content="0; index.php?login=error">
                <?
        }
}
?>

Код:
<?php if($_SESSION[error]) { ?>
  <table class="red" align="center">
  <tr>
  <td>

   <center><b><?php print $error; session_destroy(); ?></b>
  </td>
  </tr>
  </table>
<?php
}
?>
 

Back
Горе