Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Errore di header se metto include al posto delle istruzioni

    Buongiorno,
    è più facile a vedersi che a spiegarsi.
    Ho un file php nel quale c'è una include relativa al multilanguage.
    Questa include è presente in tutti i miei file php e va bene ovunque. Ma non qui.
    Qui mi dà un errore di Header. Mi fa impazzire.
    Il problema è che se sostituisco le istruzioni all'include tutto funziona.
    Di seguito inserisco il codice con l'include e, a seguire, il contenuto dell'include.
    Vi prego aiutatemi.

    <?php
    session_start();// come sempre prima cosa, aprire la sessione
    include("SCVConnectdb.php"); // Include il file di connessione al database

    if(isset($_COOKIE["SCVcoo"])) {
    $daticookie=$_COOKIE["SCVcoo"];
    $dati=explode(",",$daticookie);
    $condom=$dati[0];
    $userid=$dati[1];
    $password=$dati[2];
    $nome=$dati[3];
    $admin=$dati[4];
    $remember=$dati[5];
    $loggato=$dati[6];
    }
    else {
    $condom="";
    $userid="";
    $password="";
    $nome="";
    $admin=false;
    $remember=false;
    $loggato=false;
    }

    include("SCVMultilanguage.php"); // Include il file per il multilanguage

    $nomin=$_POST["nomin"];
    $email=$_POST["email"];
    $indirizzo=$_POST["indirizzo"];
    $citta=$_POST["citta"];
    $messaggio=$_POST["messaggio"];

    require 'PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = "out.alice.it";
    $mail->SMTPAuth = true;
    $mail->Username = "xxxxxxx";
    $mail->Password = "xxxxx";
    $mail->Port = 25;
    $mail->From = "xxxxx";
    $mail->FromName = "xxxxx";
    $mail->addAddress("xxxxx");
    $mail->WordWrap = 50;
    $mail->isHTML(true);
    $mail->Subject = "xxxxx";
    $body = $ContattaciSubject."<br>";
    $body .= $ContattaciNomeCognome." ".$nomin."<br>";
    $body .= $ContattaciEmail." ".$email."<br>";
    $body .= $ContattaciIndirizzo." ".$indirizzo."<br>";
    $body .= $ContattaciCitta." ".$citta."<br>";
    $body .= $ContattaciMessaggio." ".$messaggio."<br>";
    $mail->Body = $body;
    if(!$mail->send()) {
    header('location:SCVContattaci.php?action=ContInvK O&errore='.$mail->ErrorInfo);
    }
    $err="ContInvOK";
    header('location:SCVContattaci.php?action=SCVContI nv&errore='.$err);

    ?>


    Questo è il contenuto di SCVMultilanguage.php


    $lingue = array(1=>'Italiano', 'English');
    $choose = array(1=>'Scegli la lingua', 'Choose language');
    $flags = array(1=>'it', 'en');
    $lingua = @$_GET['lingua'];
    if (!$lingua) $lingua = 1; // default italiano
    switch ($lingua) {
    case 1:
    include "lingue/it.php";
    break;
    case 2:
    include "lingue/en.php";
    break;
    }

    Ripeto: se metto le istruzioni al posto dell'include tutto funziona

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Verifica che in nessun file ci siano righe vuote fuori dai tag <?php e ?>
    Inoltre assicurati che tutti i file siano codificati in UTF-8 SENZA BOM, UTF-8 semplice non va bene.

    Puoi verificarlo con un editor di testi avanzato o con un IDE (se ne fai uso).
    Per esempio con Notepad++, in basso a destra vedi la codifica del file, deve esserci scritto "ANSI as UTF8" oppure "UTF-8 w/o BOM" a seconda della versione, se c'è scritto altro, nel menu "Formato" puoi cambiare la codifica del file cliccando su "Converti in UTF-8 senza BOM".
    Fallo per tutti i file, è molto importante.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Verifica che in nessun file ci siano righe vuote fuori dai tag <?php e ?>
    Inoltre assicurati che tutti i file siano codificati in UTF-8 SENZA BOM, UTF-8 semplice non va bene.

    Puoi verificarlo con un editor di testi avanzato o con un IDE (se ne fai uso).
    Per esempio con Notepad++, in basso a destra vedi la codifica del file, deve esserci scritto "ANSI as UTF8" oppure "UTF-8 w/o BOM" a seconda della versione, se c'è scritto altro, nel menu "Formato" puoi cambiare la codifica del file cliccando su "Converti in UTF-8 senza BOM".
    Fallo per tutti i file, è molto importante.
    Grazie Alhazred di aver risposto.
    Purtroppo non ci sono righe vuote fuori dai tag nei file coinvolti e tutti sono codificati come UTF-8 senza BOM (per sicurezza ho scaricato Notepad++ e tutto è ok).

    Ma perchè se metto le istruzioni al posto dell'include funziona?
    Tieni presente che quella include funziona su tutti gli altri programmi.
    L'unica differenza che vedo è che questo è l'unico programma che termina con una istruzione Header.

  4. #4
    Non ci posso credere........ l'ho trovato
    Avevi ragione Alhazred, ma non era una riga bianca, era un semplice carattere di spazio accanto e sulla stessa riga del tag ?>
    Tolto lo spazio è andato ok
    Grazie per il supporto. Caso risolto

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.