buongiorno a tutti,
dopo ore di ricerca su google di una possibile soluzione, non mi resta che rendervi partecipi del mio problema; sto creando un piccolo script per la pubblicazione delle news con tanto di autenticazione,
mi ritrovo però alcuni errori che non riesco a risolvere.
ho caricato con require_once lo script per controllare se è attiva o meno la sessione (check.php), il risultato è che alcune pagine es. la pagina remove.php, che serve ad eliminare la news dal db, eseguono lo script però mi rimandano alla pagina di login cancellando la sessione; tutto questo chiaramente a login effettuato e sessione creata.
vi incollo le varie pagine dello script.
index.php
Codice PHP:
<?php
session_start();
if(!isset($_SESSION['user'])){
header("Location: login.php");
} else {
// the user is logged in
// the page will go in here, e.g.
echo "<html><head><title>Benvenuto!</title></head>";
echo "<body>";
include "article.php";
echo "</body></html>";
}
?>
n.b. article.php è una pagina dove vengono visualizzate le news e vi sono 3 link, il primo alla pagina add.php uno per logout.php e un altro a remove.php (per rimuovere le news)
login.php
Codice PHP:
<?php
if(!isset($_SESSION['user'])){
?>
<form method='POST' action='checkpass.php'>
Username:
<input type='text' name='username' maxLength='8' length='16'>
Password:
<input type='password' name='password' length='16'>
<input type='submit' value='Login'>
</form>
<?php
} else {
header("Location: index.php");
}
?>
checkpass.php
Codice PHP:
<?php
session_start();
include "config/msql.php";
$_POST['username'] = addslashes($_POST['username']);
$_POST['password'] = addslashes($_POST['password']);
if (($_POST['username'] == '') || ($_POST['password'] == '')){
echo "<font color=red>[b]Inserisci nome utente e password.[/b]</font>";
include "login.php";
exit;
}
$password = md5($_POST['password']); // encrypt the password
$userrow = mysql_query("SELECT * FROM `userdb` "
. "WHERE `username` = '" . $_POST['username'] . "'"
. " AND `password` = '" . $password . "';",$mysql);
if(mysql_num_rows($userrow) != "1"){
echo "<font color='red'>[b]Wrong username or password![/b]</font>";
include "login.php";
} else {
$_SESSION['user'] = $_POST['username'];
header("Location: index.php");
}
?>
msql.php
Codice PHP:
<?php
$mysql = mysql_connect("xxx","xxx","xxx") or die ('Error connecting to mysql');
mysql_select_db("xxx",$mysql);
?>
remove.php
Codice PHP:
<?php
require_once ("config/check.php");
include 'config/config.php';
include 'config/opendb.php';
$query = "DELETE FROM news WHERE id=".$_GET['id'];
mysql_query($query) or die('Error ,query failed');
include 'config/closedb.php';
header ("Location:article.php");
echo "Rimossa!";
?>
check.php
Codice PHP:
<?php
if(!isset($_SESSION['user'])){
header("Location: login.php");
}
?>
logout.php
Codice PHP:
<?php
session_start();
session_destroy();
session_start();
header("Location: index.php");
?>