- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema registrazione
-
Ok grazie, su altervista continua a non darmi errori, mentre in locale, aggiungendo quella riga mi da l'errore su queste righe: (anche se nn riesco proprio a capire dove sbaglio XD)
$nickname= $_post['Nickname'];
$email= $_post['Email'];
$password= $_post['Password'];Notice: Undefined variable: _post in C:\WM\www\Progetto\registrazione.php on line 29
Notice: Undefined variable: _post in C:\WM\www\Progetto\registrazione.php on line 30
Notice: Undefined variable: _post in C:\WM\www\Progetto\registrazione.php on line 31
-
Ciao eretis,
Devi usare $_POST non $_post.
PHP è case sensitive.
-
Che sbadato lol!!!
Ho modificato...ed è cambiato l'errore...ci avviciniamo alla soluzione
php:
**$nickname= $_POST[
Nickname
];
$email= $_POST[Email
];
$password= $_POST[Password
];**errori:Notice: Undefined index: in C:\WM\www\Progetto\registrazione.php on line 29
Notice: Undefined index: in C:\WM\www\Progetto\registrazione.php on line 30
Notice: Undefined index: in C:\WM\www\Progetto\registrazione.php on line **31
Ho provato " ' `, e ho controllato che nella form Nickname, Email e Password sono scritti con la prima lettera maiuscola.............
**
-
Cosi dovrebbe funzionare:
[php]
$nickname= $_POST['Nickname'];
$email= $_POST['Email'];
$password= $_POST['Password'];
[/php]
-
Ciao!
Dark, secondo me solo
[php]$nickname= $_POST['Nickname'];
$email= $_POST['Email'];
$password= $_POST['Password']; [/php]
non può funzionare...
E' vero che ci sono i backticks , però si potrebbe totalmente eliminare l'errore così:
[php] <html>
<head>
<title>Registrazione</title>
<link rel=stylesheet href="css/stylesito.css" type="text/css">
</head>
<body>
<a href="index.php">Home Page</a><br>
<a href="ilgioco.php">Il Gioco</a><br>
<text class="linkdellapaginavisualizzata">Registrazione</text><br>
<a href="">Forum</a><br>
<center><form id="registrazione" action="registrazione.php" method="post" name="registrazione">
nickname:<input type="text" name="Nickname" value="">
<p>email:<input type="text" name="Email" value=""></p>
<p>password:<input type="password" name="Password" value=""></p>
<p><input type="submit" value="Registrati"></p>
</form></center><?php
if(isset($_POST)){
$DBhost= "localhost";
$DBuser= ".........."; //naturalmente in quello originale i dati sono inseriti
$DBpass= "..........";
$DBname= "....................";$link= mysql_connect($DBhost,$DBuser,$DBpass,$DBname) or die("impossibile collegarsi al server");
$link1= mysql_select_db($DBname,$link) or die("impossibile connettersi al database");
$nickname= $_POST['Nickname'];
$email= $_POST['Email'];
$password= $_POST['Password'];
@mysql_query($nickname,$email,$password) or die(mysql_error());
$sql= "INSERT INTO lista_utenti(nickname, email, password) values ('$nickname', '$email', '$password')";mysql_query($sql) or die(mysql_error());
@mysql_close($link);
}?>
</body>
</html>[/php]Ciao!!!
-
Ciao,
Il controllo restituisce sempre TRUE, anche accedendo direttamente alla pagina.
La variabile essendo globale è sempre definita.
Al massimo bisognerebbe fare un controllo che uno degli input sia definito.
-
@Thedarkita said:
Ciao,
Il controllo restituisce sempre TRUE, anche accedendo direttamente alla pagina.
Hai ragione:D
Allora si risolve così:
[PHP]
<html>
<head>
<title>Registrazione</title>
<link rel=stylesheet href="css/stylesito.css" type="text/css">
</head>
<body>
<a href="index.php">Home Page</a><br>
<a href="ilgioco.php">Il Gioco</a><br>
<text class="linkdellapaginavisualizzata">Registrazione</text><br>
<a href="">Forum</a><br>
<center><form id="registrazione" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="registrazione">
nickname:<input type="text" name="Nickname" value="">
<p>email:<input type="text" name="Email" value=""></p>
<p>password:<input type="password" name="Password" value=""></p>
<p><input type="submit" name = "submit" value="Registrati"></p>
</form></center><?php
if(isset($_POST['submit'])){
$DBhost= "localhost";
$DBuser= ".........."; //naturalmente in quello originale i dati sono inseriti
$DBpass= "..........";
$DBname= "....................";$link= mysql_connect($DBhost,$DBuser,$DBpass,$DBname) or die("impossibile collegarsi al server");
$link1= mysql_select_db($DBname,$link) or die("impossibile connettersi al database");
$nickname= $_POST['Nickname'];
$email= $_POST['Email'];
$password= $_POST['Password'];
@mysql_query($nickname,$email,$password) or die(mysql_error());
$sql= "INSERT INTO lista_utenti(nickname, email, password) values ('$nickname', '$email', '$password')";mysql_query($sql) or die(mysql_error());
@mysql_close($link);
}?>
</body>
</html>
[/PHP]
-
Voglio fare il pignolo
Molto spesso IE, quando premi invio invece di cliccare sul pulsante submit, non invia la variabile globale POST del submit.
Sarebbe meglio fare il controllo su uno degli input per evitare ciò.Mi sono accorto di questo codice:
[php]
@mysql_query($nickname,$email,$password) or die(mysql_error());
[/php]Che dovrebbe generare errore, non mi sembra abbia senso.
Sconsiglio anche l'uso della @, che nasconde gli errori non consentendoti di sistemarlo in fase di testing.
-
Ciao dark...
Grazie della pignoleria!:D
Usando firefox non mi sono mai accorto di questo difetto di IE...
Quindi, il codice(pulito) dovrebbe essere così:[PHP]<html>
<head>
<title>Registrazione</title>
<link rel=stylesheet href="css/stylesito.css" type="text/css">
</head>
<body>
<a href="index.php">Home Page</a><br>
<a href="ilgioco.php">Il Gioco</a><br>
<text class="linkdellapaginavisualizzata">Registrazione</text><br>
<a href="">Forum</a><br>
<center><form id="registrazione" action="registrazione.php" method="post" name="registrazione">
nickname:<input type="text" name="Nickname" value="">
<p>email:<input type="text" name="Email" value=""></p>
<p>password:<input type="password" name="Password" value=""></p>
<p><input type="submit" value="Registrati"></p>
</form></center><?php
if(isset($_POST['Nickname'])){
$DBhost= "localhost";
$DBuser= ".........."; //naturalmente in quello originale i dati sono inseriti
$DBpass= "..........";
$DBname= "....................";$link= mysql_connect($DBhost,$DBuser,$DBpass,$DBname) or die("impossibile collegarsi al server");
$link1= mysql_select_db($DBname,$link) or die("impossibile connettersi al database");
$nickname= $_POST['Nickname'];
$email= $_POST['Email'];
$password= $_POST['Password'];$sql= "INSERT INTO lista_utenti(nickname, email, password) values ('$nickname', '$email', '$password')";
mysql_query($sql) or die(mysql_error());
@mysql_close($link);
}?>
</body>
</html>[/PHP]
-
Ciao ragazzi, grazie di tutto..funziona alla perfezione!!
Ora è una registrazione molto semplice..cercherò di fare in modo di fargli riconoscere quando un campo è vuoto ecc...
Alla prossima!!