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

Résolu/Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 18 juin 2015 à 23:37
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 19 juin 2015 à 19:25
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>




3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 18/06/2015 à 23:47
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 mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 19/06/2015 à 07:12
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 juin 2015 à 09:55
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 mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
Modifié par flo39400 le 19/06/2015 à 19:20
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 mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
19 juin 2015 à 19:23
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 juin 2015 à 19:25
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