Page 1 sur 1

Ajout impossible

Posté : 23 janv. 2013, 18:21
par kritpo
Bonjour,
Voilà, je vous expose mon problème:J'ai créer un chat avec une page post, cette page a un header qui redirige le visiteur sur la page de chat. Mais quand j'entre quelque chose dans l'input, il ne le rajoute pas sur la BDD; voici le code:
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=mysql.heberg.fr;dbname=dbname', 'dbusers', 'mdp');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO `**-**`(id, date, ip, pseudo, message) VALUES(NULL, CURDATE(), :ip, :pseudo, :message)');
$req->execute(array(
	'ip' => $_SERVER ['REMOTE_ADDR'],
	'pseudo' => $_SESSION['pseudo'],
	'message' => $_POST['message'],
	));
// Redirection du visiteur vers la page du minichat
header('Location: **-**.php');
?>

Re: Ajout impossible

Posté : 23 janv. 2013, 19:45
par yann18
bonjour,
quel est le message d'erreur affiché?

tu dois effectuer un contrôle sur les variables reçues en POST avant d’insérer des données.
pour la méthode exécute tu dois lui passer un tableau dont clés sont le noms des variables à insérer précédées par :.

voici le corrigé de execute(..):
 $req->execute(array(
        ':ip' => $_SERVER ['REMOTE_ADDR'],
        ':pseudo' => $_SESSION['pseudo'],
        ':message' => $_POST['message'],
        ));

Re: Ajout impossible

Posté : 23 janv. 2013, 20:16
par kritpo
Bonjour,
Non, il n'y a aucun message d'erreur, et cela ne marche tout de même pas même avec la modification...

Re: Ajout impossible

Posté : 23 janv. 2013, 20:44
par yann18
c'est évident que le message d'erreur ne s'affiche pas ,ta requête doit être dans le bloc try. Ensuite c'est pas la classe Exception à la place il faut mettre une classe pdo dediée(PDOException) à la gestion d'exception

<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=mysql.heberg.fr;dbname=dbname', 'dbusers', 'mdp');
// Insertion du message à l'aide d'une requête préparée
if(isset($_SERVER ['REMOTE_ADDR']) && isset( $_SESSION['pseudo') && isset($_POST['message']) ) {
$req = $bdd->prepare('INSERT INTO `**-**`(id, date, ip, pseudo, message) VALUES(NULL, CURDATE(), :ip, :pseudo, :message)');
 $req->execute(array(
        ':ip' => $_SERVER ['REMOTE_ADDR'],
        ':pseudo' => $_SESSION['pseudo'],
        ':message' => $_POST['message'],
        ));
// Redirection du visiteur vers la page du minichat
header('Location: **-**.php');
}else{
echo "les variables n'existent pas";
}
} catch (PDOException $erreur) {
 
        echo 'Erreur : '.$erreur->getMessage();
    }

?>


Re: Ajout impossible

Posté : 23 janv. 2013, 21:21
par kritpo
Bonjour,
Merci:D(ton code comporte quelques erreur, mais il est parfait), j'ai compris, j'avais oublier d'activer la fonction $_SESSION sur ma page(sur les autres pages, j'avais fait un include...:p Vraiment bête, non?;))

Merci pour tout!!