• User Newbie

    Forum con php

    Ciao a tutti,
    volevo creare un forum in php con Macromedia Dreamweaver.
    Qualcuno mi sa dire perchè mi da l'errore di sintassi:

    **Parse error**: parse error in **/data/members/free/tripod/it/d/u/o/duocompany/htdocs/forum/forum.php** on line **40**
    

    Alla riga 40.
    Ecco lo script della pagina iniziale del forum: (la linea 40 è evidenziata di blu)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Duo Company Forum</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="stile.css" rel="stylesheet" type="text/css">
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d)&&d.all) x=d.all; for (i=0;!x&&i<d.forms.length;i++) x=d.forms*;
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers*.document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    function MM_setTextOfTextfield(objName,x,newText) { //v3.0
      var obj = MM_findObj(objName); if (obj) obj.value = newText;
    }
    //-->
    </script>
    </head>
    <body>
    <p><img src="images/title.jpg" alt="Duo Company Forum" width="333" height="80">
    </p>
    <table width="605" height="381" border="0" bgcolor="#FFFFFF" id="tab">
      <tr>
        <td width="200" height="32" align="center" valign="middle" class="set">Discussioni:</td>
        <td colspan="2" align="center" class="set">Inizia una nuova discussione: </td>
      </tr>
      <tr class="text">
        <td height="233" rowspan="2" align="center" valign="top"><?php
    if (!$apri = fopen("discussioni.txt","r")){
    echo "Non ci sono discussioni";
    }else{
    $apriw = fopen("discussioni.txt","r")
    #Se il file si può leggere allora con un ciclo while
    # leggo tutte le righe del mio file
    **while(!feof($apriw))**
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile
    }
    fclose($apri);
    ?>
        </td>
        <td width="252" rowspan="2" valign="top"><form action="nuova.php" method="get" name="nuova" id="nuova">
            <p>Nick:
                <input name="nome" type="text" id="nome2" size="15" maxlength="15">
            </p>
            <p>Nome discussione:
                <input name="titolo" type="text" id="titolo2" size="22" maxlength="20">
            </p>
            <p>Testo discussione: </p>
            <p>
              <textarea name="testo" cols="30" rows="4" id="textarea"></textarea>
            </p>
            <p>
              <input type="submit" name="Submit" value="Invia">
              <input name="canc" type="reset" id="canc2" value="Cancella">
            </p>
        </form></td>
        <td width="139" height="27" align="center" valign="middle" class="textbig">Immagini:</td>
      </tr>
      <tr class="text">
        <td height="314" align="left" valign="top"><table width="139" border="0">
          <tr align="center" valign="middle">
            <td width="23">&nbsp;</td>
            <td width="25" height="25"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_1.gif')"><img src="images/mini/small_1.gif" width="20" height="20" border="0"></a></td>
            <td width="25" height="25"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_3.gif')"><img src="images/mini/small_3.gif" width="20" height="20" border="0"></a></td>
            <td width="25" height="25"><div align="center"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_4.gif')"><img src="images/mini/small_4.gif" width="20" height="20" border="0"></a></div></td>
            <td width="24">&nbsp;</td>
          </tr>
          <tr align="center" valign="middle">
            <td width="23">&nbsp;</td>
            <td width="25" height="25"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_2.gif')"><img src="images/mini/small_2.gif" width="20" height="20" border="0"></a></td>
            <td width="25" height="25"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_5.gif')"><img src="images/mini/small_5.gif" width="20" height="20" border="0"></a></td>
            <td width="25" height="25"><div align="center"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_8.gif')"><img src="images/mini/small_8.gif" width="20" height="20" border="0"></a></div></td>
            <td width="24">&nbsp;</td>
          </tr>
          <tr align="center" valign="middle">
            <td width="23">&nbsp;</td>
            <td width="25" height="25"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_6.gif')"><img src="images/mini/small_6.gif" width="20" height="20" border="0"></a></td>
            <td width="25" height="25"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/small_7.gif')"><img src="images/mini/small_7.gif" width="20" height="20" border="0"></a></td>
            <td width="25" height="25"><div align="center"><a href="javascript:;" onClick="MM_setTextOfTextfield('nome2','','images/mini/kiss.gif')"><img src="images/mini/kiss.gif" width="20" height="20" border="0"></a></div></td>
            <td width="24">&nbsp;</td>
          </tr>
        </table>      
          <div align="center">
              <p align="left">Scegli un'immagine e inserisci in Testo discussione il testo:</p>
              <p align="left">&lt;img src=&quot;inserisci qui src immagine&quot;&gt;</p>
              <p align="left" class="text">SRC immagine:</p>
          </div>
            <form action="" method="post" name="imgs" id="imgs">
              <p>
                <textarea name="scriptimg" cols="18" rows="1" id="textarea2"></textarea>
              </p>
        </form></td>
      </tr>
    </table>
    </body>
    </html>
    
    

    L'anteprima del forum è su http://utenti.lycos.it/duocompany/forum/forum.php

    Grazie in anticipo per chi mi saprà rispondere!


  • Moderatore

    mmmm......

    riga 39

    $apriw = fopen("discussioni.txt","r")

    ndo sta il punto e virgola?


  • User Attivo

    http://it2.php.net/feof

    ho trovato questo post su un forum che mi sembra tratti il tuo problema... se non ho capito male, prova a sostituire il while con questo:
    while($leggo = fgets($apriw, 255)){


  • User Attivo

    in effetti il ; mancante basta!


  • User Newbie

    @joey santiago said:

    http://it2.php.net/feof

    ho trovato questo post su un forum che mi sembra tratti il tuo problema... se non ho capito male, prova a sostituire il while con questo:
    while($leggo = fgets($apriw, 255)){

    Ho provato sia a inserire il ; che fare come dice joey santiago ma adesso invece che darmi errore alla linea 40 mi dice alla 43!

    :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato:

    Se qualcuno scopre come fare me lo dica!
    Grazie.


  • User Attivo

    anche ad endwhile manca il ;!


  • User Newbie

    @joey santiago said:

    anche ad endwhile manca il ;!
    Ma l'errore resta lo stesso.

    :doppio:

    Ma l'errore dev'essere un ; ?
    Perchè allora dovrebbe essere a posto ora.


  • Moderatore

    mmm allora vediamo

    la riga 39 mancava il ";"....quindi "$apriw = fopen("discussioni.txt","r");"

    poi il ciclo è sbagliato....o usi while() {} oppure usi while (): endwhile....quindi

    while(!feof($apriw)):
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;

    il tutto diventa

    <?php
    if (!$apri = fopen("discussioni.txt","r")){
    echo "Non ci sono discussioni";
    }else{
    $apriw = fopen("discussioni.txt","r");
    #Se il file si può leggere allora con un ciclo while
    # leggo tutte le righe del mio file
    while(!feof($apriw)):
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;
    fclose($apri);
    ?>
    
    

  • User Newbie

    @paolino said:

    mmm allora vediamo

    la riga 39 mancava il ";"....quindi "$apriw = fopen("discussioni.txt","r");"

    poi il ciclo è sbagliato....o usi while() {} oppure usi while (): endwhile....quindi

    while(!feof($apriw)):
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;

    il tutto diventa

    ><?php
    if (!$apri = fopen("discussioni.txt","r")){
    echo "Non ci sono discussioni";
    }else{
    $apriw = fopen("discussioni.txt","r");
    #Se il file si può leggere allora con un ciclo while
    # leggo tutte le righe del mio file
    while(!feof($apriw)):
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;
    fclose($apri);
    ?>
    
    >```
    Ma se è come dici tu dopo manca **{** per
    **> **} else {****Intendo:
    

    <?php
    if (!$apri = fopen("discussioni.txt","r")){
    echo "Non ci sono discussioni";
    }else{
    $apriw = fopen("discussioni.txt","r");
    il file si può leggere allora con un ciclo while

    leggo tutte le righe del mio file

    while(!feof($apriw)):
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;
    fclose($apri);
    ?>

    ci manca il **}** dell'else, no?

  • Moderatore

    vero avevo preso la } per la chiusura del ciclo while....

    quindi è

    
    <?php
    if (!$apri = fopen("discussioni.txt","r")){
    echo "Non ci sono discussioni";
    }else{
    $apriw = fopen("discussioni.txt","r");
    #Se il file si può leggere allora con un ciclo while
    # leggo tutte le righe del mio file
    while(!feof($apriw)):
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;
    }
    fclose($apri);
    ?>
    
    

  • User Newbie

    @paolino said:

    vero avevo preso la } per la chiusura del ciclo while....

    quindi è

    >
    **<?php**
    if (!$apri = fopen("discussioni.txt","r")){
    echo "Non ci sono discussioni";
    }else{
    $apriw = fopen("discussioni.txt","r");
    #Se il file si può leggere allora con un ciclo while
    # leggo tutte le righe del mio file
    while(!feof($apriw))**:**
    $leggo = fgets($apriw,255);
    echo "$leggo<br>";
    endwhile;
    }
    fclose($apri);
    **?>**
    
    >```
    Come mai i **:** dopo il while? :? 
    [CENTER]---[/CENTER]
    [LEFT]Comunque se lo script è così è come era prima.[/LEFT]