Warning su redirect della pagina

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

ho un problema piuttosto fastidioso sul redirect ad una pagina dopo l'esecuzione di un insert MySQL/PHP. Questo è lo script incriminato:

PHP:
<?php
mysql_query ("INSERT INTO utenti_accesso (id, id_utenti_profilo, user, password, nominativo, flag_stato)
                VALUES ('NULL', '".$_POST["profilo"]."', '".$_POST["user"]."',SHA1('".$_POST["password"]."'),
                        '".$_POST["nome"]."', '0')");
header("LOCATION: ./administrator.php?function=utenti");
?>

come noterete una volta eseguita la query deve fare il redirect su administrator.php richiamando la variabile function=utenti. Nella pagina administrator ho questa porzione di codice:

PHP:
<?php 
            switch ($_GET["function"]) 
            {
              case 'utenti':
                require("./script/utenti/elenco.php");
              break;
              
              case 'adduser':
                require("./script/utenti/add.php");
              break;
              
              case 'saveuser':
                require("./script/utenti/save.php");
              break;                          
            }
           ?>

che mi dovrebbe fare il require di elenco.php. Purtroppo però il codice in oggetto mi da questo errore:

Codice:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/CinteTesino/admin/administrator.php:13) in /var/www/CinteTesino/admin/script/utenti/save.php on line 5

Chi mi sa spiegare come risolvere il problema?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
c'è dell'output html prima di header (guarda che potrebbe essere anche un semplice spazio messo prima del tag php).
puo provare a risolvere aggiungendo

PHP:
<?php
ob_start();//alla prima riga della pagina
//...................
mysql_query ("INSERT INTO utenti_accesso (id, id_utenti_profilo, user, password, nominativo, flag_stato)
                VALUES ('NULL', '".$_POST["profilo"]."', '".$_POST["user"]."',SHA1('".$_POST["password"]."'),
                        '".$_POST["nome"]."', '0')");
header("LOCATION: ./administrator.php?function=utenti");
exit(); //metti l'exit dopo i redirect
//................
ob_end_flush();//all'ultima
?>
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao e grazie per la risposta. Purtroppo il warning rimane anche dopo la tua modifica. Adesso lo script è così:

PHP:
<?php
ob_start();
mysql_query ("INSERT INTO utenti_accesso (id, id_utenti_profilo, user, password, nominativo, flag_stato)
                VALUES ('NULL', '".$_POST["profilo"]."', '".$_POST["user"]."',SHA1('".$_POST["password"]."'),
                        '".$_POST["nome"]."', '0')");
header("LOCATION: ./administrator.php?function=utenti");
exit();
ob_end_flush();
?>

cos'altro posso provare?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Non mi torna, come ti ha detto borgo la cosa piu probabile è che ci sia dell'output prima, posta il codice completo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
strano dovrebbe funziare, l'ob_start modifica il flusso.
se proprio non funzia, non è molto elegante e si vede con visualizza sorgente se uno fa in tempo a bloccare la pagina, ma potresti ricorre al tag meta
PHP:
<?php
mysql_query ("INSERT INTO utenti_accesso (id, id_utenti_profilo, user, password, nominativo, flag_stato)
                VALUES ('NULL', '".$_POST["profilo"]."', '".$_POST["user"]."',SHA1('".$_POST["password"]."'),
                        '".$_POST["nome"]."', '0')");
echo "<meta http-equiv='Refresh' content='0; URL=./administrator.php?function=utenti'>";
exit();
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Non mi torna, come ti ha detto borgo la cosa piu probabile è che ci sia dell'output prima, posta il codice completo
ma con l'ob_start dovrebbe funziare (ho degli script in cui lo uso e dove ho proprio del vero html) es.
PHP:
<?php
ob_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<!-- eccetera eccetera.... -->
<?php
//.....
header("LOCATION: pinco_pallo.php");
exit();
?>
</body>
</html>
<?php
ob_end_flush(); 
?>
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
ciaoma con l'ob_start dovrebbe funziare (ho degli script in cui lo uso e dove ho proprio del vero html) es.
PHP:
<?php
ob_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<!-- eccetera eccetera.... -->
<?php
//.....
header("LOCATION: pinco_pallo.php");
exit();
?>
</body>
</html>
<?php
ob_end_flush(); 
?>
Potrebbe esserci dell'output prima essendo inclusa la pagina
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Non ho capito perchè, però dopo qualche minuto si è messo a funzionare.... misteri del PHP. Grazie a tutti!
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
dopo aver aggiunto

PHP:
ob_start();
e


PHP:
ob_end_flush();

ho semplicemente svuotato la cache e si è messo ad andare. Secondo me nei vari esperimenti mi è rimasto dentro qualcosa che dava fastidio... cosa non si sa
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [MySQL] Warning 1265 data truncated for column... MySQL 5
B Warning: mysql_connect(): Access denied for user 'DIREZIONE'@'81.88.55.179' (using password: YES) PHP 6
G [PHP] Warning: Cannot modify header information - headers already sent by PHP 3
G [PHP] Problema - Warning: session_start() [function.session-start] PHP 9
G Warning: mysql_num_rows() che problema è? PHP 3
P Warning: mysqli_query() expects parameter 1 to be mysqli PHP 2
C ERRORE: Warning: move_uploaded_file()... come risolverlo? PHP 1
JackIlPazzo Warning: Invalid argument supplied for foreach() PHP 1
N warning su sessione PHP 2
F Warning: Invalid argument supplied for foreach() PHP 3
A Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given PHP 17
L Problema messaggio d'errore -Warning: mysqli_num_rows() expects parameter 1 to be mysqli_ etc etc... PHP 2
pup3770 Su Mac funziona - su windows da warning PHP 9
E Warning: session_start() PHP 1
P Warning: mysql_num_rows() expects parameter 1 to be resource, array given in PHP 9
A Warning: mysql_result() expects parameter 1 to be resource, boolean given MySQL 2
I Warning: Division by zero in Joomla 0
S Help : Warning: mail() [function.mail] PHP 2
H Warning: Cannot modify header information... PHP 6
P Warning email() PHP 116
catellostefano CLASSE PHP Warning: mysql_fetch_assoc() expects parameter 1 to be resource PHP 2
Frank10 Problema w3c warning HTML5 -.-" HTML e CSS 5
M Warning: mysql_query() expects parameter 2 to be resource, boolean given PHP 3
S Warning sulle sessioni, come fare? PHP 1
catellostefano Problema per richiamare file xml -- Warning: DOMDocument::load() [domdocument.load]: PHP 0
L Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in .... PHP 2
L Warning: Cannot modify header information - headers already sent by... PHP 9
H Warning: session_start() [function.session-start]: Cannot send session cache limiter PHP 8
S errore warning mysql_ferch_array() e mysql_free_result() PHP 5
A Warning strano PHP 2
JellyBelly Warning Uso Rename PHP 2
M Warning: session_start(): Cannot send session cache... ???? PHP 5
W Warning: main(./WEB-INF/etc/config.php): PHP 3
M Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in PHP 6
M Warning: Cannot modify header information - headers already sent by (output started a PHP 1
C problema con un warning PHP 0
A Redirect 301 genera url statico con variabili Web Server 0
M Redirect a sottodominio Javascript 2
S Redirect 301 SEO Domini 2
L redirect url PHP 0
T Risolto Redirect a pagina esterna Javascript 2
M Risolto Effettuare un redirect tramite DNS (Era: DNS Redirect) Domini 1
Cosina htaccess redirect 301 senza estensione html Web Server 6
motleyrulez Chiamata Rest Api durante Redirect PHP 1
M [WordPress] Redirect 301 WordPress 2
felino htaccess: redirect da una subdirectory alla root Web Server 2
A [PHP] redirect htaccess PHP 5
D [Apache] Regola redirect e catena di path Apache 0
M [PHP] Modi per fare redirect 301 da http a https PHP 12
felino [Htaccess] Redirect per url non esistente Apache 1

Discussioni simili