Envoi de formulaire qui ne fonctionne pas

Fermé
Gaeru - 17 mai 2011 à 14:22
 Gaeru - 17 mai 2011 à 17:12
Bonjour,

Mon problème et que quand j'envoi le formulaire, rien ne se passe et aucun commentaire n'est ajouter dans la BDD.

Voici le code en question :

<?php
require "config.php";
mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
mysql_select_db(DB_BDD);
?>


<?php
$sql = "SELECT * FROM news WHERE id=" .$_GET['id'];
$req = mysql_query($sql) or die('Erreur SQL !<br/> ' . $sql . ' ' . mysql_error());
$data = mysql_fetch_assoc($req);
echo "<h1 id=\"titreRed\">{$data["titre"]}</h1>";
echo "" . date(" G:i", strtotime($data["date"])) . "{$data["contenu"]}
";

$sql = "SELECT * FROM commentaires WHERE news_id=" .$_GET['id'] . " ORDER BY id DESC";
$req = mysql_query($sql) or die('Erreur SQL !
' . $sql . '
' . mysql_error());
while ($data2 = mysql_fetch_assoc($req)) {
    echo $data2["pseudo"];
    echo $data2["contenu"];
}
?>

<fieldset><legend>Votre commentaire</legend><form action="addcom.php" method="post">
        Pseudo : <input type="text" name="pseudo"/><br/>
        URL : <input type="text" name="url"/><br/>
        Mail : <input type="text" name="mail"/><br/>
        <textarea cols="" rows=""  name="contenu" style="width:500px; height:200px;"></textarea><br/>
        <input type="submit" value="Commenter"/>
        <input type="hidden" name="news_id" value="<?php echo $data["id"]; ?>"/>

    </form></fieldset>



Et voici le code de la page addcom.php

 <?php

require "config.php";
mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
mysql_select_db(DB_BDD);



    /*if (!empty($pseudo) && !empty($url) && !empty($email) && !empty($contenu)) {

      echo "Veuillez remplir tout les champs";
        
    }*/

if (isset($_POST) && isset($_POST['pseudo']) && isset($_POST['url']) && isset($_POST['email']) && isset($_POST['contenu'])) {
    extract($_POST);

    $sql = "INSERT INTO commentaires (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
    $req = mysql_query($sql) or die('Erreur SQL !<br/>' . $sql . '<br/>' . mysql_error());
        $contenu = htmlentities($contenu);
        
        echo "Commentaire envoyé";

}
?>


Merci d'avance :)

1 réponse

Yo, normal vous essayez d'envoyer des variables qui n'existent pas:

'$pseudo','$url','$mail','$contenu','$news_id
ne sont déclarées nulle part.
Les varibales qui existent sont dans le tableau $_POST => $_POST['pseudo'] etc...
Une façon siimple d" vérifier aurait été de faire un echo des valeurs à insérer vous auriez tout de suite vu qu'elle n'affichent rien.
Donc soit utiliser les variables POST pour la requête soit(ce qui est mieux) créer de nouvelles variables à partir de celles envoyées en POST pour utiliser celles là(et utiliser mysql_real_escape_string plus une véérification que la variable correspond bien au type de champ dans la table de donnée, sinon erreur = table et programme à jeter).
0
Merci bien ;)

Sinon rien à voir avec mon soucis mais quand j'écris un commentaire qui contient des simples quotes il m'affiche un joli message d'erreur. Comment échapper ces simples quotes ?
0