-
Piccolo problemino
Salve ragazzi, è da un pò che non mi divertivo col php e imbattendomi in una registrazione senza controlli ecc, giusto per dargli la base non riesco a far si che i dati messi nel form vengano salvati nel db. Vi posto la parte con l'errore credo...
Codice PHP:
<?php
//Database
$db_host = "localhost";
$db_user = "***";
$db_pass = "***";
$db_name = "***";
$connect_db = mysql_connect ($db_host, $db_user, $db_pass);
if (!$connect_db) die ('Non riesco a connettermi al database');
$select_db = mysql_select_db ($db_name, $connect_db);
if (!$select_db) die ('Non riesco a selezionare il database' . mysql_error());
//Controlli sulle variabili inviate dal form
$uuser = $_POST['uuser'];
$upass = $_POST['upass'];
$uemail = $_POST['uemail'];
$cuemail = $_POST['cuemail'];
$insert_dati = mysql_query("INSERT INTO game_users (username, password, email) VALUES ($uuser, $upass, $uemail)");
?>
Dov'è che sbaglio? So che è un errore da scuola elementare ma è da tanto che non lo utilizzavo...:D
Premetto che la tabella nel db è giusta.
-
Che messaggio di errore ottieni?
Nel frattempo, anche senza controlli ed escape, devi aggiungere un po' di apici in quella query:
Codice PHP:
$insert_dati = mysql_query("INSERT INTO `game_users` (`username`, `password`, `email`) VALUES ('$uuser', '$upass', '$uemail')");
-
Grazie dread mi hai risolto il problema.
Scusa per la tarda risposta ;)
Volevo farti controllare quest'altro codice:
Codice PHP:
<?php
if(empty($_SESSION['my_id'])) { die ("Non sei loggato<br><a href=\"/login.php\">Login</a>"); }
//CONTROLLI INIZIALI
include("connectdb.php");
$check_utente = mysql_query("SELECT * FROM g_pg WHERE id = $_SESSION[my_id]");
$dati_utente = mysql_fetch_array($check_utente);
if($dati_utente == True) { die ("Hai già un personaggio. Limite massimo raggiunto.<br><a href=\"index.php\">Home</a>");}
//RECORD VARIABILI ASSUNTE DAL FORM
$pg_name = $_POST['pg_name'];
$pg_level = $_POST['pg_level'];
$pg_exp = $_POST['pg_exp'];
$pg_race = $_POST['pg_race'];
$pg_class = $_POST['pg_class'];
$stat_1 = $_POST['stat_1'];
$stat_2 = $_POST['stat_2'];
$stat_3 = $_POST['stat_3'];
$stat_4 = $_POST['stat_4'];
$stat_5 = $_POST['stat_5'];
//Controllo variabili
if(empty($pg_name)) { echo "Non hai scelto il Nome PG<br><a href=\"index.php\">Torna indietro</a>";}
if(strlen($pg_name) < 4) { echo "Nome PG troppo breve. Scegline un altro.<br><a href=\"index.php\">Torna indietro</a>";}
if(strlen($pg_name) > 25) { echo "Nome PG troppo lungo. Scegline un altro.<br><a href=\"index.php\">Torna indietro</a>";}
$check_name = mysql_query("SELECT * FROM g_pg WHERE pg_name = '$pg_name'");
$array_name = mysql_fetch_array($check_name);
if($array_name == True) { die ("Nome pg già in uso. Scegline un altro<br><a href=\"index.php\">Torna indietro</a>");}
if(empty($pg_race)) { die ("Non hai selezionato la razza<br><a href=\"index.php\">Torna indietro</a>");}
if(empty($pg_class)) { die ("Non hai selezionato la classe<br><a href=\"index.php\">Torna indietro</a>");}
//Se tutto è buono, inserimento dati
$save_pg = mysql_query("INSERT INTO `g_pg` (`id`, `pg_name`, `pg_level`, `pg_exp`, `pg_razza`, `pg_class`, `stat_1`, `stat_2`, `stat_3`, `stat_4`, `stat_5`, `stat_r`, `pg_money`) VALUES ($_SESSION['my_id'], '$pg_name', '$pg_level', '$pg_exp', '$pg_race', '$pg_class', '$stat_1', '$stat_2', '$stat_3', '$stat_4', '$stat_5', '0', '10000')") or die mysql_error();
if(!$save_pg) { echo "Errore nella creazione del pg. Se il problema sussiste contattare il supporto.<br><a href=\"index.php\">Torna indietro</a>";}
else { $_SESSION['my_name'] = $dati_utente['pg_name'];
echo "PG creato correttamente. Sei pronto per entrare nel nostro mondo. Infinite avventure ti aspettano...Che aspetti, inizia a giocare!<a href=\"index.php\">Gioca!</a>";}
?>
Mi da quest'errore sulla linea 45...
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Cosa sbaglio? *.*
-
Qual'è la riga 45? Mi sembra siano meno di 40 in quello spezzone
-
Codice PHP:
$save_pg = mysql_query("INSERT INTO `g_pg` (`id`, `pg_name`, `pg_level`, `pg_exp`, `pg_razza`, `pg_class`, `stat_1`, `stat_2`, `stat_3`, `stat_4`, `stat_5`, `stat_r`, `pg_money`) VALUES ('$_SESSION[my_id]', '$pg_name', '$pg_level', '$pg_exp', '$pg_race', '$pg_class', '$stat_1', '$stat_2', '$stat_3', '$stat_4', '$stat_5', '0', '10000')") or die mysql_error();
Ho risolto il problema, te l'ho aggiornata qui sopra, però ora mi dice:
Parse error: syntax error, unexpected T_STRING sempre in questa riga
-
Il problema è $_SESSION in quella stringa, vedi :arrow: http://forum.it.altervista.org/php-m...tml#post902377
-
Grazie mille dreadnaut.
Gentilissimo!