Ajouter un commentaire php formulaire envoie

bonjour j'ai un petit soucis avec le formulaire pour posté un commentaire
aucun textes ne s'enregistre au niveau de la base de donner voici le code:

<?php
$base = mysql_connect ('192.168.1.22', '', '');
mysql_select_db ('test', $base);
$sql = 'INSERT INTO coms VALUES ('.$_POST["post"].')';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

?>

<form action="index.php" method="post" onsubmit="self.close()">
<p>Votre commentaire:</p><br/>
<textarea name="commentaire" style="width:500px;height:200px;"><?=$post;?></textarea><br/>
<input type="submit" name="Poster" value="Poster"></form>


merci d'avance de vos réponses .

1 réponse

  1. Modérateur
    Bonjour,
    Déjà.... passes à la PDO....
    explications disponibles ici : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    Ensuite....
    Vérifies toujours.. avant de les utiliser... que tes variables existent bien via la commande ISSET

    Et enfin... la variable que tu cherches à insérer en BDD ... n'existe pas dans ton formulaire !

    bref
    <?php
    //connexion à la BDD
    // a placer dans un fichier à part
    // que tu appelles lorsque tu en as besoin
    // ---- bddCnx.php ----
    
    //variables :
    $host = "localhost";
    $dbName="test";
    $user = "root";
    $password = "";
    
    //connexion
    try{
     $dsn = "mysql:host=$host;dbname=$dbName";
     $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' );
     $dbh = new PDO($dsn, $user, $password, $options);
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        echo "Échec lors de la connexion : " . $e->getMessage();
    }
    ?>
    


    <?php
    //Connexion à la BDD
    require_once 'bddCnx.php';
    
     //Traitement du POST
    if(isset($_POST)){
      $commentaire = isset($_POST['commentaire'])?$_POST['commentaire']:"";
      $sql = "INSERT INTO coms 
                 VALUES ('$commentaire')";
      $dbh->exec($sql);
    }
    ?>
    


    Cordialement,
    Jordane
    0