Buongiorno a tutti,
ho un problema che mi sta facendo impazzire da giorni.
In pratica per la creazione di una funzione di Registrazione utente ho creato una pagina con un form che invia i dati di registrazione dell'utente ad un'altra pagina contenente il codice PHP per i controlli e per la scrittura nel DB dei dati inviati se i controlli hanno avuto esito positivo.
Di seguito il sistema adottato:
Ho creato una classe USER con un metodo runquery() seguenti:
class USER
{
private $conn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnection();
$this->conn = $db;
}
public function runQuery($sql)
{
$stmt = $this->conn->prepare($sql);
return $stmt;
}
}
e la pagina che riceve i dati dal modulo,.
La procedura deve controllare che l'email non sia gia' presente nella tabella table_users del DB
Se non e' presente deve inserire nella stessa tabella i dati di registrazione.
Ecco il codice creato:
<?php
session_start();
require_once 'class.user.php';
$reg_user = new USER();
if(isset($_POST['btn-signup']))
{
******** i dati ricevuti dal modulo *********
$uname = trim($_POST['txtuname']);
$email = trim($_POST['txtemail']);
$upass = trim($_POST['txtpass']);
$code = md5(uniqid(rand()));
******** richiamo il metodo runQuery ed invio la query **********
$stmt = $reg_user->runQuery('SELECT * FROM tbl_users WHERE useremail = :email_id');
******* effettuo il binding sulla query *************
$stmt->bindParam(":email_id", $email);
********** eseguo la query *************
$stmt->execute();
........
a questo punto del codice l'applicazione si blocca e il comando execute() non viene eseguito. Non ricevo alcun messaggio di errore. Solo la pagina vuota, nessun codice sorgente... niente di niente.
Ho provato a mettere vari echo verificando che il modulo ha effettivamente inviato i dati inseriti in modo corretto. C'e' un'anima buona che potrebbe dirmi se la sequenza di istruzioni e' corretta e se l'errore e' di sintassi o di passaggio dati?
Ho provato a cercare su google informazioni senza trovarne. La sintassi mi sembra corretta, pertanto penso sia un problema legato al binding dei dati (forse non li invia alla query)...
Se qualcuno ha qualche indicazione puo' cortesemente aiutarmi?
Anche solamente come verificare se un'istruzione execute() sia effettivamente eseguita o no e che tipo di dati sono stati effettivamente passati alla query dall'operazione di binding.
Grazie a tutti in anticipo
Marco