Non so perchè non funziona , ho fatto tutto giusto chi mi aiuta ;(
Area login
Codice PHP:
<form action="login.php" method="post">
<div class="login_campo">
Username:
<input type="text" class="campo" name="username" />
</div>
<div class="login_campo">
Password:
<input type="password" class="campo" name="password" />
</div>
<div class="login_campo">
<input type="submit" name="invia" value="Accedi">
</div>
</form>
login.php
Codice PHP:
<?php
require ("db_connect.php");
$error=false;
if(isset($_POST['invia'])){
//recupero i dati dell'utente, se esiste
$q="select * from user where username='".pulisci($_POST['username'])."' and password='".md5(pulisci($_POST['password']))."'";
$query=mysql_query($q, $db);
//se i dati inviati al form corrispondono a un utente, allora mi loggo, creo il cookie di sessione e vado a index.php
if(mysql_num_rows($query)>0){
$row=mysql_fetch_array($query);
//immagazzinano le informazioni dell'utente in un array
$var_session["id"]=$row["id"];
$var_session["username"]=$row["username"];
$var_session["password"]=$row["password"];
//setto la durata del cookies a una settimana
$time_cookie=3600*24*7;
setcookie("session", $var_session["username"].'_&&_'.$var_session["password"], time()+$time_cookie);
//vado a login2.php
header("location: login2.php");
//nessuna corrispondenza con gli utenti: non mi loggo e ritorno al form
}else
$error=true;
}
function pulisci($login){
$login=str_replace(";","",$login);
$login=str_replace(":","",$login);
$login=str_replace(",","",$login);
$login=str_replace("'","",$login);
$login=str_replace("*","",$login);
$login=str_replace("?","",$login);
$login=str_replace("=","",$login);
$login=str_replace("&","",$login);
$login=str_replace("%","",$login);
$login=str_replace("$","",$login);
$login=str_replace("<","",$login);
$login=str_replace(">","",$login);
$login=str_replace("#","",$login);
return $login;
}
//funzione per il controllo dei cookies
function controllo_cookie(){
global $db, $var_session;
if(isset($_COOKIE['session'])){
//prendo username e md5(password) presente nel cookie
$tmp=split("_&&_", $_COOKIE['session']);
if(count($tmp)!=2)
return false;
//confronto username e password del cookie con il database
$query=mysql_query("select * from user where username='".$tmp[0]."' and password='".$tmp[1]."'", $db);
if(mysql_num_rows($query)>0){
$row=mysql_fetch_array($query);
//immagazzinano le informazioni dell'utente in un array
$var_session["id"]=$row["id"];
$var_session["username"]=$row["username"];
$var_session["password"]=$row["password"];
return true;
}else
return false;
}else
return false;
}
?>
Tabella User
Codice PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- [url]http://www.phpmyadmin.net[/url]
--
-- Host: localhost
-- Generato il: 05 ago, 2011 at 03:55 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `sicilia`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `user`
--
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`nome` varchar(255) NOT NULL,
`cognome` text NOT NULL,
`email` text NOT NULL,
`insegna` text NOT NULL,
`tipologia` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Dump dei dati per la tabella `user`
--
INSERT INTO `user` (`id`, `username`, `password`, `nome`, `cognome`, `email`, `insegna`, `tipologia`) VALUES
(6, 'pippo', 'pluto2', 'lslsgjsdlg', 'kljaskfjaskl', 'fklajfkashfklashklf', 'nkldsfkldflkdsh', 'n<sskdhaslkhdklsa');
Pagina di prova
Codice PHP:
if(!controllo_cookie()){
header("location: login.php");
}else{
//codice da mostrare
}
Qualcuno mi sa dire perchè non va' nella pagina login2.php