- Home
- Categorie
- Coding e Sistemistica
- Coding
- Warning: Cannot modify header information
- 
							
							
							
							
							
Warning: Cannot modify header informationciao a tutti, 
 accantonando l'idea dei cookies e passando alle sessioni...ho avuto qualche problemino con l'header per rinviare, non appena loggati correttamente alla pagina index.php.
 infatti il seguente codice mi restituisce:
 Warning: Cannot modify header information - headers already sent by (output started at /home/bello/public_html/sessioni/log-in.php:21) in /home/bello/public_html/sessioni/log-in.php on line 26sapreste dirmi qual'è il problema?? vi do la parte di codice in questione.... if ($_SESSION['verified_user'] != "") { 
 header("location:index.php"); <----RIGO 26-----
 } else {
 if ($_REQUEST['action'] == "login" && $_SESSION['verified_user'] == '') {
 echo"<font color="red">Login error!</font><br><br>";
 }
 
- 
							
							
							
							
							
Dovresti inserire anche la parte di codice che precedere la funzione header. 
 Solitamente accade quando a video è stato visualizzato qualcosa.
 Hai fatto prima qualche echo?Nené 
 
- 
							
							
							
							
							
ciao! <? session start(); ?> 
 deve essere la primissima cosa che c'è nel codice all'inizio della pagina
 anche uno spazio può farti incappare i quel problema.
 
- 
							
							
							
							
							
questo è quello che ho all'inizio della pagina... 
 <?php
 session_start();
 dbconnect();if ($_REQUEST['action'] == "login") { 
 $_SESSION['verified_user'] = "";
 $result = mysql_query("SELECT * FROM users WHERE username='".$_REQUEST['username']."' AND password='".$_REQUEST['psw']."'");
 if (mysql_num_rows($result) > 0) list($_SESSION['verified_user']) = mysql_fetch_row($result);
 }?> e alla fine i dati di conn <?php 
 }
 function dbconnect() {
 mysql_connect("localhost", "user", "pass");
 @mysql_select_db("nomedb") or die ("Unable to select database");
 }
 ?>
 
- 
							
							
							
							
							
@shira said: questo è quello che ho all'inizio della pagina... 
 <?php
 session_start();
 dbconnect();if ($_REQUEST['action'] == "login") { 
 $_SESSION['verified_user'] = "";
 $result = mysql_query("SELECT * FROM users WHERE username='".$_REQUEST['username']."' AND password='".$_REQUEST['psw']."'");
 if (mysql_num_rows($result) > 0) list($_SESSION['verified_user']) = mysql_fetch_row($result);
 }?> e alla fine i dati di conn <?php 
 }
 function dbconnect() {
 mysql_connect("localhost", "user", "pass");
 @mysql_select_db("nomedb") or die ("Unable to select database");
 }
 ?>hai un parentesi di troppo, a parte questo non mi dà errore! 
 
- 
							
							
							
							
							
@ramon said: hai un parentesi di troppo, a parte questo non mi dà errore! Se monti tutto il codice che ti ha dato, la parentesi non è di troppo. 
 L'unica cosa che potrebbe stampare qualcosa a video è dbconnect(); che ha un "or die". Prova a togliere la chiocciolina davanti a mysql_select_db, e magari dovresti vedere nell'html sorgente generato dalla pagina se c'è anche solo uno spazio prima dell'errore. Casomai postaci il link.Nené 
 
- 
							
							
							
							
							
Il problema è che non puoi usare session_start e poi header. 
 
- 
							
							
							
							
							
finalmente un forum dove non si viene abbandonati a se stessi!! 
 grazie!!
 ritornando al problema....penso che la soluzione di senamion sia giusta, infatti togliendo l'header e mettendo questo redirect<meta http-equiv="refresh" content="1;url=pa3.php"> vengo reindirizzato dopo il login a questa pagina, ma non a quella dell'id_utente corrispondente alla USER. 
 Ho provato ad inserire dopo il .php questo codice?id_utente=<?=$rigo['id_utente']?> ma non va!! soluzioni? 
 
- 
							
							
							
							
							
 
- 
							
							
							
							
							
Devi mettere un valore devi fare un echo in php, in pratica devi fare così: ?id_utente=<? echo $rigo['id_utente']; ?>
 
- 
							
							
							
							
							Il problema è che non puoi usare session_start e poi header. 
 E perché mai?Puoi, stando attento a non far stampare nulla in mezzo. 
 O senza troppe rotture usando le gz_* 
 
- 
							
							
							
							
							
In realtà ho semplificato, ma se guardi i commenti della funzione header php (http://it2.php.net/manual/it/function.header.php) scopri che può avere problemi con la cache. Se si vuole usare session_start() e header() bisogna fare attenzione. 
 
- 
							
							
							
							
							
sto impazzendo!!! 
 premesso che ho deciso di non utilizzare il metodo header, ma METa....
 compongo il codice che vi ho descritto:if ($_SESSION['verified_user'] != "") { 
 echo "<meta http-equiv="refresh" content="1;url=pa3.php?id_utente=">";adesso...mi porta alla pagina pa3.php?id_utente= correttamente. ovviamente ho inserito il codice di seniamon dopo l'uguale <? echo $rigo['id_utente']; ?> ma la linea mi da errore!!! io il rigo lo richiamo con if ($_REQUEST['action'] == "login") { 
 $_SESSION['verified_user'] = "";
 $result = mysql_query("SELECT * FROM users WHERE username='".$_REQUEST['username']."' AND password='".$_REQUEST['psw']."'");$rigo=mysql_fetch_array($result); if (mysql_num_rows($result) > 0) list($_SESSION['verified_user']) = mysql_fetch_row($result); 
 }MA SARA' GIUSTO??? 
 
