Visualizzazione risultati 1 fino 18 di 18

Discussione: else sballati

  1. #1
    Guest

    Predefinito else sballati

    ciao raga, ho fatto un po di casino con gli else, riuscite a capire dov'è l'errore in questa pagina?
    Codice:
    <link href="style.css" type=text/css rel=stylesheet>
    <?
    $filename = "config.php";
    if (file_exists($filename)) { 
    include("config.php");
    
    $file = "messaggi.php";
    $apertura = fopen($file, 'r+');
    $dimensione = filesize($file);
    $contenuto = fread($apertura, $dimensione);
    $capo = chr(13);
    $controllo = explode($capo, $contenuto);
    $totale = count($controllo)-1;
    $chiusura = fclose($apertura);
    
    $divisione = $totale/$per_pagina;
    $virgola = explode(".", $divisione);
    $pagine = $virgola[0]+1;
    if ($pagine == 1) {
    $scritta = "tutti mostrati in questa pagina";
    } else {
    $scritta = "divisi in $pagine pagine";
    }
    
    if ($totale < $per_pagina) {
    $precedente = "&lt;&lt; pagina precedente";
    $successiva = "pagina successiva &gt;&gt;";
    } else {
    }
    ?>
    <title><?php echo "$guestbook"; ?></title>
    <div align="center"><font size=2 color="#008800" face="Verdana, Arial, Helvetica, sans-serif"><strong><?php echo "$guestbook"; ?></strong></font><br>
      <br>Ci sono un totale di <?php echo "$totale" ?> messaggi nel guestbook, <?php echo "$scritta"; ?>.
    <br><br>
    <?php
    if ($pag == 1 OR !$pag) {
    $pagina = 0;
    } else {
    $pagina = $pag-1;
    }
    $ultimo_mess = $pagina*$per_pagina;
    if ($pagina == 0) {
    $ultima_pag = $per_pagina*1;
    } else {
    $ultima_pag = $per_pagina*$pag;
    }
    
    // Gestione link pagina \\
    if (!$pag) {
    $precedente = "<font color=#CCCCCC>&lt;&lt; precedente</font>";
    if ($ultima_pag >= $totale) {
    $successiva = "<font color=#CCCCCC>successiva &gt;&gt;</font>";
    } else {
    $successiva = "<a href=$PHP_SELF?pag=2>successiva &gt;&gt;</a>";
    }
    } else {
    if ($pag == 2) {
    $precedente = "<a href=$PHP_SELF>&lt;&lt; precedente</a>";
    if ($ultima_pag >= $totale) {
    $successiva = "<font color=#CCCCCC>successiva &gt;&gt;</font>";
    } else {
    $successiva = "<a href=$PHP_SELF?pag=3>successiva &gt;&gt;</a>";
    }
    } else {
    // Se non è la pag 2 \\
    $prec = $pag-1;
    $precedente = "<a href=$PHP_SELF?pag=$prec>&lt;&lt; precedente</a>";
    if ($ultima_pag >= $totale) {
    $successiva = "<font color=#CCCCCC>successiva &gt;&gt;</font>";
    } else {
    $succ = $pag+1;
    $successiva = "<a href=$PHP_SELF?pag=$succ>successiva &gt;&gt;</a>";
    }
    }
    }
    
    for ($messaggio = $ultimo_mess; $messaggio < $ultima_pag; $messaggio++) {
    $messaggi = $controllo[$messaggio];
    $array = explode(", ", $messaggi);
    if ($array[0]) {
    ?>
    <table width="500" border="0">
      <tr bgcolor="#7CB8E9" align="center">
        <td width="30%"><font color="white"><b>Autore</b></font></td>
        <td width="70%"><font color="white"><b>Messaggio</b></font></td>
        </tr>
    </table>
    <?php
    if ($array[4] == "") {
    $mail = "";
    } else {
    $mail = "<a href=mailto:$array[4] title=\"Invia una e-mail a $array[0]\"><img src=img/email.gif border=0></a>";
    }
    if ($array[6] == "") {
    $provenienza = "";
    } else {
    $provenienza = "da $array[6]";
    }
    
    echo "<table width=500 border=0>";
    echo "<tr>
    <td width=31% valign=top><div align=center>$array[0]</div>&nbsp;$mail&nbsp;";
    if ($array[5] == "http://" OR $array[5] == "") {
    } else {
    echo "<a href=$array[5] target=_blank><img src=img/url.gif border=0></a>";
    }
    $array[1] = str_replace(";:;", "<", $array[1]);
    $array[1] = str_replace(":;:", ">", $array[1]);
    $array[1] = str_replace("%&", ",", $array[1]);
    stripslashes($array[1]);
    echo "</td>
    <td width=69%>- Inviato alle $array[3] del $array[2] $provenienza<br><br><b>$array[1]</b><br><br></td>";
    echo "</tr>";
    echo "</table>";
    echo('<table width="500" border="0">
      <tr>
        <td width="50%"><?php echo "$precedente" ?></font></td>
        <td width="50%" align="right"><?php echo "$successiva" ?></font></td>
        </tr>
    </table>
    <div align="center"><a href="scrivi.php" class="scrivi">Scrivi un nuovo messaggio</a><br><br><br><font color="#CCCCCC"><a href=admin/index.php>Admin</a> powered by txtguestbook. Copyright <a href=http://www.giacows.tk>giacows</a></font></div>
    </div>');
    } else {
    }
    }
    } else {
    header("location: installa.php");
    }
    ?>
    se lo apro mi compare:
    Warning: Cannot modify header information - headers already sent by (output started at /home/giacomo/Desktop/Localhost/script txt/txtguestbook/index.php:2) in /home/giacomo/Desktop/Localhost/script txt/txtguestbook/index.php on line 127
    sigh sob.
    grazie a tutti!
    giacomo
    Ultima modifica di wrestlingforum : 14-08-2005 alle ore 00.41.19

  2. #2
    Ospite Guest

    Predefinito

    doh ..

    secondo me da "// Gestione link pagina \\" devi dare una controllatina..

  3. #3
    Guest

    Predefinito

    quello che è strano è che su win funziona correttamente, su linux no, forse è un problema del php.ini perchè aprendolo da apache mi dice:
    Warning: Cannot modify header information - headers already sent by (output started at /home/giacomo/Desktop/Localhost/script txt/txtguestbook/index.php:2) in /home/giacomo/Desktop/Localhost/script txt/txtguestbook/index.php on line 127

    mentre uppandolo su av anche da linux lo vedo correttamente.
    boh..
    ciao!
    giaco

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    La funzione header va chiamata prima di qualsiasi output php o html.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    Guest

    Predefinito

    si ma non capisco! guarda:
    } else {
    }
    } <- linea 127.. boh
    } else {
    header("location: installa.php");
    }
    ?>

  6. #6
    Guest

    Predefinito

    Come ti capisco.. avevo gli stessi problemi pure io.. poi però ho scoperto che se c'è un "if" non è necessario l' "else" successivo....:winkOLD:

    pika

  7. #7
    L'avatar di softweb
    softweb non è connesso Utente giovane
    Data registrazione
    16-01-2004
    Residenza
    127.0.0.1
    Messaggi
    91

    Predefinito

    penso che l'errore sia propio quello che ha detto binarysun....
    a volte l'errore non si presenta sempre nella riga che indica...

    consiglio: cura l'identazione! a volte basta un po di chiarezza per capire dov'è si trova l'errore.... senza di essa anche il piu banale ti puo far perdere ORE!!!!
    Softweb.altervista.org

    Software - Sfondi - Emulazione - Guide - Tutorial e tanto altro

  8. #8
    Guest

    Predefinito

    Prova a dare un'occhiata al ciclo "for"..il problema sembra essere li..

    Citazione Originalmente inviato da softweb

    consiglio: cura l'identazione! a volte basta un po di chiarezza per capire dov'è si trova l'errore.... senza di essa anche il piu banale ti puo far perdere ORE!!!!
    quanto puoi aver ragione.. per semplice "print" non chiuso mi sono ammazzato mezz'ora in 250 righe di pagina...

    pika
    Ultima modifica di djharry : 14-08-2005 alle ore 13.01.11

  9. #9
    Guest

    Predefinito

    Scaricati il notepad2; ti permette, quando apri una parentesi, di vedere quella che la chiude in questo modo, secondo me è più facile trovare l'errore... selezioni la parentesi che ti dà errore e risali a quella che l'ha aperta e controlli che tutto sia a posto. Inoltre, secondo me, dovresti scrivere il codice "un pò meglio" (io sono un fanatico di queste cose) es:

    Codice PHP:
    <?
    istruzioni
    ;
    if
    {
    istruzioni dentro if;
    if
    {
    istruzioni dentro sub-if;
    }
    else
    {
    istruzioni dentro sub-else;
    }
    else
    {
    istruzioni dentro else;
    }
    ?>
    Sembrerà una cavolata ma mi aiuta molto a capire il codice e a capire se ho chiuso tutte le parentesi etc... inoltre aggiungere i commenti prima di ogni if e else può aiutarti :)

  10. #10
    Guest

    Predefinito

    ma non ci sono errori nel codice credo! perchè se lo apro su av funziona correttamente! testate voi stessi:
    http://www.giacowebsite.altervista.org/txtguestbook/
    se invece lo apro con apache da linux mi compare l'errore scritto sotto!

    ciao!
    giaco

  11. #11
    L'avatar di softweb
    softweb non è connesso Utente giovane
    Data registrazione
    16-01-2004
    Residenza
    127.0.0.1
    Messaggi
    91

    Predefinito

    cos'è sta roba?????
    if ($array[0]) {
    ?>
    Softweb.altervista.org

    Software - Sfondi - Emulazione - Guide - Tutorial e tanto altro

  12. #12
    Guest

    Predefinito

    in che riga l'hai trovato? forse mi è sfuggito (ma comunque non c'entra con l'errore riportato dallo scrtip credo)...

    ciao!
    giaco

  13. #13
    L'avatar di softweb
    softweb non è connesso Utente giovane
    Data registrazione
    16-01-2004
    Residenza
    127.0.0.1
    Messaggi
    91

    Predefinito

    fai la ricerca e lo trovi.....
    cmq è un po difficile aiutarti....
    vedi se il codice l'avessi scritto io è un conto, ma dato che lo hai scritto tu, ed è quasi privo di commenti e l'identazione non è curata è un compito arduo capire dov'è l'errore.
    Cmq per maggior chiarezza ti consiglio di pulire il codice......
    Comincia a togliere quegli else senza istruzioni, e se puoi prova a ridurre il codice con meno if, aggiungi qualche commento, poi identalo per bene e vedrai ke l'errore salta fuori da solo!!!!!!

    consiglio: per ridurre il codice ed usare meno istruzioni, e di conseguenza alleggerire il tutto. Prima crea lo "Pseudocodice" e poi trasformalo nel codice vero e propio... vedrai che sarà tutto piu facile e ordinato
    Softweb.altervista.org

    Software - Sfondi - Emulazione - Guide - Tutorial e tanto altro

  14. #14
    Guest

    Predefinito

    forse ci sono... non è che su Apache hai settato l'opzione di far vedere i Warning? i Warning non sono errori veri e propri ma soltato degli avvertimenti che c'è qualcosa che non hai scritto in maniera corretta. Ciò significa che lo script funziona lo stesso ma che sarebbe meglio sistemare quella parte di codice per questioni di maggior sicurezza...

  15. #15
    L'avatar di softweb
    softweb non è connesso Utente giovane
    Data registrazione
    16-01-2004
    Residenza
    127.0.0.1
    Messaggi
    91

    Predefinito

    beh quello che dici si avvicina di più ad un errore di tipo notice......
    il warning è vero che fa continuare l'esecuzione dello script, ma è un po + grave, e soprattutto è un errore di run-time.... ovvero ke il problema non è che è stato scritto qualcosa male, ma che cio che è stato scritto non ha senso, come per esempio un ciclo infinito!!!!!
    Ultima modifica di softweb : 14-08-2005 alle ore 13.53.58
    Softweb.altervista.org

    Software - Sfondi - Emulazione - Guide - Tutorial e tanto altro

  16. #16
    Guest

    Predefinito

    allora forse che non ci siamo capiti.. lo script funziona, in locale va (potete testarlo su www.giacowebsite.altervista.org/txtguestbook ) ma in locale mi da errore! e non so perchè! solo su linux poi, su win funge correttamente. Peraltro non puo essere neanche un warning perchè lo script non va, si vede solo l'errore. Probabilmente è un problema del mio php.ini ma non so quale.

    ciao!
    giaco

  17. #17
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Setta la direttiva "output_buffering" nel PHP.ini
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  18. #18
    Guest

    Predefinito

    beh, grazie lo stesso, ho semplicemente copiato il php.ini di windows su linux, e ora funge.

    ciao!!
    giaco

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •