• User

    [INFO] - Errore, sto letteralmente sclerando!!! Aiuto

    Ciao a tutti ragazzi ho creato grazie a qualche aiuto questo piccolo script che mi prende le immagini da una cartella nel sito, e me le visualizza in una pagina... il problema che ora esce un errore strano... in locale funziona perfettamente. In rete niente... vi allego il codice...

    [php]
    <?php include("include/conn.php"); ?>
    <?php include("include/verifyoff.php"); ?>
    <?php include("include/header.php"); ?>
    <?php include("include/menu.php"); ?>
    <td width="746" align="center" valign="top" background="images/sf_center.gif"><table width="746" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><img src="images/sottomenu.jpg" alt="sm" width="746" height="54" /></td>
    </tr>
    <tr>
    <td align="center" class="tabstile">Qui puoi trovare le nostre fantastiche offerte da non perdere, <br />molti viaggi ed escursioni ti aspettano contattataci!!!</td>
    </tr>
    <tr>
    <td align="center"> </td>
    </tr>
    <tr>
    <td align="center" class="tabstile">
    <?php
    $pagina = (@$_GET["pag"] != "") ? @$_GET["pag"] : 1;
    $path = "offerte";

    if(file_exists("$path/$pagina.jpg"))
    {
    #TABELLA CON FRECCE SOTTO
    echo "<table width='650' border='0' cellspacing='0' cellpadding='0'>";
      echo "<tr>";
       echo "<td>&nbsp;</td>";
      echo "</tr>";
      echo "<tr>";
        echo "<td align='center'><img src=\"$path/$pagina.jpg\" alt=\"image\" /></td>";
      echo "</tr>";
      echo "<tr>";
       echo "<td><table width='650' border='0' cellspacing='0' cellpadding='0'><tr>";
          echo "<td width='80'><a href=\"offerte.php?pag=" . ($pagina - 1) . "\"><img src='images/indietro.jpg' border='0' alt='indietro' width='80' height='66'/>                          </a></td>";
          echo "<td>&nbsp;</td>";
          echo "<td width='80'><a href=\"offerte.php?pag=" . ($pagina + 1) . "\"><img src='images/avanti.jpg' border='0' alt='avanti' width='80' height='66'/></a></td>";
         echo "</tr>";
         echo "<tr>";
          echo "<td>&nbsp;</td>";
          echo "<td>&nbsp;</td>";
          echo "<td>&nbsp;</td>";
         echo "</tr>";
       echo "</table></td>";
      echo "</tr>";
    echo "</table>";     
       }
    else
    {
    header("Location: offerte.php?pag=1");
    exit;
    }
    

    ?>
    </td>
    </tr>
    <tr>
    <td align="center"> </td>
    </tr>
    </table></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <?php include("include/footer.php"); ?>
    <?php include("include/closeconn.php"); ?>
    [/php]

    Se provo a scorrere le immagini con le frecce che ho creato, alla fine mi caccia questo errore... e non sono alla fine anche se provo a fare indietro dalla prima diapositiva... lo stesso errore... 😞

    Warning: Cannot modify header information - headers already sent by (output started at D:\Inetpub\webs\laislaviaggiit\include\menu.php:70) in D:\Inetpub\webs\laislaviaggiit\offerte.php on line 62

    sto cercando intanto in rete ma se qualcuno ha risolto quest'intoppo, sarei grato se mi aiuta.

    Attendo fiducioso.


  • Super User

    Be', l'errore mi sembra molto autoesplicativo:

    alla riga 70 del file D:\Inetpub\webs\laislaviaggiit\include\menu.php c'e' qualche cosa che mostra a video almeno un carattere.

    Ma piu' di tutti è :

    header("Location: offerte.php?pag=1");

    Mica lo puoi mettere dove vuoi e quando vuoi.

    M.


  • User

    @ziobudda said:


    Come posso ovviare il problema??? anche se metto solo offerte.php mi dà lo stesso problema... hai qualche consiglio anche se alla fine non vedo questo problema in menu.php con l'inclusione


  • Super User

    Be', inizia a capire cosa è che viene visualizzato alla linea 70.
    Anche un semplice "a capo" fa scattare tutto.

    M.


  • User

    @ziobudda said:


    Questo è il codice di menu.php
    [php]
    <table width="1000" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="254" valign="top" background="http://www.giorgiotave.it/forum/images/sf.gif"><table width="254" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>
    <ul id='menu'>
    <table width="254" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td><li id='menu' class='servizi'><a href='servizi.php'></a></li></td>
    </tr>
    <tr>
    <td><li id='menu' class='photo'><a href='photoviaggi.php'></a></li></td>
    </tr>
    <tr>
    <td><li id='menu' class='tour'><a href='tourdigruppo.php'></a></li></td>
    </tr>
    <tr>
    <td><li id='menu' class='offerte'><a href='offerte.php'></a></li></td>
    </tr>
    <tr>
    <td><li id='menu' class='last'><a href='lastminute.php'></a></li></td>
    </tr>
    </table></ul><br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br /></td>
    </tr>
    <tr>
    <td> </td>
    </tr>
    <tr>
    <td> </td>
    </tr>
    <tr>
    <td><img src="http://www.giorgiotave.it/forum/images/mailinglist.gif" alt="mailinglist" width="254" height="52" /></td>
    </tr>
    <tr>
    <td align="center"><table width="254" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="30"> </td>
    <td width="174" align="center"><form action='registra.php?step=error' method='post' name='registrazione'>
    <label><input type='text' name='email' value="Inserire Indirizzo Email" /></label>
    <br />
    <input type='radio' name='action' value='register' checked="checked" /> Registra
    <input type='radio' name='action' value='delete' /> Elimina<br />
    <input type='submit' value='Conferma' name='send' /></form> </td>
    <td width="50"> </td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td align="center"> </td>
    </tr>
    <tr>
    <td align="center" class="tabstile2">Al Momento le iscrizioni <br />
    alla Mailing List<br />
    sono chiuse per motivi Tecnici. <br />
    Ci scusiamo per l'incoveniente. <br />
    Il WebMaster</td>
    </tr>
    </table></td>
    [/php]La riga 70 è la penultima riga ovvero il </tr>
    Non ci vedo tante cose strane se non codice html


  • Super User

    La riga 62 di offerte.php ?

    M.


  • User

    @ziobudda said:


    La riga numero 62 di offerte è quella del blocco else, li è posizionato il comando exit;
    se tolgo il comando exit, mi dà l'errore alla riga superiore ovvero la 61 dove c'è header(..)


  • User Attivo

    Ciao,
    come ti ha segnalato ziobubba, l'errore è autoesplicativo:
    prima della funzione header() viene generato dell'output e questo genera il warning nonchè il non reindirizzamento della pagina.

    Dove generi l'output?
    Praticamente ovunque...
    [php]
    <?php include("include/conn.php"); ?>
    <?php include("include/verifyoff.php"); ?>
    <?php include("include/header.php"); ?>
    <?php include("include/menu.php"); ?>
    [/php]
    Già solo in queste prime 4 righe generi:

    • 4 caratteri di "a capo" dopo ogni tag di chiusura del codice php
    • da quel che ci hai postato, tutto quel che è contenuto in menu.php è output
    • presumo che header.php contenga le intestazioni html con metatag, titoli, etc... anche quello sarebbe output.

    Come risolvere?
    Modifica il codice della pagina facendo in modo che il controllo (if) sia all'inizio, prima di qualsiasi codice html o echo php o altro output.

    Alessandro


  • User

    @Magicale said:


    Mhhh. Non riesco a capire una cosa, come faccio a mettere il codice partendo dall'if quello della pagina offerte.php, così me lo porto in tutte le pagine... e verebbe visualizzato all'esterno di tutto il template... scusami ma forse non ho capito bene il ragionamento. Grazie per la pazienza.


  • User Attivo

    Il fatto che sia all'inizio non significa inserirlo nei file che includi, appunto, all'inizio e che quindi venga riportato in tutte le pagine.

    Possibile soluzione:
    [php]
    <?php
    include("include/conn.php");

    $pagina = (@$_GET["pag"] != "") ? @$_GET["pag"] : 1;
    $path = "offerte";
    if(file_exists("$path/$pagina.jpg"))
    {
    

    ?>

     Qui tutto il resto del codice
    

    <?php
    include("include/closeconn.php");
    }
    else
    {
    header("Location: offerte.php?pag=1");
    exit;
    }

    ?>
    [/php]

    Alessandro


  • User

    @Magicale said:


    Mhh questo per quanto riguarda la connessione al DB che in questa pagina non è che mi serve perchè non la uso quindi la posso anche eliminare... per quanto riguarda header e footer?? devo fare lo stesso


  • User Attivo

    header e footer se ti servono li puoi inserire tranquillamente.
    Dove ho scritto "Qui tutto il resto del codice" devi mettere tutto il codice html, php, etc... che ti serve.


  • User

    In pratica levo tutti gli include e faccio un unica pagina di php, così risolvo il problema? GLi include ovviamente li riscrivo ma direttamente nella pagina senza utilizzare la funzione include. Grazie per la pazienza


  • User Attivo

    @Mik_mo said:

    In pratica levo tutti gli include e faccio un unica pagina di php, così risolvo il problema? GLi include ovviamente li riscrivo ma direttamente nella pagina senza utilizzare la funzione include. Grazie per la pazienza

    Io non ho assolutamente detto questo!

    Forse così è più chiaro:

    [PHP]
    <?php

    $pagina = (@$_GET["pag"] != "") ? @$_GET["pag"] : 1;
    $path = "offerte";
    if(file_exists("$path/$pagina.jpg"))
    {
    

    ?>

    <?php include("include/conn.php"); ?>
    <?php include("include/verifyoff.php"); ?>
    <?php include("include/header.php"); ?>
    <?php include("include/menu.php"); ?>
    <td width="746" align="center" valign="top" background="images/sf_center.gif"><table width="746" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><img src="images/sottomenu.jpg" alt="sm" width="746" height="54" /></td>
    </tr>
    <tr>
    <td align="center" class="tabstile">Qui puoi trovare le nostre fantastiche offerte da non perdere, <br />molti viaggi ed escursioni ti aspettano contattataci!!!</td>
    </tr>
    <tr>
    <td align="center"> </td>
    </tr>
    <tr>
    <td align="center" class="tabstile">
    <?php
    $pagina = (@$_GET["pag"] != "") ? @$_GET["pag"] : 1;
    $path = "offerte";

    #TABELLA CON FRECCE SOTTO
    echo "<table width='650' border='0' cellspacing='0' cellpadding='0'>";
      echo "<tr>";
       echo "<td>&nbsp;</td>";
      echo "</tr>";
      echo "<tr>";
        echo "<td align='center'><img src=\"$path/$pagina.jpg\" alt=\"image\" /></td>";
      echo "</tr>";
      echo "<tr>";
       echo "<td><table width='650' border='0' cellspacing='0' cellpadding='0'><tr>";
          echo "<td width='80'><a href=\"offerte.php?pag=" . ($pagina - 1) . "\"><img src='images/indietro.jpg' border='0' alt='indietro' width='80' height='66'/>                          </a></td>";
          echo "<td>&nbsp;</td>";
          echo "<td width='80'><a href=\"offerte.php?pag=" . ($pagina + 1) . "\"><img src='images/avanti.jpg' border='0' alt='avanti' width='80' height='66'/></a></td>";
         echo "</tr>";
         echo "<tr>";
          echo "<td>&nbsp;</td>";
          echo "<td>&nbsp;</td>";
          echo "<td>&nbsp;</td>";
         echo "</tr>";
       echo "</table></td>";
      echo "</tr>";
    echo "</table>";     
       ?>            
            </td>
          </tr>
          <tr>
            <td align="center">&nbsp;</td>
          </tr>
    

    </table></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <?php include("include/footer.php"); ?>
    <?php include("include/closeconn.php"); ?>

    <?php
    }
    else
    {
    header("Location: offerte.php?pag=1");
    exit;
    }
    ?>
    [/PHP]


  • Super User

    Tralasciando che mischiare PHP e HTML non è mai saggio, posso suggerire di usare la forma
    <?php if (XXXX) : ?>
    ....
    <?php else : ?>
    ....
    <?php endif; ?>

    Rende il codice di piu' semplice lettura. Ma come dicevo: mai mischiare HTML e php.

    M.


  • User

    @Magicale said:

    [...]

    Ciao, scusami per il ritardo. Funziona a gonfie vele... grazie mille per la dritta. Però non riesco a capire il senso di non poter mischiare codice html con PHP a tal proposito come integrarlo con una parte formata dalla grafica???