Fermer la fenêtre et évité le commentaire vide

Résolu
flo39400 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai un problème pour le moment je n'arrive pas a fermer la fenêtre et envoyer le commentaire.

La j'ai code qui envoie le commentaire avec le pseudo ('login') mais il poste aussi un commentaire vide cela ne devrai pas arrivé :/
Et j'arrive pas a fermer cette fenêtre automatiquement ou que au moins l'utilisateur arrive sur une page style votre commentaire a bien été publié.

voici mon code:
<?php session_start(); ?>
<body>
<head>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design" />
</body>
<?php
//--------------------------------------------------//
// fichier : formulaire.php 
//--------------------------------------------------//
// connexion à la BDD:
require_once "connexionBDD.php";

// Le temps des tests.. pour voir ce qui est reçu dans la variable
// $_POST :


//------------------------------------
//traitement du submit :
//------------------------------------

//récupération des variables :
$post = isset($_POST['post']) ? $_POST['post'] : NULL;
$commentaire= isset($_POST['commentaire']) ? $_POST['commentaire'] : '';
if(!empty($_POST['commentaire'])) {
echo 'Ok';
}
try{
 $sql = "INSERT INTO coms(post, login) VALUES (:commentaire, :login)";
 $params = array(":commentaire"=>$commentaire, ":login"=>$_SESSION['login']);
 $prepare = $db->prepare($sql);
 $prepare->execute($params);

}catch(PDOException $e) {
    
 }


?>


<!-- formulaire html -->
<form action="" method="post">
<p>Votre commentaire:</p>
<h2><?php echo ''.$_SESSION['login'].''; ?></h2>
<textarea name="commentaire" style="width:500px;height:200px;"><?php echo $commentaire ;?></textarea><br/>
<input type="submit" value="Envoyer" >
</form>
</head>




A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Il te suffit de rajouter une redirection vers une page confirm.php (par exemple) après ta requête
  //redirection vers ta page de confirmation...
   header("location : confirm.php");
  exit();


Code corrigé :
<?php 

//--------------------------------------------------//
// fichier : formulaire.php 
//--------------------------------------------------//

// démarrage SESSION
if(session_id() == '') {
 session_start();
}
// connexion à la BDD:
require_once "connexionBDD.php";

//------------------------------------
//récupération des variables :
//------------------------------------
$post = isset($_POST['post']) ? $_POST['post'] : NULL;
$commentaire= !empty($_POST['commentaire']) ? $_POST['commentaire'] : NULL;

//------------------------------------
//traitement du submit :
//------------------------------------

if($commentaire && $post) {
 echo 'Ok';

 try{
   $sql = "INSERT INTO coms(post, login) 
              VALUES (:commentaire, :login)";
   $params = array(":commentaire"=>$commentaire
                  , ":login"=>$_SESSION['login']
          );
   $prepare = $db->prepare($sql);
   $prepare->execute($params);
  
  //redirection vers ta page de confirmation...
   header("location : confirm.php");
  exit();
  
 } catch(Exception $e) {
    echo $e->getMessage();
 }
}
?>

<head>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design" />
</head>
<body>
<!-- formulaire html -->
<form action="" method="post">
<p>Votre commentaire:</p>
<h2><?php echo $_SESSION['login']; ?></h2>
<textarea name="commentaire" style="width:500px;height:200px;"><?php echo $commentaire ;?></textarea><br/>
<input type="submit" value="Envoyer" >
</form>
</body>


Cordialement,
Jordane
0
flo39400 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   21
 
Bonjour merci a vous de vous penchez sur mon problème.
Mais il ne ce passe rien comme si la condition bloquer le processus.

Je ne peu pu poster de commentaire mais le commentaire vide ne ce poste pas.

PS: le echo OK ne s'affiche pas
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu peux essayer ça et nous dire ce que ça donne ?

<?php 
// Rapporte toutes les erreurs PHP
error_reporting(E_ALL);
//--------------------------------------------------//
// fichier : formulaire.php 
//--------------------------------------------------//

// démarrage SESSION
if(session_id() == '') {
 session_start();
}
// connexion à la BDD:
require_once "connexionBDD.php";


//le temps des tests
echo "<pre>Variables POST :<br>";
print_r($_POST);
echo "</pre>";
//------------------------------------
//récupération des variables :
//------------------------------------
$login = isset($_SESSION['login'])?$_SESSION['login']:'';
$post = isset($_POST['post']) ? true : false;
$commentaire= !empty($_POST['commentaire']) ? $_POST['commentaire'] : NULL;

//------------------------------------
//traitement du submit :
//------------------------------------

if($post){
 if($commentaire ) {
  echo 'Ok';

  try{
    $sql = "INSERT INTO coms(post, login) 
               VALUES (:commentaire, :login)";
    $params = array(":commentaire"=>$commentaire
                  , ":login"=>$login
           );
    $prepare = $db->prepare($sql);
    $prepare->execute($params);
  
   // *** Redirection vers ta page de confirmation...***
   // Le temps des tests.. on désactive la redirection
   //	 header("location : confirm.php");
   exit();
  
  } catch(Exception $e) {
     echo $e->getMessage();
  }
 }else{
  echo "<br> Il n'y a aucun commentaire à ajouter";
 }
}
?>

<head>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design" />
</head>
<body>
<!-- formulaire html -->
<form action="" method="post">
 <p>Votre commentaire:</p>
 <h2><?php echo $login; ?></h2>
 <textarea name="commentaire" style="width:500px;height:200px;"><?php echo $commentaire ;?></textarea><br/>
 <input type="submit" value="Envoyer" name="post">
</form>
</body>

0
flo39400 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   21
 
Donc quand je suis sur la page du commentaire j'ai cela d'afficher:

Variables POST :
Array
(
)


Puis après avoir mis un commentaire et envoyer, j'ai cela:
Variables POST :
Array
(
[commentaire] => bonjour
[post] => Envoyer
)
Ok


Vraiment la tous marche bien :) Mon commentaire sais poster sans faire un autre commentaire vide.
0
flo39400 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   21
 
Donc j'ai remis la redirection:
header("location : confirm.php");

Et la tous marche bien sais super :) merci beaucoup résolu
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0