ЕДИТ:
Ако може някой да премести темата където и е мястото
Здравейте.
Почвам по същество.
3 максимално опростени файла:
index.php
login.php
logout.php
Ето го и session.php
Ето го и проблема:
Отварям index.php, session е 0 и ме прехвърля към login.php. До тук добре, влизам с името и паролата - и тук добре, пренасочва ме вече към index.php където идва и проблема. Сега трябва session да е 1 и да ми разпечата на екрана "success!", но проклетията ме редиректва отново към login.php т.ест session все още е 0! :!:
П.П
Всички скриптове се парсират и няма грешка при предаването на хедърите.
Ако може някой да премести темата където и е мястото
![Oops! :oops: :oops:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f633.png)
Здравейте.
Почвам по същество.
3 максимално опростени файла:
index.php
Код:
<?php
include('session.php');
if($logged_in == 1) {
echo "success!";
} else {
header('Location: login.php');
}
?>
login.php
Код:
<?php
// database connect script.
require 'db_connect.php';
if($logged_in == 1) {
die('already logged in, <strong>'.$_SESSION['username'].'</strong>.<br />to continue <a href=\'index.php\' target=\'_self\'>click here</a>.');
}
?>
<?php
if (isset($_POST['submit'])) {
if(!$_POST['uname'] | !$_POST['passwd']) {
die('Incorrect username or password!');
}
if (!get_magic_quotes_gpc()) {
$_POST['uname'] = addslashes($_POST['uname']);
}
$check = $db_object->query("SELECT username, password FROM users WHERE username = '".$_POST['uname']."'");
if (DB::isError($check) || $check->numRows() == 0) {
die('Incorrect username!');
}
$info = $check->fetchRow();
$_POST['passwd'] = stripslashes($_POST['passwd']);
$info['password'] = stripslashes($info['password']);
$_POST['passwd'] = md5($_POST['passwd']);
if ($_POST['passwd'] != $info['password']) {
die('Incorrect password!');
}
$db_object->disconnect();
header('Location: index.php');
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
username:<br />
<input name="uname" type="text" class="login_field" /><br />
password:<br />
<input name="passwd" type="password" class="login_field" /><br />
<input name="submit" type="submit" class="bulletin_button" value="enter" /><br />
</form><br />
<?php
}
?>
logout.php
Код:
<?php
require 'db_connect.php'; // database connect script.
if ($logged_in == 0) {
die('You can not logout as you have not logged in in first place!');
}
unset($_SESSION['username']);
unset($_SESSION['password']);
// kill session variables
$_SESSION = array(); // reset session array
session_destroy(); // destroy session.
header('Location: index.php');
// redirect them to anywhere you like.
?>
Ето го и session.php
Код:
<?php
session_start();
if (!isset($_SESSION['username']) || !isset($_SESSION['password'])) { header("Location:index.php"); }
?>
Ето го и проблема:
Отварям index.php, session е 0 и ме прехвърля към login.php. До тук добре, влизам с името и паролата - и тук добре, пренасочва ме вече към index.php където идва и проблема. Сега трябва session да е 1 и да ми разпечата на екрана "success!", но проклетията ме редиректва отново към login.php т.ест session все още е 0! :!:
П.П
Всички скриптове се парсират и няма грешка при предаването на хедърите.