Parse error PHP

di il
5 risposte

Parse error PHP

Buongiorno, sono nuovo di questo forum e ringrazio per l'approvazione. Espongo subito il problema: sto cercando di creare un sistema di registrazione/login in php per il mio sito web. Sono un neofita, ho cercato qua e là sul web, ho trovato e sto modificando questo codice. Ma non vengo a capo dell'errore: Parse error: Unmatched '}' in C:\xampp\htdocs\test2\register.php on line 35.
Qualcuno può aiutarmi a capire dov'è l'errore? Uso Brackets come editor
P.S.: In allegato screenshot per riconoscere la riga 35
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>YodAlex_Login</title>
	<link rel="stylesheet" type="text/css" href="../css/yoda.css" />
	<script src="../js/jquery-1.6.4.min.js" type="text/javascript"></script>
</head>
<body>
	<div id="container">
		<?php
		if (!(isset($_POST['invia_dati']))) {
              ?>
	<form action="" method="post">
		  Username: <input type="text" name="username" /><br />
		  Password: <input type="password" name="pass1" /><br />                                            
          Ripeti Password: <input type="password" name="pass2" /><br />
		  E-Mail: <input type="submit" name="mail" /><br />
		  <input type="submit" name="invia_dati" value="REGISTRATI" />
        </form>
    <?php
        } else {
            $username = $_POST['username'];
            $pass1 = $_POST['pass1'];
            $pass2 = $_POST['pass2'];
            $mail = $_POST['mail'];
        
                
            }
            
            if($username == "" || $pass1 == "" || $pass2 == "" || $mail == "") {
                echo "Devi compilare tutti i campi";
            } else if($pass1 != $pass2)
                echo "Le password devono coincidere"; 
            } else {
                mysql_connect("\localhost", "root", "root") or die(mysql_error());
                mysql_select_db("miei_utenti") or die(mysql_error());
                $query = mysql_query("INSERT into utenti" (username, password, email) VALUES ('$username', '$pass1', '$email')");
                if ($query)
                echo "Registrazione Effettuata" :<br /><a href='login.php'>ENTRA</a>";
        }
        ?>
	</div>	
</body>
</html>

Allegati:
30298_abd2cf77f10ab78ce084c0759ad3b045.png
30298_abd2cf77f10ab78ce084c0759ad3b045.png

5 Risposte

  • Re: Parse error PHP

    In else if devi aprire la parentesi {
    Benvenuto
  • Re: Parse error PHP

    Grazie del benvenuto

    Hormus ha scritto:


    In else if devi aprire la parentesi {
    Benvenuto
    } else { if($pass1 != $pass2)

    Corretto?
  • Re: Parse error PHP

    Dopo la parentesi tonda di chiusura
    } else if($pass1 != $pass2) {
  • Re: Parse error PHP

    Hormus ha scritto:


    Dopo la parentesi tonda di chiusura
    } else if($pass1 != $pass2) {
    Don't send me to hell please


    Parse error: syntax error, unexpected identifier "VALUES", expecting ")" in C:\xampp\htdocs\test2\register.php on line 38
  • Re: Parse error PHP

    <?php
    
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>YodAlex_Login</title>
    	<link rel="stylesheet" type="text/css" href="../css/yoda.css" />
    	<script src="../js/jquery-1.6.4.min.js" type="text/javascript"></script>
    </head>
    <body>
    	<div id="container">
    		<?php
    		if (!(isset($_POST['invia_dati']))) {
            $username = $pass1 = $pass2 = $mail = '';
                  ?>
    	<form action="" method="post">
    		  Username: <input type="text" name="username" /><br />
    		  Password: <input type="password" name="pass1" /><br />                                            
              Ripeti Password: <input type="password" name="pass2" /><br />
    		  E-Mail: <input type="text" name="mail" /><br />
    		  <input type="submit" name="invia_dati" value="REGISTRATI" />
            </form>
        <?php
            } else {
                if(isset($_POST['username'])) {
                $username = $_POST['username'];
                }
                if(isset($_POST['pass1'])) {
                $pass1 = $_POST['pass1'];
                }
                if(isset($_POST['pass2'])) {
                $pass2 = $_POST['pass2'];
                }
                if(isset($_POST['mail'])) {
                $mail = $_POST['mail'];
                }
            
                    
                
                if($username == "" || $pass1 == "" || $pass2 == "" || $mail == "") {
                    echo "Devi compilare tutti i campi";
                } else if($pass1 != $pass2) {
                    echo "Le password devono coincidere"; 
                } else {
                    mysql_connect("\localhost", "root", "root") or die(mysql_error());
                    mysql_select_db("miei_utenti") or die(mysql_error());
                    $query = mysql_query("INSERT into utenti (username, password, email) VALUES ('$username', '$pass1', '$email')");
                    if ($query)
                    echo "Registrazione Effettuata :<br /><a href='login.php'>ENTRA</a>";
                }
            }
            ?>
    	</div>	
    </body>
    </html>
    Aggiunto apertura e chiusura file php, type text per mail e gestisco correttamente una stringa php racchiusa da apici doppi, ho creato quattro variabili con scope globale (è una buona pratica), poi dovrai riflettere perché non puoi salvare il testo in chiaro nel tuo database ma devi utilizzare l'hash della password.
    Magari alla fine quando sei pronto devi sanificare/validare l'input esterno altrimenti ti hackerano il sito prima o poi.
Devi accedere o registrarti per scrivere nel forum
5 risposte