• User

    Errore sintassi php

    Ho un problema con una pagina php, mi dà questo errore:

    Parse error: syntax error, unexpected $end in C:\Program Files\EasyPHP-5.3.2\www\Sito\results.php on line 167
    proprio sull'ultima riga... Il file è questo:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?php session_start(); ?>
    <HTML>
    <HEAD>
    <TITLE>Results</TITLE><link href="style.css" rel="stylesheet" type="text/css">
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    </HEAD>
    <BODY>
    <div align="center">
      <TABLE class="maintable" CELLPADDING="0" CELLSPACING="0">
        <TR> 
          <TD COLSPAN=3> <IMG SRC="images/index_01.gif" WIDTH=727 HEIGHT=240 ALT=""></TD>
        </TR>
        <TR> 
          <TD ROWSPAN=2 class="navbg" valign="top"><div id="nav">
              <p><span class="h2">Menu</span> <a href="index.php">Home</a> <a href="rules.php">Rules</a> 
                <a href="gallery.php">Gallery</a> <a href="upload.php">Upload</a> <a href="search.php">Search</a>
                <span class="endbox"></span> </p>
    						
             
    					
    <?php 
    if ((isset($_SESSION['login']))&&((isset($_SESSION['password'])))){
       echo <<<print
    	 
    	 <p><span class="h2">Logout</span> <a href="profile.php">Your Profile</a> <a href="logout.php">Logout</a><span class="endbox"></span> </p>
             <p><span class="h2">Friendship</span> <a href="users.php">Search user</a> <a href="friend.php">My friends</a> <a href="request.php">Friends request</a> <span class="endbox"></span> </p>
    print;
    }
    else {
       echo <<<print
    	 
    	 <p><span class="h2">Sign in</span> <a href="create.html">Create account</a> <a href="login.htm">Login</a><span class="endbox"></span> <span class="endbox"></span> </p>
    print;
    }
    echo <<<print
    
     </p>
            </div></TD>
          <TD ROWSPAN=2 class="contentbg" valign="top"><div id="content">
              
    print;
    
     ?>
               <h1>Results</h1>
    <?php
    include("connessione.inc");
    $conta=0;
    if (isset($_GET['search'])){ 
       $search=$_GET['search'];
    } 
    		else {
    		   $search = "WHERE utenti.IDutente != '$IDuser' ";
    if (isset ($_POST['nickname'])!= '') { 
       $nickname = addslashes(htmlentities($_POST['nickname']));
    	 $search = $search."and Nickname LIKE '%".$nickname."%' ";
    }
    if (isset ($_POST['name'])!= '') { 
       $name = addslashes(htmlentities($_POST['name']));
    	 $search = $search."and Name LIKE '%".$name."%' ";
    }
    if (isset ($_POST['surname'])!= '') { 
       $surname = addslashes(htmlentities($_POST['surname']));
    	 $search = $search."and Surname LIKE '%".$surname."%' ";
    }
    if (isset ($_POST['place'])!= '') { 
       $place = addslashes(htmlentities($_POST['place']));
    	 $search = $search."and LuogoNascita LIKE '%".$place."%' ";
    }
    if (isset ($_POST['sketch'])!= '') { 
       $conta++;                              
    	 $interest1 = addslashes(htmlentities($_POST['sketch']));
    	 $search = $search."and Interesse1 LIKE '%".$sketch."%' ";
    }
    if (isset ($_POST['art'])!= '') { 
       $conta++;                              
    	 $interest2 = addslashes(htmlentities($_POST['art']));
    	 $search = $search."and Interesse2 LIKE '%".$art."%' ";
    }
    if (isset ($_POST['painting'])!= '') { 
       $conta++;                              
    	 $interest3 = addslashes(htmlentities($_POST['painting']));
    	 $search = $search."and Interesse3 LIKE '%".$painting."%' ";
    }
    if (isset ($_POST['music'])!= '') { 
       $conta++;                              
    	 $interest4 = addslashes(htmlentities($_POST['music']));
    	 $search = $search."and Interesse4 LIKE '%".$music."%' ";
    }
    if (isset ($_POST['games'])!= '') { 
       $conta++;                              
    	 $interest5 = addslashes(htmlentities($_POST['games']));
    	 $search = $search."and Interesse5 LIKE '%".$games."%' ";
    }
    if (isset ($_POST['book'])!= '') { 
       $conta++;                              
    	 $interest6 = addslashes(htmlentities($_POST['book']));
    	 $search = $search."and Interesse6 LIKE '%".$book."%' ";
    }
    if (isset ($_POST['photography'])!= '') { 
       $conta++;                              
    	 $interest7 = addslashes(htmlentities($_POST['photography']));
    	 $search = $search."and Interesse7 LIKE '%".$photography."%' ";
    }
    if (isset ($_POST['film'])!= '') { 
       $conta++;                              
    	 $interest8 = addslashes(htmlentities($_POST['film']));
    	 $search = $search."and Interesse8 LIKE '%".$film."%' ";
    }
    if (isset ($_POST['other'])!= '') { 
       $conta++;                              
    	 $interest9 = addslashes(htmlentities($_POST['other']));
    	 $search = $search."and Interesse9 LIKE '%".$other."%' ";
    }
    $sql="SELECT * FROM (utenti) $search";
    $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
    $lines=mysql_num_rows($res);
    if ($lines = 0){
       echo "There isn't user with that name!";
    }
    else {
       $recordperpagina=5;//numero di record per pagina
    	 $numeropagine=ceil($lines / $recordperpagina);
    	 if (isset ($_GET['page'])){ $paginacorrente = $_GET['page'];} else { $paginacorrente = 1;}
    	 $primolimit = ($paginacorrente - 1)* $recordperpagina;
    
    	 $sql="SELECT * FROM (utenti) $search ORDER BY utenti.Nickname LIMIT $primolimit, $recordperpagina";
       $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
       while ($records=mysql_fetch_assoc($res)) { 
    	 echo "$record[Nickname];</br>$record[Name];</br>$record[Surname]";
    	 }
    	 
    if ($paginacorrente == 1){
    						          $precedente = "";
    						       }
    						       else {
    						          $previous_page = ($paginacorrente - 1);
    							        $precedente = "<a href=\"?page=$previous_page&cerca=$cerca\" title=\"Go to the previous page\" id=\"previus\"><<-- previous</a>";
    						       }
    						       if($paginacorrente == $numeropagine){
    						          $successiva = "";
    									 }
    									 else {
    									    $next_page = ($paginacorrente + 1);
    											$successiva = "<a href=\"?page=$next_page&cerca=$cerca\" title=\"Go to the next page\" id=\"next\">next -->></a>";
    									 }
    	                 echo "$precedente <p id=\"paginacorrente\">Pagina $paginacorrente di $numeropagine </p> $successiva";
    	 
    ?> 
              </br>
    					</br>
    					</br>
    					</br>
              <h1>©SketchMania</h1>
          <TD valign="top" class="spacer"></TD>
        </TR><TR> 
          <TD height="2" class="spacer2"></TD>
        </TR><TR> 
          <TD COLSPAN=3 class="creditsbg">
    				<p>| Contact us <a href="yahoo.com/" target="_blank">[email protected]</a> | </p>
    				</TD>
        </TR>
      </TABLE>
    </div>
    </BODY>
    </HTML>
    
    

    E' per un progetto, è la pagina che dovrebbe visualizzare gli utenti che risultano dopo una ricerca. Sapete qual'è il mio errore? Grazie infinite 🙂


  • ModSenior

    Ciao sappe,
    mi sembra che l'else alla riga 121 non abbia la chiusura della parentesi graffa.


  • User

    Grazie della risposta pronta 🙂 ora ho corretto ma l'errore persiste:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?php session_start(); ?>
    <HTML>
    <HEAD>
    <TITLE>Results</TITLE><link href="style.css" rel="stylesheet" type="text/css">
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    </HEAD>
    <BODY>
    <div align="center">
      <TABLE class="maintable" CELLPADDING="0" CELLSPACING="0" summary="">
        <TR> 
          <TD COLSPAN=3> <IMG SRC="images/index_01.gif" WIDTH=727 HEIGHT=240 ALT=""></TD>
        </TR>
        <TR> 
          <TD ROWSPAN=2 class="navbg" valign="top"><div id="nav">
              <p><span class="h2">Menu</span> <a href="index.php">Home</a> <a href="rules.php">Rules</a> 
                <a href="gallery.php">Gallery</a> <a href="upload.php">Upload</a> <a href="search.php">Search</a>
                 </p></div>
    						
             
    					
    <?php 
    if ((isset($_SESSION['login']))&&((isset($_SESSION['password'])))){
       echo <<<print
    	 
    	 <p><span class="h2">Logout</span> <a href="profile.php">Your Profile</a> <a href="logout.php">Logout</a><span class="endbox"></span> </p>
             <p><span class="h2">Friendship</span> <a href="users.php">Search user</a> <a href="friend.php">My friends</a> <a href="request.php">Friends request</a> <span class="endbox"></span> </p>
    print;
    }
    else {
       echo <<<print
    	 
    	 <p><span class="h2">Sign in</span> <a href="create.html">Create account</a> <a href="login.htm">Login</a><span class="endbox"></span> <span class="endbox"></span> </p>
    print;
    }
    echo <<<print
    
     </p>
            </div></TD>
          <TD ROWSPAN=2 class="contentbg" valign="top"><div id="content">
              
    print;
    
     ?>
               <h1>Results</h1>
    <?php
    include("connessione.inc");
    $conta=0;
    if (isset($_GET['search'])){ 
       $search=$_GET['search'];
    } 
    		else {
    		   $search = "WHERE utenti.IDutente != '$IDuser' ";
    			 }
    if (isset ($_POST['nickname'])!= '') { 
       $nickname = addslashes(htmlentities($_POST['nickname']));
    	 $search = $search."and Nickname LIKE '%".$nickname."%' ";
    }
    if (isset ($_POST['name'])!= '') { 
       $name = addslashes(htmlentities($_POST['name']));
    	 $search = $search."and Name LIKE '%".$name."%' ";
    }
    if (isset ($_POST['surname'])!= '') { 
       $surname = addslashes(htmlentities($_POST['surname']));
    	 $search = $search."and Surname LIKE '%".$surname."%' ";
    }
    if (isset ($_POST['place'])!= '') { 
       $place = addslashes(htmlentities($_POST['place']));
    	 $search = $search."and LuogoNascita LIKE '%".$place."%' ";
    }
    if (isset ($_POST['sketch'])!= '') { 
       $conta++;                              
    	 $interest1 = addslashes(htmlentities($_POST['sketch']));
    	 $search = $search."and Interesse1 LIKE '%".$sketch."%' ";
    }
    if (isset ($_POST['art'])!= '') { 
       $conta++;                              
    	 $interest2 = addslashes(htmlentities($_POST['art']));
    	 $search = $search."and Interesse2 LIKE '%".$art."%' ";
    }
    if (isset ($_POST['painting'])!= '') { 
       $conta++;                              
    	 $interest3 = addslashes(htmlentities($_POST['painting']));
    	 $search = $search."and Interesse3 LIKE '%".$painting."%' ";
    }
    if (isset ($_POST['music'])!= '') { 
       $conta++;                              
    	 $interest4 = addslashes(htmlentities($_POST['music']));
    	 $search = $search."and Interesse4 LIKE '%".$music."%' ";
    }
    if (isset ($_POST['games'])!= '') { 
       $conta++;                              
    	 $interest5 = addslashes(htmlentities($_POST['games']));
    	 $search = $search."and Interesse5 LIKE '%".$games."%' ";
    }
    if (isset ($_POST['book'])!= '') { 
       $conta++;                              
    	 $interest6 = addslashes(htmlentities($_POST['book']));
    	 $search = $search."and Interesse6 LIKE '%".$book."%' ";
    }
    if (isset ($_POST['photography'])!= '') { 
       $conta++;                              
    	 $interest7 = addslashes(htmlentities($_POST['photography']));
    	 $search = $search."and Interesse7 LIKE '%".$photography."%' ";
    }
    if (isset ($_POST['film'])!= '') { 
       $conta++;                              
    	 $interest8 = addslashes(htmlentities($_POST['film']));
    	 $search = $search."and Interesse8 LIKE '%".$film."%' ";
    }
    if (isset ($_POST['other'])!= '') { 
       $conta++;                              
    	 $interest9 = addslashes(htmlentities($_POST['other']));
    	 $search = $search."and Interesse9 LIKE '%".$other."%' ";
    }
    $sql="SELECT * FROM (utenti) $search";
    $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
    $lines=mysql_num_rows($res);
    if ($lines = 0){
       echo "There isn't user with that name!";
    }
    else {
       $recordperpagina=5;//numero di record per pagina
    	 $numeropagine=ceil($lines / $recordperpagina);
    {
    	 if (isset ($_GET['page'])){ 
    	 $paginacorrente = $_GET['page'];
    	 }
    	    else { 
    			$paginacorrente = 1;
    	    }
    	    $primolimit = ($paginacorrente - 1)* $recordperpagina;
    
    	 $sql="SELECT * FROM (utenti) $search ORDER BY utenti.Nickname LIMIT $primolimit, $recordperpagina";
       $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
       while ($records=mysql_fetch_assoc($res)) { 
    	 echo "$record[Nickname];</br>$record[Name];</br>$record[Surname]";
    }
    	 
    if ($paginacorrente == 1){
    						          $precedente = "";
    						       }
    						       else {
    						          $previous_page = ($paginacorrente - 1);
    							        $precedente = "<a href=\"?page=$previous_page&search=$search\" title=\"Go to the previous page\" id=\"previus\"><<-- previous</a>";
    						       }
    						       if($paginacorrente == $numeropagine){
    						          $successiva = "";
    									 }
    									 else {
    									    $next_page = ($paginacorrente + 1);
    											$successiva = "<a href=\"?page=$next_page&search=$search\" title=\"Go to the next page\" id=\"next\">next -->></a>";
    									 }
    	                 echo "$precedente <p id=\"paginacorrente\">Pagina $paginacorrente di $numeropagine </p> $successiva";
    	 
    ?> 
              </br>
    					</br>
    					</br>
    					</br>
              <h1>?SketchMania</h1>
          <TD valign="top" class="spacer"></TD>
        </TR><TR> 
          <TD height="2" class="spacer2"></TD>
        </TR><TR> 
          <TD COLSPAN=3 class="creditsbg">
    				<p>| Contact us <a href="yahoo.com/" target="_blank">[email protected]</a> | </p>
    				</TD>
        </TR>
      </TABLE>
    </div>
    </BODY>
    </HTML>
    

    Altri errori di sintassi non riesco a trovarne, punti e virgola, parentesi e altro mi sembrano a posto :S
    In fondo noto questo cambiamento di colore (qui l'immagine): i56.tinypic.com/35ichh0.jpg
    indica forse altri tipi di errore che possono essere la causa del non funzionamento?


  • ModSenior

    La riga 122 non ha la chiusura della parentesi graffa, mentre a riga 125 non capisco perchè sia stata aperta(Oltre che successivamente non chiusa).
    Sarebbe comunque buona norma indentare un pò meglio il codice, oltre che testare durante lo sviluppo quando si hanno questi problemi di ordine del codice.


  • User

    Grazie della risposta e della pazienza, ero in uno stato confusionale dalla stanchezza e non ci capivo più nulla xDDD appena me ne sono accorta e ho risolto mi sarei presa a patte sulla testa!
    Ho un altro problema, relativo al database. Nella pagina di richiesta amicizia (quando un utente clicca quindi per richiedere l'amicizia) mi viene questo errore:

    Error!Cannot add or update a child row: a foreign key constraint fails (`progetto`.`amicizie`, CONSTRAINT `amicizie_ibfk_2` FOREIGN KEY (`Receiver`) REFERENCES `utenti` (`IDutente`) ON DELETE CASCADE ON UPDATE CASCADE)
    

    Il database è questo:
    mediafire.com/?j0b4sujt2twja3t
    Il mio codice php è questo:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?php session_start(); ?>
    <HTML>
    <HEAD>
    <TITLE>Friend Request</TITLE><link href="style.css" rel="stylesheet" type="text/css">
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    </HEAD>
    <BODY>
    <div align="center">
      <TABLE class="maintable" CELLPADDING="0" CELLSPACING="0">
        <TR> 
          <TD COLSPAN=3> <IMG SRC="images/index_01.gif" WIDTH=727 HEIGHT=240 ALT=""></TD>
        </TR>
        <TR> 
          <TD ROWSPAN=2 class="navbg" valign="top"><div id="nav">
              <p><span class="h2">Menu</span> <a href="index.php">Home</a> <a href="rules.php">Rules</a> 
                <a href="gallery.php">Gallery</a> <a href="upload.php">Upload</a> <a href="search.php">Search</a>
                <span class="endbox"></span> </p>
    						
             
    					
    <?php 
    if ((isset($_SESSION['login']))&&((isset($_SESSION['password'])))){
       echo <<<print
    	 
    	 <p><span class="h2">Logout</span> <a href="profile.php">Your Profile</a> <a href="logout.php">Logout</a><span class="endbox"></span> </p>
             <p><span class="h2">Friendship</span> <a href="users.php">Search user</a> <a href="friend.php">My friends</a> <a href="request.php">Friends request</a> <span class="endbox"></span> </p>
    print;
    }
    else {
       echo <<<print
    	 
    	 <p><span class="h2">Sign in</span> <a href="create.html">Create account</a> <a href="login.htm">Login</a><span class="endbox"></span>
    print;
    }
    echo <<<print
    
     </p>
            </div></TD>
          <TD ROWSPAN=2 class="contentbg" valign="top"><div id="content">
              
    print;
    
     ?>
              <h1>Request:</h1>
    <p>
    <?php
    include("connessione.inc");
    $ID=$_GET["ID"];
    $user= $_SESSION ['login'];
    $sql= "SELECT IDutente from utenti WHERE Nickname = '$user'";
    $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
    while ($records=mysql_fetch_assoc($res)) { 
       $IDutente=$records['IDutente'];
    	 }
    	 echo "$ID </br> $IDutente";
    $query= "INSERT INTO amicizie (Sender,Receiver) VALUES ('$ID','IDutente')";
    $ress=mysql_query($query,$conn)or die("Error!".mysql_error());
    if ($ress != false){
    echo <<<MESS
    Your friends request è stato inoltrato.
    MESS;
    }
    else {
    echo "Error!";
    }
     ?>				
    </p>
              </br>
    					</br>
    					</br>
    					</br>
              <h1>©SketchMania</h1>
    			<TD valign="top" class="spacer"></TD>
        </TR><TR> 
          <TD height="2" class="spacer2"></TD>
        </TR><TR> 
          <TD COLSPAN=3 class="creditsbg">
    				<p>| Contact us <a href="yahoo.com/" target="_blank">[email protected]</a> | </p></TD>
        </TR>
      </TABLE>
    </div>
    </BODY>
    </HTML>
    

    Avete una qualche idea del perché non funziona? Grazie infinite!!


  • User Attivo

    Penso che questo:
    [php]$query= "INSERT INTO amicizie (Sender,Receiver) VALUES ('$ID','IDutente')";[/php]debba essere:
    [php]$query= "INSERT INTO amicizie (Sender,Receiver) VALUES ('$ID','$IDutente')";[/php]Chiaramente dovresti usare mysql_real_escape_string per validare l'input prima di usarlo nelle tue query, così è molto rischioso...


  • User

    Non ci credo che mi sono fatta fregare da un errore così!!! O_O
    Ci ho messo qualche minuto prima di rendermi conto anche quale fosse la tua correzione xDD grazie mille! L'ho testato e funziona 😉 velocissimi e competentissimi come sempre!


  • User

    Ho un altro problema, spero che possiate aiutarmi! >_<
    Ho questa pagina:

    
    <h2>Frinds that are waiting for approval:</h2>
     <p>
    <?php 
    include("connessione.inc");
    $user= $_SESSION ['login'];
    $sql3= "SELECT IDutente from utenti WHERE Nickname = '$user'";
    $res3=mysql_query($sql3,$conn)or die("Error!".mysql_error());
    while ($records=mysql_fetch_assoc($res3)) { 
       $IDutente=$records['IDutente'];
    	 }
    $sql="SELECT * FROM utenti JOIN amicizie ON utenti.IDutente = amicizie.Receiver WHERE amicizie.Friend = '0' and amicizie.Receiver = '$IDutente'";
    $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
    $recordperpagina=3;
    $lines=mysql_num_rows($res);
    $tot_page=ceil($lines / $recordperpagina); //numero totale di pagine
    if (isset($_GET['page'])){ $paginacorrente = $_GET['page'];} else { $paginacorrente = 1;}  // pagina corrente				
    $primo = ($paginacorrente - 1) * $recordperpagina; //primo parametro LIMIT
    if ($lines == 0){//controllare variabile
    				    echo <<<MESS
    						   <table summary="norichiesta" id="richiesta">
    <tr>
    <td> You don't have any request for friendship.</td>
    </tr>
    </table>
    MESS;
     	
    }
    if ($lines >= 1) { 
    $sql="SELECT * FROM utenti JOIN amicizie ON utenti.IDutente = amicizie.Receiver WHERE (amicizie.Friend = '0' and amicizie.Receiver = '$IDutente') LIMIT $primo, $recordperpagina"; 
    $res=mysql_query($sql,$conn)or die("Error!".mysql_error());
       while ($records=mysql_fetch_assoc($res)){
       $sql2="SELECT Nickname FROM utenti WHERE IDutente = $records[Sender]";
    							 $res2=mysql_query($sql2,$conn) or die ("Errore!".mysql_error());
    						   while ($records2=mysql_fetch_assoc($res2)){
    							    $Sender = $records['Nickname'];
                   }
    							 echo <<<MESS
    						<table summary="richiesta" id="richiesta">
    <tr>
    <td>
    						You have a friend request from $Sender. Want to be his friend? 
    						<form action="friend.php?sender=$records[Sender]" id="accept" method="POST">
    						<input type="submit"  name="button" value="Accept" class="button"/>
    						<input type="submit" name="button" value="Refuse" class="button"/></form>
    
    </td>
    </tr>
    </table>
    MESS;
       }
    	 if ($paginacorrente == 1){
    						          $precedente = "";
    						       }
    						       else {
    						          $previous_page = ($paginacorrente - 1);
    							        $precedente = "<a href=\"?page=$previous_page\" title=\"See other request\" id=\"previus\"><<-- previous</a>";
    						       }
    						       if($paginacorrente == $tot_page){
    						          $successiva = "";
    									 }
    									 else {
    									    $next_page = ($paginacorrente + 1);
    											$successiva = "<a href=\"?page=$next_page\" title=\"Go back\" id=\"next\">next -->></a>";
    									 }
    	                 echo "$precedente <p id=\"paginacorrente\">Page $paginacorrente of $tot_page </p> $successiva";
    } //chiude if ($lines >= 1)
    
    ?>
    	
     </p>
    

    in pratica mi deve dire se l'utente registrato accetta la richiesta di amicizia da parte di un altro utente, ma visualizza il nickname dell'utente stesso che chiede la richiesta a se stesso!!
    Sender è colui che ha inviato la richiesta, e receiver colui che la riceve, in questo caso l'utente connesso. Nel database è tutto a posto, se faccio la prova e invio una richiesta l'id di sender è di colui che invia la richiesta, allora perché mi stampa il ricevente?
    Grazie in anticipo delle risposte!!


  • ModSenior

    Ciao sappe,
    dovrei aprire una discussione separata poichè la domanda non è attinente alla discussione che riguarda un errore di sintassi.