Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 16-03-10, 22:49   #1 (permalink)
 
Data di registrazione: Apr 2009
Messaggi: 206
Problema con le sessioni e redirect utente loggato

Ciao a tutti ho un problema con un area di amministrazione di un sito, ho creato la pagina con il form x il login una pagina di controllo dei dati inviati dal form che per verificare le credenziali, il login va a buon fine ma non mi fà il redirect alla pagina admin.php che è quella contenente il menu dell pannello di admin.

Codice della pagina login_admin.php

Codice:
<?php
session_start();
include "../config/connessione.php";

//controliamo l'invio dei dati
if ((isset($_GET["login_admin.php"])) && ($_GET["login_admin.php"]== "login")){
if (!$_POST["username"] || !$_POST["password"])
{
die("<p align= \"center\">Devi inserire sia username che password.</p>
<p align= \"center\"><a href=\"index.php\">Riprova a loggarti</a></p>");
}
$username = $_POST["username"];
$password =  sha1($_POST["password"]);

//query d'estrazione dei dati di login
$query = "SELECT * FROM $tabella_adm_login WHERE adm_username = '$username' AND adm_password = '$password'";
$result =  mysql_query($query) or die (mysql_error());
if ($obj = mysql_fetch_object($result))

{
    //crea la sessione
    $_SESSION["valid_user"] = $_POST["username"];
    $_SESSION["valid_pass"] = $_POST["password"];
    $_SESSION["valid_time"] =  time();
    //sessione creata. vai alla pagina di gestione delle sito
    header("Location: admin.php");
}
else
{

    // Messaggio di errore
die("<p align= \"center\">Impossibile accedere all'area riservata. Username o password errati.</p>
    <p align= \"center\"><a href=\"index.php\">Riprova a loggarti</a></p>");
}
}
?>
file session.php (che prottegge le pagine per la gestione del sito)

Codice:
     <?
session_start();

//controllo delle sessioni
if ((!isset($_SESSION["valid_user"]))||(!isset($_SESSION["valid_pass"]))||(!isset($_SESSION["valid_time"])))
{

//redirect verso la pagina di login
header("Location: index.php");
}
?>
__________________
Ultimi lavori: - www.idaditratti.it -www.euphorictribe.com
gabriele1986 non in linea   Rispondi citando
Vecchio 17-03-10, 00:56   #2 (permalink)
User
 
L'avatar di giovandres90
 
Data di registrazione: Dec 2008
Messaggi: 83
Ciao gabriele1986 se non ti fa il redirect come fai a sapere che sei logato?. Ti da qualche errore?
__________________
Realizzo script php-Mysql- creazione siti web
giovandres90 non in linea   Rispondi citando
Vecchio 18-03-10, 22:34   #3 (permalink)
 
Data di registrazione: Apr 2009
Messaggi: 206
Non mi da nessun errore e le credenziali di accesso sono corrette
__________________
Ultimi lavori: - www.idaditratti.it -www.euphorictribe.com
gabriele1986 non in linea   Rispondi citando
Vecchio 18-03-10, 23:28   #4 (permalink)
User
 
L'avatar di giovandres90
 
Data di registrazione: Dec 2008
Messaggi: 83
E' impossibile che non ti da errore se ti se ti crea le variabili di sessione ti deve fare il redirect gia che si trova netro il IF, oppure hai disabilitato la visualisazione di errori!.
__________________
Realizzo script php-Mysql- creazione siti web
giovandres90 non in linea   Rispondi citando
Vecchio 19-03-10, 12:25   #5 (permalink)
 
Data di registrazione: Apr 2009
Messaggi: 206
Gli errori sono abilitati sul server

Questo è lo script original su cui si basa lo schema del log-in

Codice:
   <? 
session_start(); 
@include "../config/config.php"; 

//controliamo l'invio dei dati 
if ((isset($_GET["op"])) && ($_GET["op"]== "login")){ 
if (!$_POST["username"] || !$_POST["password"]) 
{ 
die("<p align= \"center\">Devi inserire sia username che password.</p> 
<p align= \"center\"><a href=\"index.php\">Riprova a loggarti</a></p>"); 
} 
$username = $_POST["username"]; 
$password =  sha1($_POST["password"]); 

//query d'estrazione dei dati di login 
$query = "SELECT * FROM $tabella_admin WHERE adm_username = '$username' AND adm_password = '$password'"; 
$result = @mysql_query($query) or die (mysql_error());
if ($obj = @mysql_fetch_object($result))
{
//crea la sessione
$_SESSION["valid_user"] = $_POST["username"];
$_SESSION["valid_pass"] = $_POST["password"];
$_SESSION["valid_time"] =  time();
//sessione creata. vai alla pagina di gestione delle news
header("Location: adm_news.php");
}
else
{

// Messaggio di errore
die("<p align= \"center\">Impossibile accedere all'area riservata. Username o password errati.</p>
<p align= \"center\"><a href=\"index.php\">Riprova a loggarti</a></p>");
}
}
else
{
?>

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login Admin</title>
<meta  http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../css/website.css">
</head>
<body>
<table width="500" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">
<tr> 
<td bgcolor="#FFCC33"> 
<table width="100%" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000">
<tr> 
<td width="70%"> 
<?  echo "<form action=\"?op=login\""; ?> method="post" name="login_form"">
<table width="100%" border="1" cellpadding="3" cellspacing="0" bordercolor="#000000">
<tr bgcolor="#cccccc"> 
<td width="15%" align="center"><h1>Login Admin</h1></td>
</tr>
<tr> 
<td align="center"> <table width="250" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td width="100"><h2>username:</h2></td>
<td width="150"><input type="text" name="username"></td>
</tr>
</table></td>
</tr>
<tr> 
<td align="center"><table width="250" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td width="100"><h2>password:</h2></td>
<td width="150"><input type="password" name="password"></td>
</tr>
</table></td>
</tr>
<tr> 
<td align="center"><table width="160" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td align="right"><input type="submit" name="submit" value="login"></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
<?
}
?>
è funziona senza problemi ma a me non piace perchè preferisco avere 2 file distinti uno con il for e l'altro con solo php che esegue i controlli sui dati inviati
__________________
Ultimi lavori: - www.idaditratti.it -www.euphorictribe.com

Ultima modifica di gabriele1986 : 19-03-10 13:03.
gabriele1986 non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:26.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.