Form Registrazione

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao a tutti sto creando un browser game di calcio manageriale e il primo ostacolo che mi si presenta è la possibilità agli utenti di farli registrare!
Questo è il form che ho creato:

PHP:
<form action="verifica_reg.php" method="post">
<table width="100%" border="0" cellspacing="1" cellpadding="5">
<br>
<tr>
<td width="25%"><strong>Nickname</strong></td>
<td width="75%">
<input name="user" type="text" maxlength="255">
</td>
</tr>



<tr>
<td width="25%"><strong>Password</strong></td>
<td width="75%">
<input name="pass" type="password" maxlength="255">
</td>
</tr>


<tr>
<td width="25%"><strong>Email</strong></td>
<td width="75%">
<input name="mail" type="text" maxlength="255">
</td>
</tr>


<tr>
<td width="25%"><strong>Nome Manager</strong></td>
<td width="75%">
<input name="manager" type="text" maxlength="255">
</td>
</tr>


<tr>
<td width="25%"><strong>Nome Squadra</strong></td>
<td width="75%">
<input name="team" type="text" maxlength="255">
</td>
</tr>


<td><input type="submit" name="registrati" value="Registrati" class="Button"/></td>
</table>

E questa è la pagina verifica_reg.php:
PHP:
<?php
$dbhost = "localhost";
$dbuser = "beamanager";
$dbpass = "";
$dbname = "my_beamanager".

$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $db);

mysql_query("INSERT INTO iscritti (id,team,manager,email,nickname,password,info,id_level,signupdate,last_login,activated) VALUES(\"".$_POST['nick']."\",\"".$_POST['pass']."\")");

mysql_close($db);
?>
<?php
if($_POST) {
reg_success.php();
}
else {
reg_error.php();
}

function reg_success.php()
{
require 'reg_success.php';

$user = trim($_POST['user']);
$pass = trim($_POST['pass']);
$mail = trim($_POST['mail']);
$manager = trim($_POST['manager']);
$team = trim($_POST['team']);

if(!$user)
{
$messaggio = urlencode("Non hai inserito un nick.");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}

$query = "INSERT INTO iscritti (,email,sesso,newsletter,attivita,messaggio)
VALUES ('$nome','$email',$sesso,$newsletter,$attivita,'$messaggio')";
$result = mysql_query($query);

if (!$result) {
die("Errore nella query $query: " . mysql_error());
}

$id_inserito = mysql_insert_id();

mysql_close();

$messaggio = urlencode("Registrazione effetuata con successo. (ID=$id_inserito)");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
function mostra_form()
{
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
?>

Questo invece è il database che ho creato:

http://img215.imageshack.us/img215/2808/database.jpg


Sapete dirmi quali errori ho fatto?
Vi ringrazio anticipatamente!0:)
 
Praticamente quando clicco sul tasto registrati mi si apre una pagina bianca con questa scritta:


Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /membri/beamanager/verifica_reg.php on line 26

per cui potete dirmi cosa ho sbagliato nella pagina verifica_reg.php?0:)
 
ciao
è questa la riga 26?

$query = "INSERT INTO iscritti (,email,sesso,newsletter,attivita,messaggio)
VALUES ('$nome','$email',$sesso,$newsletter,$attivita,'$messaggio')";

anche se non è questa ci sono degli erroretti

$query = "INSERT INTO iscritti (email,sesso,newsletter,attivita,messaggio)
VALUES ('$nome','$email','$sesso','$newsletter','$attivita','$messaggio')";
poi dichirai i nomi di 5 campi, ma poi metti 6 varabili. manca nome prima di email?
 
Ho modificato,ma ancora mi da quell'errore:

PHP:
<?php
$dbhost = "localhost";
$dbuser = "beamanager";
$dbpass = "";
$dbname = "my_beamanager".

$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $db);

mysql_query("INSERT INTO iscritti (team,manager,email,nickname,password) VALUES(\"".$_POST['team']."\",\"".$_POST['manager']."\"\"".$_POST['email']."\",\"".$_POST['nickname']."\",\"".$_POST['password']."\");

mysql_close($db);
?>
<?php
if($_POST) {
reg_success.php();
}
else {
reg_error.php();
}
 
function reg_success.php()
{
require 'reg_success.php';

$team = trim($POST['team']);
$manager = trim($POST['manager']);
$mail = trim($POST['mail']);
$pass = trim($POST['pass']);
$user = trim($POST['user']);



if(!$user)
{
$messaggio = urlencode("Non hai inserito un nick.");
header('location: '.$SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}

$query = "INSERT INTO iscritti (team,manager,email,nickname,password)
VALUES ('$team','$manager','$mail','$nick','$password')";
$result = mysql_query($query);

if (!$result) {
die("Errore nella query $query: " . mysql_error());
}

$id_inserito = mysql_insert_id();

mysql_close();

$messaggio = urlencode("Registrazione effetuata con successo. (ID=$id_inserito)");
header('location: '.$SERVER['PHP_SELF'].'?msg='.$messaggio);
} 
function mostra_form()
{
if(isset($GET['msg']))
echo '<b>'.htmlentities($GET['msg']).'</b><br /><br />';
?>
 
Se ti da un errore alla riga 26 perché non controllare il codice presente in quella riga. Sarà mica $POST invece di $_POST ?
La vedo lunga e dura creare un browser game.
 
Ultima modifica:
correggi tutti i $POST in $_POST, i $SERVER in $_SERVER e i $GET in $_GET
 
ciao
una domanda
come mai nel primo post i $_POST erano scritti giusti e nel secondo no?
PHP:
$user = trim($_POST['user']); 
$pass = trim($_POST['pass']); 
$mail = trim($_POST['mail']); 
$manager = trim($_POST['manager']); 
$team = trim($_POST['team']);

PHP:
$team = trim($POST['team']); 
$manager = trim($POST['manager']); 
$mail = trim($POST['mail']); 
$pass = trim($POST['pass']); 
$user = trim($POST['user']);

una preghiera (non solo a leon-kennedy) scrivete il codice come lo state usando altrimenti il povero eliox, e non solo lui, come fa a trovare gli Orrori
 
$user = $_POST['user'];
$pass = $_POST['pass'];
$mail = $_POST['mail'];
$manager = $_POST['manager'];
$team = $_POST['team'];

Mi da sempre l'errore!Sapete dirmi per quale motivo,forse ho sbagliato l'array?
 
ciao
forse ho sbagliato l'array?
scusa ma di quale array stai parlando? di $_POST?
mi sembra (ma forse qualcuno dall'empireo mi potrà contradire) che lo script è uno_poco_incasinato.
o l'hai copiato male sui post o è nato proprio così (spero di no altrimenti la penso come satifal
La vedo lunga e dura creare un browser game
).
posta il codice esatto che usi.

p.s.
es. sul form manca il tag di chiusura </form>
 
No,siccome è la prima volta che devo usare mysql ho dei problemi,cmq ecco il codice che sto usando adesso e mi da come errore la riga n°18:
PHP:
<?php
$dbhost = "localhost";
$dbuser = "beamanager";
$dbpass = "";
$dbname = "my_beamanager".

$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $db);

mysql_query("INSERT INTO iscritti (team,manager,email,nickname,password) VALUES(\"".$_POST['team']."\",\"".$_POST['manager']."\"\"".$_POST['email']."\",\"".$_POST['nickname']."\",\"".$_POST['password']."\");

mysql_close($db);

function ();
{
require 'registrazione.php';

//riga 18  if(isset($_POST['user']) && $_POST['pass']==""){ 
   // allore entri nell'if e fai tutte le operazioni che ti servono...tipo 

$user=$_POST['user']; 
$pass=$_POST['pass']; 
$mail=$_POST['mail']; 
$manager=$_POST['manager']; 
$team=$_POST['team']; 

} 
else{ 

   // il form non è stato inviato oppure è stato inviato ma il campo non contiene il valore corretto 

}


if(!$user)
{
$messaggio = urlencode("Non hai inserito un nick.");
header('location: '.$_SERVER['REMOTE_ADDR'].'?msg='.$messaggio);
exit;
}

$query = "INSERT INTO iscritti (team,manager,email,nickname,password)
VALUES ('$team','$manager','$mail','$user','$pass')";
$result = mysql_query($query);

if (!$result) {
die("Errore nella registrazione." . mysql_error());
}

$id_inserito = mysql_insert_id();

mysql_close();

$messaggio = urlencode("Registrazione effetuata con successo. (ID=$id_inserito)");
header('location: '.$_SERVER['REMOTE_ADDR'].'?msg='.$messaggio);
} 
function mostra_form()
{
if(isset($_GET['msg']))
echo '<b>'.htmlentities($GET['msg']).'</b><br /><br />';
?>
 
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /membri/beamanager/verifica_reg.php on line 18
 
ciao
due cose
intanto correggi la riga del mysql_query
PHP:
mysql_query("INSERT INTO iscritti (team,manager,email,nickname,password) VALUES('".$_POST['team']."','".$_POST['manager']."','".$_POST['email']."','".$_POST['nickname']."','".$_POST['password']."'");

poi se noti come viene scritto lo script ti accorgi che da quella riga in poi è scritto in rosso, quindi l'errore con molta probabilità si evidenzia alla riga 18 ma nasce dalla riga dei mysql_query, hai messo male i doppi apici e ti sei dimenticato una virgola
 
Guarda, niente di personale, ma il tuo codice è assolutamente pieno di errori sintattici e non. Innanzitutto che editor utilizzi, perchè con un qualsiasi editor appena decente ti saresti accorto che l'errore non è alla riga 18 bensì alla 10 nella quale dimentichi di chiudere le virgolette finali. Inoltre nella stessa riga manca anche una virgola ed una parentesi tonda di chiusura.
La riga corretta dovrebbe essere questa:

PHP:
mysql_query("INSERT INTO iscritti (team,manager,email,nickname,password) VALUES('".$_POST['team']."','".$_POST['manager']."','".$_POST['email']."','".$_POST['nickname']."','".$_POST['password']."'");

Comunque ti ridarà subito errore alla riga 15. Cos'è questo???

PHP:
function ();

Per finire ci sono ancora innumerevoli errori a seguire e non chiudi la graffa finale.
Non è un problema di conoscere o meno PHP o MySQL, ma di puro buonsenso ed un minimo di accortezza nello scrivere il codice piuttosto che effettuare dei semplici copia ed incolla.
 
Con php edit mi dice che non ci sono errori di sintassi!Ora però ci sono due problemi:

Quando inserisco tutti i dati,mi dice "Errore nella registrazione.No database selected."
Quando non li inserisco mi manda a questa pagina http://beamanager.altervista.org/95.227.202.6?msg=

che non esiste...

Il codice modificato è questo:

PHP:
<?php
$dbhost = "localhost";
$dbuser = "beamanager";
$dbpass = "";
$dbname = "my_beamanager".

$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $db);

mysql_query("INSERT INTO iscritti (team,manager,email,nickname,password) VALUES('".$_POST['team']."','".$_POST['manager']."','".$_POST['email']."','".$_POST['nickname']."','".$_POST['password']."'");

mysql_close($db);

{
	require 'registrazione.php';

if(isset($_POST['registrati']) and $_POST['registrati'] == 'Registrati'){
	// allore entri nell'if e fai tutte le operazioni che ti servono...tipo

	$user=$_POST['user'];
	$pass=$_POST['pass'];
	$mail=$_POST['mail'];
	$manager=$_POST['manager'];
	$team=$_POST['team'];

}
else{

	// il form non è stato inviato oppure è stato inviato ma il campo non contiene il valore corretto

}


if(!$user)
{
	reg_success.php;
	header('location: '.$_SERVER['REMOTE_ADDR'].'?msg='.$messaggio);
	exit;
}

$query = "INSERT INTO iscritti (team,manager,email,nickname,password)
VALUES ('$team','$manager','$mail','$user','$pass')";
	$result = mysql_query($query);

if (!$result) {
	die("Errore nella registrazione." . mysql_error());
}

	$id_inserito = mysql_insert_id();

	mysql_close();

	$messaggio = urlencode("Registrazione effetuata con successo. (ID=$id_inserito)");
	header('location: '.$_SERVER['REMOTE_ADDR'].'?msg='.$messaggio);
} 
function mostra_form()
{
if(isset($_GET['msg']))
	echo '<b>'.htmlentities($GET['msg']).'</b><br /><br />';
}
?>
 
Ultima modifica:
PHP:
if(isset($_POST['user']))
	{
		$user=trim($_POST['user']);
		$pass=trim($_POST['pass']);
		$mail=trim($_POST['mail']);
		$manager=trim($_POST['manager']);
		$team=trim($_POST['team']);
		if(get_magic_quotes_gpc())
			{
				$user=stripslashes($user);
				$pass=stripslashes($pass);
				$mail=stripslashes($mail);
				$manager=stripslashes($manager);
				$team=stripslashes($team);
			}
		$user=htmlspecialchars($user);
		$pass=htmlspecialchars($pass);
		$mail=htmlspecialchars($mail);
		$manager=htmlspecialchars($manager);
		$team=htmlspecialchars($team);
												
		$user=mysql_real_escape_string($user);
		$pass=mysql_real_escape_string($pass);
		$mail=mysql_real_escape_string($mail);
		$manager=mysql_real_escape_string($manager);
		$team=mysql_real_escape_string($team);
					
		if(!$user || !$pass || !$mail || !$manager || !$team )
			{
				//se i campi sono vuoti invia un messaggio
								
			}
		else
			{
				$query_insert=mysql_query("INSERT INTO manager
				(user, password, mail, manager, team)
				VALUES
				('$user', '$pass', '$mail', '$manager',
	            '$team')")or die("errore nella query;".mysql_error());
			    //dai un messaggio di avvenuta registrazione			}		
	}
mysql_close();
meglio fare anche un controllo se la email è stata scritta in modo corretto
ciao
 
Ciao e 1000 grazie!0:)

Ora però mi da un errore all'ultima riga e mi sembra strano dato che ho semplicemente chiuso il codice php!:confused:

PHP:
<?php
$dbhost = "localhost";
$dbuser = "beamanager";
$dbpass = "";
$dbname = "my_beamanager".

$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $db);

mysql_query("INSERT INTO iscritti (team,manager,email,nickname,password) VALUES('".$_POST['team']."','".$_POST['manager']."','".$_POST['email']."','".$_POST['nickname']."','".$_POST['password']."'");

mysql_close($db);

{
	

if(isset($_POST['registrati']) and $_POST['registrati'] == 'Registrati'){
	// allore entri nell'if e fai tutte le operazioni che ti servono...tipo

if(isset($_POST['user'])) 
    { 
        $user=trim($_POST['user']); 
        $pass=trim($_POST['pass']); 
        $mail=trim($_POST['mail']); 
        $manager=trim($_POST['manager']); 
        $team=trim($_POST['team']); 
        if(get_magic_quotes_gpc()) 
            { 
                $user=stripslashes($user); 
                $pass=stripslashes($pass); 
                $mail=stripslashes($mail); 
                $manager=stripslashes($manager); 
                $team=stripslashes($team); 
            } 
        $user=htmlspecialchars($user); 
        $pass=htmlspecialchars($pass); 
        $mail=htmlspecialchars($mail); 
        $manager=htmlspecialchars($manager); 
        $team=htmlspecialchars($team); 
                                                 
        $user=mysql_real_escape_string($user); 
        $pass=mysql_real_escape_string($pass); 
        $mail=mysql_real_escape_string($mail); 
        $manager=mysql_real_escape_string($manager); 
        $team=mysql_real_escape_string($team); 
                     
        if(!$user || !$pass || !$mail || !$manager || !$team ) 
            { 
                //se i campi sono vuoti invia un messaggio 
                                 
            } 
        else 
            { 
                $query_insert=mysql_query("INSERT INTO manager 
                (user, password, mail, manager, team) 
                VALUES 
                ('$user', '$pass', '$mail', '$manager', 
                '$team')")or die("errore nella query;".mysql_error()); 
                //dai un messaggio di avvenuta registrazione            }         
    } 
mysql_close();  

	

	$messaggio = urlencode("Registrazione effetuata con successo. (ID=$id_inserito)");
	header('location: '.$_SERVER['REMOTE_ADDR'].'?msg='.$messaggio);
} 
function mostra_form()
{
if(isset($_GET['msg']))
	echo '<b>'.htmlentities($GET['msg']).'</b><br /><br />';

}
?>
 

Discussioni simili