Newsgroup: it.comp.www.php
Titolo: Sti hader che....

Non riesco a capire, ho creato un sito e sul mio Pc funziona correttamente,
ma quando lo pubblico sul server mi dà il un errore.
La pagina è una pagina di login e se l'utente inserisce user e password
correttamente accedo al menu altrimenti mi dà l'errore. Invece mi dà due
errori, un è:
Warning: Cannot add header information - headers already sent by (output
started at /var/apache/www/users/user.php:2) in
/var/apache/www/users/user.php on line 45
e alla linea 45 c'è l'istruzione   Header("Location:
user.php?op=stop&message=$message");
L'altro è uguale a parte la linea che corrisponde a
setcookie("usersun",$dati,time()+15552000,"/");
Help please.
--------------------------------------
Moderatore di 
http://ww.inbisac.com

 /var/apache/www/users/user.php on line 45
ragazzi, oggi i post da FAQ VOOOLANO!!!
http://php.dopoil.com/faq.php?cantAddHeader
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/why-free.it.html

 /var/apache/www/users/user.php on line 45
Leggi qui (e' da FAQ):
La mia pagina da l'errore: Can't add header information!
http://php.dopoil.com/faq.php?cantAddHeader

 
http://php.dopoil.com/faq.php?cantAddHeader
Acc, mi hai preceduto di un minuto...

 Acc, mi hai preceduto di un minuto...
pura fortuna...
fosse così veloce ad andare sulla faq anche chi posta sti problemi!!!
:-)
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/shouldbefree.html


http://php.dopoil.com/faq.php?cantAddHeader
Forse, vista la popolarità del PHP e il numero sempre
crescente di persone che si avvicinano a questo linguaggio,
sarebbe meglio postare le FAQ ogni 2 giorni.  (invece che
ogni settimana).
-- 
WEbdOM webmaster di
Metronic.It mobile phone philosophy

Le faq le avevo già lette :D.
E ripeto che in locale funziona e sul server no.
Qui di seguito lo script :
<?
echo "<link rel=\"stylesheet\" href=\"../style/style.css\">";
include("../cookie.php");
// Login
function login($user)
{
include ("../header.php");
 ?>
  <html>
  <head>
   <title>Autenticazione</title>
  </head>
  <body>
  <form align="center" method="post" action="<?php $PHPSELF?>">
  <table border="0" width="50%" align="center">
  <tr>
  <td>UserName:  </td>
  <td><input type="text" name="user" maxlength="20" size="33"></td>
  </tr>
  <tr>
  <td>Password:  </td>
  <td><input type="password" name="pwd" maxlength="9" size="9"></td>
  </tr>
  </table>
  <input type="hidden" name="op" value="check">
  <p align="center"><input type="submit" name="invia" value="Login"></p>
  </form>
  </body>
  </html>
 <?
  return;
}
// Controllo Dati inseriti
function chekuser($user,$pwd)
{
 include("../conn.php");
    $result=mysql_query("select * from users where name='$user'") or die
(print "Non riesco ad effettuare la query".mysql_error());
 if (mysql_num_rows($result)!=1) {
  $message="Utente non presente nel databse";
  Header("Location: user.php?op=stop&message=$message");
  return;
 }
 $info=mysql_fetch_array($result);
 $dbpass=$info[pwd];
 $pwd=crypt($pwd,substr ($dbpass,0,CRYPT_SALT_LENGTH));
 if (strcmp($dbpass,$pwd)) {
  $message="Password Sbagliata";
  Header("Location:user.php?op=stop&message=$message");
  return;
 }
 docookie($info[name],$info[mail],$info[menu]);
 menu($info[name],$info[mail],$info[menu]);
return;
}
// Settaggio Cookie
function docookie($name,$mail,$menu)
{
 $dati=base64_encode("$name:$mail:$menu");
 setcookie("usersun",$dati,time()+15552000,"/");
 return;
}
// Errore
function stop($message)
{
    echo "$message";
 return;
}
// Menu Utenti
function menu($user,$mail,$usermenu)
{
 include("../header.php");
 include("../conn.php");
 $queryuser=mysql_query("select menu from users where name = '$user'") or
die (print "<b>Errore nella query menu
utente<br>".mysql_error()."</b><br>");
 list($testmenu)=mysql_fetch_row($queryuser);
 if ($testmenu==$usermenu) {
  $arrayusermenu=explode("|",$usermenu);
 } else {
  docookie($user,$mail,$testmenu);
  $arrayusermenu=explode("|",$testmenu);
 }
 $query=mysql_query("select name,link,menu from users_menu order by name")
or die (print "Non riesco ad effettuare la query".mysql_error());
 echo "<br>"
  ."<p align=\"center\">Benvenuto $user</p>"
  ."<table align=\"center\" border=\"0\" cellpadding=\"2\" width=\"100%\">"
  ."<tr>";
 while (list($name,$link,$menu)=mysql_fetch_array($query)) {
  $i++;
  if (in_array($menu,$arrayusermenu)) {
   echo "<td width=\"50%\"><font face=\"Comic Sans MS\" size=\"3\"><img
src=\"../images/freccia.gif\">&nbsp;<a
href=\"$link\">$name</a></font></p></td>";
  } else {
   echo "<td width=\"50%\"><font face=\"Comic Sans MS\" size=\"3\"
color=\"#3333CC\">&nbsp;</font></p></td>";
  }
  if ($i==2) {
   $i=0;
   echo"</tr>";
  }
 }
 echo "<tr><td colspan=\"2\" align=\"center\"style=\"border-style: solid;
border-width: 1\"></td></tr>";
 echo "<tr><td colspan=\"2\" align=\"center\"style=\"border-style: solid;
border-width: 1\"><a href=\"../index.htm\">Home Page</a></td></tr>";
 echo "<tr><td colspan=\"2\" align=\"center\"style=\"border-style: solid;
border-width: 1\"><a href=\"./logout.php\">Logout</a></td></tr>";
}
switch ($op) {
 case "menu":
  menu($user,$mail,$usermenu);
 break;
 case "ok":
  ok($user,$mail,$usermenu);
 break;
 case "check":
  chekuser($user,$pwd);
  break;
 case "stop":
  stop($message);
  break;
 default:
  login($user);
 break;
}
?>

 ogni settimana).
Sto per organizzarlo cosi':
Sa,Do,Lu,Ma,Me,Gi --> riferimenti alla FAQ e fonti indispensabili ( < 2k)
Ve -> FAQ completa (ora 14k).
in de.comp.lang.php hanno adattato quella strategia (ma il traffico e' anche
10 volte piu' grande, quando hanno fatto un cambiamento pesante alla FAQ
veniva postata 3 volte al giorno!).

 include("../cookie.php");
[cut]
allora prova così:
<?
ob_start();
echo "<link rel=\"stylesheet\" href=\"../style/style.css\">";
include("../cookie.php");
//[cut]
//e alla fine, proprio la fine dello script:
ob_end_flush();
?>
guarda se ti da ancora errore e se si, se ti cambia il numero di riga.
perché si lamenta che alla linea 2 hai fatto una echo...
se si lamenta, ma non più per la riga 2 allora è proprio da faq...
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/categories.it.html

 include("../cookie.php");
Se in locale funziona e sul server no, significa che in locale hai attivato il
buffering dell'output.
Il comportamento giusto e` che, come l'hai scritto tu, NON funzioni, perche`
mandi output testuale prima degli header.
Bye.

Ma gli header sono dentro una funzione, come output intendi l'echo anche lo
stile del foglio???

 E ripeto che in locale funziona e sul server no.
Impostazione output buffering (questo non e' da FAQ)...

Continua a lamentarsi della linea 2???? tolgo l'echo e funziona per metà!!!!

 stile del foglio???
Anche solo uno spazio prima ti darebbe errore... vedi quello che c'è qui
prima di cominciare con il <?php... ecc ecc
***miofile.php***
 <?php
header("Location: 
http://www.miosito.com
");
?>
***EOFmiofile.php***
Vedo che tu usi url relativi come argomento di Location.. non è buona
abitudine.. potrebbe darti dei problemi.

 
sono troppo d'accordo :)
-- 
------------------------------------------------------------------------
Sostieni anche tu 
www.antijuve.com
------------------------------------------------------------------------

 metà!!!!
l'ob_start l'hai messo?
prova a mettere TUTTO l'output in una variabile, senza stamparlo.
compreso l'eventuale output degli scritps che includi.
e non stampare un bel niente.
dovresti avere una pagina vuota, ma senza errori.
allora, alla fine, prova a stampare quella variabile in cui hai appeso 
tutto l'output.
se non funziona ancora ne riparliamo.
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/gnu/manifesto.it.html

 ha scritto nel
messaggio news:O25L8.1970$K4.3...@twister2.libero.it...


Ok, adesso funziona.

 Ok, adesso funziona.
a-aah!! allora ti staccava qualche carattere sull'output prima del set 
dell'header.
suma a post'.
:-)
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/gif.html

 non richiamo la funzione non dovrebbe dare errori giusto?
Potresti quotare come si deve?
La riga citata (con la css) non e' dentro una funzione.
Tu hai capito il flusso del 'tuo' programmino?


Allora una soluzione sporca... ;-)

 Allora una soluzione sporca... ;-)
la mandiamo a lavarsi la bocca col sapone!!
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/free-world.html


Ops, hai ragione, ho pubblicato lo script errato :(.

 ha scritto nel messaggio
news:WEjL8.5409$86.1...@twister1.libero.it...

E dai, non fate i cattivi :-P

 E dai, non fate i cattivi :-P
dicevo alla soluzione...
perché il flusso del programma andrebbe calcolato anche in base agli header 
da settare ed eventualmente usando le funzioni ob_* che caricano meno la 
memoria rispetto ad un buffering su variabile.
:-)
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://ethology.intercult.su.se/freescience/

 ha scritto nel messaggio
news:wUjL8.5459$86.1...@twister1.libero.it...

Ah.... scusa ma non sono ancora a quei livelli :(