Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11

  2. #12
    quindi non dovrei mettere nessun output nel mio codice php se sono presenti cookie o header? Com'è possibile?

    Mi dispiace inserire il codice php e farti fare un'immensa fatica ma credo di non riuscire a capire da solo come cambiarlo anche se me lo spiegassi di nuovo.
    Codice PHP:
    <?php
      
    if ($_COOKIE["logGDR"] && $ex !=1){
         
    $username $_COOKIE["logGDR"];
         
    $connession true;
      }
      if(isset(
    $_GET['ex'])) $ex $_GET['ex'];
      else 
    $ex 0;
      if(
    $ex == 1) { setcookie("logGDR","",time()-100); $ex 0; }
    ?>
    //qui manca la parte di html che ho tagliato
    <?php
      
    if($connession == true){
         echo(
    "[b]Sei connesso $username !!![/b]");
         echo(
    "
    [url='login.php?ex=1']logout[/url]"
    );
      }
      else {
    ?>
    //se sei connesso ti dice "sei connesso" altrimenti di visualizza il form per connetterti
    //che ho tagliato e dopo il form c'è dinuovo la parte di php
    <?php
      
    include("mysql.php");
      include(
    "funzioni.php");
      if(isset(
    $_POST['username'])) $username $_POST['username'];
      if(isset(
    $_POST['passw'])) $password $_POST['passw'];
      if(isset(
    $_POST['username'])&&isset($_POST['passw'])){
          
    $query="SELECT * FROM `utente` WHERE `username` = '$username' AND `password` = '$password'";
          
    $result mysql_query($query,$db);
          if (!
    $result) echo "Fallimento nell'esecuzione della query ($sql) dal DB: " mysql_error();
          
    $autorizzato mysql_num_rows($result);
          if(
    $autorizzato==1){
              while (
    $row mysql_fetch_array($result)){ 
         if(
    $row["conferma"]==1){
              
    ob_start();
              
    $connession true;
              echo(
    "Login avvenuto correttamente.");
              if(
    $_POST['memory']=="ricorda"setcookie ("logGDR",$username,time()+3600);
              else  
    setcookie ("logGDR",$username);                          $corrente $_SERVER['PHP_SELF'];
              
    header("location: $corrente");
              
    ob_end_flush();
        }
           else echo 
    "L'iscrizione non è stata ancora confermata!!!";
        }
      }
      elseif ((
    $username != null)&&($password != null)) echo "Username e\o Password errati!!!";
      if(
    $username == null) echo "Non hai inserito l'username 
    "
    ;
      if(
    $password == null) echo "Non hai inserito la password 
    "
    ;
    }
    ?>
    // questa parentesi graffa qua sotto chiude quella aperta nel else per il form
    <?php
        
    }
    ?>

  3. #13
    Originariamente inviato da Draxent
    quindi non dovrei mettere nessun output nel mio codice php se sono presenti cookie o header? Com'è possibile?
    Rileggi di nuovo l'articolo indicato con più attenzione questa volta.

  4. #14
    Gli header sono elementi necessari al corretto funzionamento di ogni applicazione web. In PHP vi sono varie funzioni che permettono di manipolare gli header:
    header() session_start() setcookie() setrawcookie()
    In condizioni normali, se una di queste funzioni viene richiamata dopo che sono stati inviati dei dati al buffer d’uscita (es. tramite echo()/print() oppure con del codice HTML all’esterno dei tag PHP) verrà sollevato un Warning: Cannot modify header information - headers already sent ...
    Il motivo di questo warning è che PHP non può inviare degli header dopo che è iniziato l’invio dei dati. [...]
    Esistono principalmente due modi per evitare il sollevamento di questo warning:
    richiamare le funzioni che manipolano gli header prima dell’invio dei dati, oppure spostare l’invio dei dati al buffer d’uscita dopo le funzioni che manipolano gli header;
    abilitare l’output buffering.
    Quindi mi basta scrivere ob_start(); prima dell'output, ma è quello che ho fatto se vedi il codice che ti ho postato.

  5. #15
    Originariamente inviato da Draxent
    Quindi mi basta scrivere ob_start(); prima dell'output, ma è quello che ho fatto se vedi il codice che ti ho postato.
    Quello che hai fatto è mettere ob_start() PRIMA della chiamata a setcookie()/header() ...

    //qui manca la parte di html che ho tagliato
    ...
    //se sei connesso ti dice "sei connesso" altrimenti di visualizza il form per connetterti
    //che ho tagliato e dopo il form c'è dinuovo la parte di php

  6. #16
    Scusami se sono così tonto ma non ho capito cosa vuoi comunicarmi potresti essere più chiaro anzi molto ma molto più chiaro?

  7. #17
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83
    Ti consiglio la lettura di questo articolo:

    warning: cannot modify header information. headers already sent by

  8. #18
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ti suggerisco di effettuare questa ricerca su google

    http://www.google.it/search?hl=it&cl...nG=Cerca&meta=

    e cliccare il primo link della lista
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.