Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    16

    strano comportamento....

    Ciao a tutti
    non sono un grande esperto in PHP, ma non riesco a capire le differenze di comportamento di due pezzi di codice apparentemente 'simili', ve li sottopongo:

    codice:
    -----questo codice da i risultati 'voluti'
    <?php 
    ob_start();
    echo '--PHP-alt-'; 
    echo $random_hash; 
    ?> 
    <?php 
    echo 'Content-Type: text/html; charset="iso-8859-1"'; 
    echo 'Content-Transfer-Encoding: 7bit';
    $message = ob_get_clean(); 
    ?>

    codice:
    -----questo codice da risultati diversi
    <?php 
    ob_start();
    echo '--PHP-alt-'; 
    echo $random_hash; 
    echo 'Content-Type: text/html; charset="iso-8859-1"'; 
    echo 'Content-Transfer-Encoding: 7bit'; 
    $message = ob_get_clean();
    ?>
    secondo voi che differenza viene causata dalla chiusura e riapertura del codice php.

    ringrazio anticipatamente qualsiasi suggerimento

    ciauz

  2. #2
    La "causa" è la funzione ob_start(); che interrompe il buffer della pagina fino a chiusura della stessa.

    Leggi per maggiori info su PHP.net
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    16
    grazie della risposta, ma non credo sia così.
    obj_start() è presente nei due i codici, sembra, invece, che sia la chiusura di php e la sua riapertura a infilare un carattere, all'apparenza è uno spazio, ma 'probabilmente' non lo è, xké ce l'ho infilato anch'io ma il codice si comporta comunque in maniera diversa.
    è una parte di un codice che ho trovato nel web e che volevo mettere in una funzione, ma così spezzato non è possibile.

  4. #4
    a parte che
    codice:
    echo 'Content-Type: text/html; charset="iso-8859-1"'; 
    echo 'Content-Transfer-Encoding: 7bit';
    andrebbero inseriti come funzione header ora che guardo bene e poi in teoria non puoi scrivere niente prima che non sia specificato l'header, quindi è giusto che non si comporti bene con la chiusura e riapertura del PHP.
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    16
    forse no hai letto bene!
    ho scritto che è una parte di codice, e quindi le variabili mancanti non le vedi xké non le ho scritte; ho scritto anche che il primo codice dà il risultato voluto, mentre il secondo no.
    cmq per tua soddisfazione l'header viene caricato in precedenza, così:

    codice:
    $random_hash = md5(date('r', time()));
    $headers = "From: miamail@esempio.it\r\nReply-To: miamail@esempio.it"; 
    $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
    e poi c'è altro...e altro...codice.
    in sostanza ho trovato sul web questo codice 'funzionante' e che così com'è non è utilizzabile per costruire una funzione o una classe, ma sono riuscito a compattarlo, togliendo anche l'utilizzo del buffer, ma nei casi simili a quello che ho esposto, funziona malamente....
    spero di aver chiarito.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    16

    è diventato solo accademico

    ciauz
    ho risolto il problema all'origine, quindi un'eventuale risposta alla domanda del post è diventata, per me, solo una curiosità accademica.
    penso tuttavia che un'eventuale risposta chiarificatrice potrebbe essere utile in altre occasioni
    grazie per l'impegno
    ri-ciauz

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 © 2025 vBulletin Solutions, Inc. All rights reserved.