Aiuto su registrazione sito

clarkantony

Nuovo Utente
16 Set 2010
3
0
0
Salve a tutti. Sto cercando di capire perchè mi compare questo errore:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files (x86)\easyphp1-8\www\registrazione.php on line 47

in questo codice:



<!--registrazione.php>

<!--Codice che permette di registrarsi al sito>

<Doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>REGISTRAZIONE</title>
</head>
<body>
<p>Compila il modulo sottostante<br></p>
<?php
include(header.php);
require_once(config.php);
if(isset($HTTP_POST_VARS["submit"]))
{
if(!$_POST["username"])
{
exit("Attenzione!il campo username è vuoto");
}
if(!$_POST["email"])
{
exit("Attenzione!il campo email è vuoto");
}
if(!$_POST["nome"])
{
exit("Attenzione!il campo nome è vuoto");
}
if(!$_POST["cognome"])
{
exit("Attenzione!il campo cognome è vuoto");
}
if(!$_POST["indirizzo"])
{
exit("Attenzione!il campo indirizzo è vuoto");
}
if(!$_POST["luogo"])
{
exit("Attenzione!il campo luogo è vuoto");
}
if(!$_POST["provincia"])
{
exit("Attenzione!il campo provincia è vuoto");
}
$q2=mysql_query("SELECT * FROM utenti WHERE username=$_POST[\"username\"]);
$q3=mysql_fetch_object("$q2");
if($q3["username"]==$_POST["username"])
{
exit("Siamo spiacenti ma l\'username \"$q3["username"]\" è già attivo nel nostro database.Per favore ne scenga un altro");
}
if(!$_POST["password"])
{
exit("Attenzione!il campo password è vuoto");
}
if(!$_POST["verifica_password"])
{
exit("Attenzione!il campo per la verifica della password è vuoto");
}
if($_POST["password"]!=$_POST["verifica_password"])
{
exit("Attenzione! Le password non corrispondono");
}
$insert=mysql_query("INSERT INTO utenti (username,password,email,nome,cognome,indirizzo,luogo,provincia,nascita) VALUES (\"$_POST[\"username\"]\",\"md5$_POST[\"password\"]\",\"$_POST[\"email\"]\",\"$_POST[\"nome\"]\",\"$_POST[\"cognome\"]\",\"$_POST[\"indirizzo\"]\",\"$_POST[\"luogo\"]\",\"$_POST[\"provincia\"]\",\"$_POST[\"nascita\"]\"));

//md5 davanti a $_POST[\"password\"] serve a garantire maggiore sicurezza

if(!$insert)
{
exit ("Errore:".mysql_error());
}
$web_site="miosito.com";
$web_master="Antonio Marramao";
$web-mail="antonio.marramao@libero.it";
$nome_utente=$_POST["username"];
$mail_utente=$_POST["email"];
$pass_utente=$_POST["password"];
$header="Da \".$web_site\".<.\"$web_mail.\">\r\n";
$subject="Dettagli di registrazione";
$message="Gentile \".$nome_utente\"., da adesso sei un utente registrato su \".$web_site\".\r\n Per usufruire dei nostri servizi devi semplicemente inserire questi dati nel login apposito:\r\n Username:\".$nome_utente\".\r\n Password: \"$pass_utente\".\r\n Conserva queste informazioni o meglio ancora stampa questa email.\r\n Grazie infinite \r\n \".$web_master\".";
mail($mail_utente,$subject,$message,$header);
echo("Registrazione avvenuta, benvenuto!\r\n Le informazioni che ci hai fornito ti sono state spedite via email");
}
else
{
?>
<form action=" <?php $_SERVER[PHP_SELF];?>" method="post" name="signup" id="signup">
<table>
<tr><td>Scegli un username:</td><td><input type="text" name="username" size="12" maxlenght="12"></td></tr>
<tr><td>Scegli una password:</td><td><input type="password" name="password" size="12" maxlenght="12"></td></tr>
<tr><td>Conferma password:</td><td><input type="password" name="verifica_password" size="12" maxlenght="12"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email" size="12" maxlenght="40"></td></tr>
<tr><td>Nome:</td><td><input type="text" name="nome" size="12" maxlenght="40"></td></tr>
<tr><td>Cognome:</td><td><input type="text" name="cognome" size="12" maxlenght="40"></td></tr>
<tr><td>Indirizzo:</td><td><input type="text" name="indirizzo" size="12" maxlenght="40"></td></tr>
<tr><td>Luogo:</td><td><input type="text" name="indirizzo" size="12" maxlenght="20"></td></tr>
<tr><td>Provincia:</td><td><select name="provincia">
<?php
$province=mysql_query("SELECT * FROM province")
if(!$elenco_province)
{
exit("Errore:".mysql_error());
}
while($elenco_province=mysql_fetch_array($province))
{
$id_provincia=$elenco_province["id"];
$nome_provincia=$elenco_province["nome"];
echo ("<option value=\$id_provincia\">$nome_provincia</option>\n";
}
?>
</select></td></tr>
<tr><td>Data di nascita:</td><td><select name="giorno">
<?php
for($i=1;$i<32;$i++)
{
echo ("<option value=\"$i\">$i</option>\n");
}
?>
</select></td>
<select name="mese">
<?php
for($i=1;$i<13;$i++)
{
echo ("<option value=\"$i\">$i</option>\n");
}
?>
</select></td>
<select name="anno">
<?php
for($i=1901;$i<2011;$i++)
{
echo ("<option value=\"$i\">$i</option>\n");
}
?>
</select></td></tr>
<tr><td celspan="2" align="center"><input type="submit" value="iscriviti" name="invio"></td></tr>
</table>
</form>
<?php
}
?>
</body>
</html>


Il codice dovrebbe permettere di effettuare la registrazione al sito compilando l'apposito form e salvando il tutto nel database.
 
metti il codice tra i tag
PHP:
 e
perfavore .
il codice è scritto malissimo
troppi if else
cerca di utilizzare lo switch oppure un elseif o direttamente una classe di controllo errori (moolto meglio)

e poi easy php non è molto efficente ti consiglio di scaricare e usare XAMPP
 
ti consiglio di cambiare stile nel digitare il codice, ad esempio non:
PHP:
$q2=mysql_query("SELECT * FROM utenti WHERE username=$_POST[\"username\"]);
$q3=mysql_fetch_object("$q2");
ma
PHP:
$q2=mysql_query("SELECT * FROM utenti WHERE username=".$_POST['username']);
$q3=mysql_fetch_object($q2);
Poi non credo volessi scrivere:
PHP:
md5$_POST[\"password\"]
ma
PHP:
md5($_POST["password"])
 
Ultima modifica:
Comunque dando uno sguardo veloce hai anche digitato erroneamente la tabella luogo nella query di inserimento -

....mysql_insert into(
email,nome,cognome,indirizzo,lu ogo,provincia,nascita)...

Ritengo inoltre che sia fastidioso per l'utente dover ridigitare nuovamente i campi in caso di errore.
Poi potresti utilizzare la funzione onblur() di javascript per far comparire un messaggio di errore nel caso che l'utente abbia compilato erroneamente un campo.

Oppure per controllare i campi potresti usare una funzione - ad esempio (ovviamente per i campi particolari come email numeri userai altre funzioni):

Codice:
[COLOR="red"]function controllo[/COLOR]([COLOR="blue"]$dati,$campo[/COLOR]){
if($dati==''){echo [COLOR="royalblue"][I]"<script>x=document.getElementById('.$campo.');
x.style.visibility=true;'</script>"[/I][/COLOR];//Fai conto di avere già un div di nome $campo impostato con visibilità falsa
}

$nome=$_POST['name'];
[COLOR="red"]controllo[/COLOR]([COLOR="blue"]$nome,$campo[/COLOR]);
 
Ultima modifica:

Discussioni simili