- Home
- Categorie
- Coding e Sistemistica
- Coding
- errore sessione
-
errore sessione
Ciao a tutti, finalmente ho acquistato il dominio e ho caricato tutto sul server.
Però mi da quest'errore quando apro una qualsiasi pagina:[PHP]Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u14d2c2z/domains/tapsosnuoto.it/public_html/admin/head.inc.php:21) in /home/u14d2c2z/domains/tapsosnuoto.it/public_html/admin/config.php on line 2
[/PHP]e la linea 2 di config.php è questa:
[PHP]
session_start();
[/PHP]ke faccio?
Ciau
-
Non ci deve essere nessun output prima di session_start()
Controlla che prima dell'apertura del php (<?php) non ci siano righe, anche vuote.
-
non ce ne sono...questo contiene quella pagina:
[PHP]
<?php
session_start();
$connection = mysql_connect( 'host', 'nome_utente', 'password') or die('Could not connect to server.' );
mysql_select_db('nome_database', $connection) or die('Could not select database.');
?>
[/PHP]
-
ma a che ti serve il session_start(); nel config.php??
-
dove dovrei metterlo?
-
se il tuo config.php è proprio quello di sopra la sessione in quella pagina non ti serve proprio....almeno mi pare.....non ne vedo l'utilità
-
siccome viene richiamato anche da una pagina ke fa il login....
che mi consigli?
lo metto nella pagina del login?
-
@talkoman said:
siccome viene richiamato anche da una pagina ke fa il login....
che mi consigli?
lo metto nella pagina del login?
ovvio che si XDma oltre al session_start, nella pagina di login devi definire anche cosa dovrà portarsi appresso la sessione, ovvero rob del tipo:
[php]
//** tiri fuori i dati dal Db che ti includi in un array e quindi fai partire la sessione. Consigliabile unsettarla e distruggerla, per poi riaprirla */
session_start();
session_unset();
session_destroy();
session_start();
$_SESSION["id_user"]=$array["id_user"];
$_SESSION["nick"]=$array["nick"];
$_SESSION["email"]=$array["email"];
.......
......
....
[/php]
da quì in poi ti potrai richiamare i dati di sessione mettendo ad inizio pagina, immediatamente dopo il <? (e prima NON deve esserci nulla):
[php]session_start();
$nick=$_SESSION['nick'];
....
..
..[/php]
-
io ce l'ho così:
[PHP]
//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
$query = mysql_query("SELECT user_username FROM admin_users WHERE user_username = '".$_POST['usrname']."' AND user_passwd = '".md5($_POST['password'])."'");
$var=mysql_num_rows($query);
//se esiste l'account registra la sessione
if($var==1)
{
//metto l'username nella variabile di sessione "username"
$_SESSION['username'] = $_POST['usrname'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "index.php"
</script>";
}
[/PHP]
-
[php]
//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
$query = mysql_query("SELECT user_username FROM admin_users WHERE user_username = '".$_POST['usrname']."' AND user_passwd = '".md5($_POST['password'])."'");
$var=mysql_num_rows($query);
//se esiste l'account registra la sessione
if($var==1)
{
session_start();
session_unset();
session_destroy();
session_start();
//metto l'username nella variabile di sessione "username"
$_SESSION['username'] = $_POST['usrname'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "index.php"
</script>";
}
[/php]devi aprire la sessione prima di assegnare il valore
-
[PHP]<?php
//includo il file di Configurazione con session_start()) dentro
include ("config.php");
//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
$query = mysql_query("SELECT user_username FROM admin_users WHERE user_username = '".$_POST['usrname']."' AND user_passwd = '".md5($_POST['password'])."'");
$var=mysql_num_rows($query);
//se esiste l'account registra la sessione
if($var==1){
session_start();
session_unset();
session_destroy();
session_start();
//metto l'username nella variabile di sessione "username"
$_SESSION['username'] = $_POST['usrname'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "index.php"
</script>";
}
else
{
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "login.php"
</script>";
}
?>[/PHP]non mi effettua il login...mi torna sulla pagina login.php
-
@talkoman said:
non mi effettua il login...mi torna sulla pagina login.php
per come è il codice significa che if($var==1)restituisce FALSE.....
-
allora è strutturato così
pagina: login.php[PHP]<form action="verifica.php" method="post" enctype="application/x-www-form-urlencoded" name="login">
<br/>
<table border="0">
<tr>
<td><div align="right">UserName</div></td>
<td><input type="text" name="usrname"></td>
</tr>
<tr>
<td><div align="right">Password</div></td>
<td><input type="password" name="password"></td>
</tr>
</table>
<input type="submit" value="Entra!" name="post"></form>[/PHP]verifica ke è quella di sopra....
-
[PHP]include ("config.php");
$username=$_POST['usrname'];
$psw=$_POST['password'];
$pswmd5=md5($psw);
$sql= "SELECT user_username FROM admin_users WHERE user_username='".$username."' AND user_passwd='".$pswmd5."'";$query = mysql_query($sql) or die (mysql_error());
$var=mysql_num_rows($query);
.....
[/PHP]prova così, eventualmente fatti un echo di $var per vedere che tira fuori
-
allora ho fatto delle prove ho fatto così la pag verifica.php:
[PHP]if($var==1){
session_start();
session_unset();
session_destroy();
session_start();
//metto l'username nella variabile di sessione "username"
$_SESSION['username'] = $_POST['usrname'];
//Faccio il redirect nella pagine enter.php
echo "SI";
/echo "<script>
window.location = "index.php"
</script>";/
}
else
{
//Faccio il redirect nella pagine enter.php
echo "NO";
/echo "<script>
window.location = "login.php"
</script>";/
}[/PHP]
e mi stampa si, quindi si redirecta su index.php
ma index.php è così:
[PHP]<?php
include ("head.inc.php");
include ("foot.inc.php");
//includo il file di Configurazione con session_start()) dentro
include ("config.php");
//se esiste la variabile $_SESSION['username'] è loggato
if(!isset($_SESSION['username'])){
echo "<script>
window.location = "login.php"
</script>";
}
?>[/PHP]
quindi può essere ke non si prende il session e ritorna su login....
come faccio??
-
[php]
if(!isset($_SESSION['username'])){
echo "<script>
window.location = "login.php"
</script>";
}
[/php]normale che non ti funge XD
prima di richiamare una variabile di sessione devi aprire la sessione XD[php]session_start();
if(!isset($_SESSION['username'])){
echo "<script>
window.location = "login.php"
</script>";
}
[/php]
-
per questo era nel config.php....
-
comunque mi da lo stesso problema originario:
[PHP]Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u14d2c2z/domains/tapsosnuoto.it/public_html/admin/head.inc.php:21) in /home/u14d2c2z/domains/tapsosnuoto.it/public_html/admin/index.php on line 7[/PHP]
-
session_start() va messo subito dopo <?, e prima che esca il session_start() del config.php hai già l'header ed il footer, ovvero, la stringa di prima la devi mettere prima dell'header e del footer.....mi pare che era già scritto...o sbaglio?
-
grazie funziona!!....devo semplicemente sistemarlo in tutte le pagine:D