allora sto facendo un sito in php e utilizzando mysql e sto cercando di fare un semplice chat utilizzando database però ho dei poblemi
vi posto il codice del controllo paremetri login
Codice PHP:
$user = $_POST['user'];
$psw = $_POST['psw'];
session_start();
include 'db.inc.php';
try {
$sql = "SELECT * FROM accesso WHERE user = '$user' AND psw = '$psw' ";
$result = $pdo->query($sql);
$_SESSION['id'] = $res['idUtente'];
}
catch(PDOException $e)
{
$error = "Errore nell'esecuzione della query ";
include 'error.html.php';
exit();
}
$nr = $result->rowCount();
if($nr==1){
$risq = "Accesso riuscito.";
header('Location:chat.php');
}
else
{
$risq = "Accesso non riuscito.";
header('Location:index.html');
}
e qui il codice per l'inserimento dei messaggi(il database è formato da accesso con i vari utenti e password e la tabella messaggio dove contiene il msg la data e id_utente il vincolo di integrità referenziale, un utente può inviare molti messaggi, un messaggio è inviato da un solo utente)
Codice PHP:
include 'db.inc.php';
session_start();
$id = $_POST['user'];
$msg = htmlspecialchars($_POST['azione']);
try {
$sql = "SELECT idUtente FROM accesso WHERE user ='$user' ";
$result = $pdo->query($sql);
} catch(PDOException $e) {
exit();
}
$row = $result->fetchAll();
try {
$sql = 'INSERT INTO messaggio(msg,data, id_utente) VALUES(:msg, NOW(), :id)';
$st = $pdo->prepare($sql);
$st->bindValue(':msg' , $msg, PDO::PARAM_STR);
$st->bindValue(':id' , $_SESSION['id'], PDO::PARAM_INT);
$st->execute();
} catch(PDOException $e) {
exit();
}
header("Location: visualizza.php");
adesso il mio problema è che l'inserimento non funziona non inserisce nessun messaggio però ho notato qualcosa che se faccio in questo modo riesco a inviare il messaggio con la data ma ovviamente con il campo id_utente impostato a 0
Codice PHP:
$sql = 'INSERT INTO messaggio(msg,data) VALUES(:msg, NOW())';
$st = $pdo->prepare($sql);
$st->bindValue(':msg' , $msg, PDO::PARAM_STR);
$st->execute();
sapete aiutarmi e dirmi dove ho commesso errori. saluti