Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [PHP 4+ MySQL]Parse Error ed altri ignoti...

    Ho incominciato da poco a studiare il php, ma pur non essendo difficilissimo mi lascia stupefatto nel vedere che trova degli errori che non riesco a capire a cosa sono dovuti. Quello che mi appare sempre è:
    codice:
    Parse error: parse error, unexpected '=', expecting '}' in c:\programmi\easyphp1-7\www\iscriviti.php on line 27
    Questo script è stato copiato pari pari da un libro il quale lo spaccia per eccellente....dov'è che ho sbagliato?? Non riesco proprio a raccapezzarmi

    codice:
    <?php
      include("conf.inc.php");
      if(!$invia)
        {echo <<<EOD
    	<h1 align=center>
    	Il tuo nome utente non è stato trovato nel database
    	
    Registrati
    </h1>
    	<form method=post>
    	 <table width 85% border=1 align=center>
    		<tr><td>Nome</td>
    		    <td><input type="text" name="nome"></td>
    		</tr>
    		<tr><td>Email</td>
    		    <td><input type="text" name="email"></td>
    		</tr>
    		<tr><td>Password</td>
    		    <td><input type="password" name="passwd"></td>
    		</tr>
    		<tr><td align=right><input type="submit" name="invia"></td>
    		    <td align=left><input type="reset"></td>
    		</tr>
    	</table>
           </form>
         EOD;
        }
      else
        {$sql="select * from $tabella where nome='$nome'";
         $query=mysql_query($sql)or die(errore_server());
         $num=mysql_numrows($query);
         if($num==1)
           {echo "Nome utente già occupato
    ";
    	echo "<a href=\"javascript:history.back()\">ritenta</a> con un altro username";
           }
         else
           {$ip=$REMOTE_ADDR;
    	$sql= "INSERT INTO $tabella (id, nome, email, password, data, ip) VALUES 
    
    ('','$nome','$email','$passwd','$data','$ip')";
    	$query=mysql_query($sql)or die(errore_server());
    	echo "dati inseriti correttamente
    ;
    
    /*QUI CI SAREBBE IL CODICE PER SPEDIRE LE MAIL di conferma
            [...]*/
           }
        }
    ?>
    Moltissime grazie!

    EDIT:
    Aggiungo una piccola cosa...leggendo alcuni manuali e tutorial, mi sembrava di aver capito che esistono variabili che si inizializzano automaticamente (parole chiave se non erro)...allora perché ho sempre di questi errori???
    codice:
    Notice: Undefined variable: PHP_AUTH_USER in c:\programmi\easyphp1-7\www\index.php on line 10
    
    Notice: Undefined variable: PHP_AUTH_PW in c:\programmi\easyphp1-7\www\index.php on line 10
    Grazie di nuovo

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    Lascia uno spazio dopo l'apertura della } qdo fai un assegnamento...anke se sarebbe buona cosa lasciarlo sempre.
    Stessa cosa x la linea 35

    { $sql="select * from $tabella where nome='$nome'";

  3. #3
    Ohibò è proprio vero... Che cavolata....ora però ce ne è uno peggiore...
    codice:
    Parse error: parse error, unexpected $end in c:\programmi\easyphp1-7\www\iscriviti.php on line 43

  4. #4
    Controlla la sintassi heredoc....

    codice:
        {echo <<<EOD
    	<h1 align=center>
    	Il tuo nome utente non è stato trovato nel database
    	
    Registrati
    </h1>
    	<form method=post>
    	 <table width 85% border=1 align=center>
    		<tr><td>Nome</td>
    		    <td><input type="text" name="nome"></td>
    		</tr>
    		<tr><td>Email</td>
    		    <td><input type="text" name="email"></td>
    		</tr>
    		<tr><td>Password</td>
    		    <td><input type="password" name="passwd"></td>
    		</tr>
    		<tr><td align=right><input type="submit" name="invia"></td>
    		    <td align=left><input type="reset"></td>
    		</tr>
    	</table>
           </form>
         EOD;
    e vedi quali sono le caratteristiche che non rispetta il tuo script.

    http://it.php.net/manual/it/language...syntax.heredoc

    $PHP_AUTH_USER e l'amico, da un notice perche' al momento dell'uso non son ancora stati definiti.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Grazie...non avevo notato il MUST...ma anche allineando tutto l'errore $end rimane...ricontrollo ancora l'EOD (Secondo te quindi l'errore è lì dentro.....) Ti troverò dovessi riscriverti in eterno...

    Per quanto riguarda il PHP_AUTH_USER & friend quando e come vanno definiti?? Fai conto che vengono chiamati nell'index.php subito dopo il login...(credo... :master: )
    codice:
    <?
      if(!isset($PHP_AUTH_USER))
        {
         header('WWW-Authenticate: Basic realm="Area prvata"');
         header('HTTP/1.0 401 Unauthorized');
         echo "Richiesta autorizzazione";
         exit;
        }
      else
        {
         include("conf.inc.php");
         $sql="SELECT id FROM $tabella WHERE nome='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'";
         $query=mysql_query($sql)or die(errore_server());
         $num=mysql_numrows($query);
         if($num==1)
           {
    	echo "
    
    Ok, sei autorizzato
    ";
            echo "Il tuo nome utente è $PHP_AUTH_USER
    ";
            echo "La tua password è $PHP_AUT_PW</P>";
           }
         else if($num==0)
                {
    	     echo "Nome utente o password non validi
    ";
                 echo "<a href=\"iscriviti.php\">iscriviti<a>";
                }
        }
    ?>

  6. #6
    L'errore unexpected $end te lo sei creato tu togliendo una graffa... rimetti quello che hai tolto.

    Il notice dallo script che hai postato per ultimo non dovrebbe venire... perche' se non settato usciresti con exit. Da dove arriva? via POST o GET?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da piero.mac
    L'errore unexpected $end te lo sei creato tu togliendo una graffa... rimetti quello che hai tolto.
    Non ho tolto nessuna graffa...ho semplicemente fatto "invio" dopo ogni graffa (per evitare l'errore di prima)

    Originariamente inviato da piero.mac
    Il notice dallo script che hai postato per ultimo non dovrebbe venire... perche' se non settato usciresti con exit. Da dove arriva? via POST o GET?
    Bhé... ...come l'ho capito io teoricamente si parte direttamente da qui: la variabile $PHP_AUTH_USER la cerca nell'header....cribbio...mi ero dimenticato di scrivere getallheaders();


    L'ho fatto ma dà un sacco di errori...anzi no! Sono 2 ripetuti moltissime volte...

  8. #8
    Se prima non ti dava quell'errore ed ora si, rimetti tutto come era prima, andava bene. Avevi un errore di heredoc perche' hai degli spazi di indentazione. L'avvertenza nel link che ti ho postato parla chiaro.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Appunto....mi dava l'errore per quegli spazi dopo le graffe....li ho messi e da allora ha inserito il $end....non so proprio come fare...

  10. #10
    Originariamente inviato da Ephestus
    Appunto....mi dava l'errore per quegli spazi dopo le graffe....li ho messi e da allora ha inserito il $end....non so proprio come fare...
    NO.....

    Torna al tuo primo post.

    L'errore era per la stringa HEREDOC. EOD; NON deve avere spazi ne prima ne dopo. Tu ne hai prima per l'indentazione. Toglili.


    Poi hai modificato cose che invece andavano bene ed ora invece, dopo la tua modifica non vanno piu'. Heredoc con le graffe NON c'entra. Cosi' come non servono gli spazi prima o dopo le graffe della if. Servono a migliorare la leggibilita' non la funzionalita'.

    Per il resto leggiti il manuale.... forse devi cambiare qualcosa perche' obsoleto nello script che usi.

    http://www.php.net/manual/it/features.http-auth.php


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.