Ajout impossible

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ajout impossible

Re: Ajout impossible

par kritpo » 23 janv. 2013, 21:21

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!!

Re: Ajout impossible

par yann18 » 23 janv. 2013, 20:44

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

par kritpo » 23 janv. 2013, 20:16

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

par yann18 » 23 janv. 2013, 19:45

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'],
        ));

Ajout impossible

par kritpo » 23 janv. 2013, 18:21

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');
?>