Fermer la fenêtre et évité le commentaire vide
Résolu
flo39400
Messages postés
659
Statut
Membre
-
jordane45 Messages postés 40051 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40051 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:
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:
- Fermer la fenêtre et évité le commentaire vide
- Comment supprimer une page vide sur word - Guide
- Caractere vide - Guide
- Fenetre windows - Guide
- Clément a partagé le fichier mme bovary. il a écrit des commentaires dans le document. quel est le 2e commentaire ? - Guide
- Fenêtre hors écran windows 11 - Guide
3 réponses
Bonjour,
Il te suffit de rajouter une redirection vers une page confirm.php (par exemple) après ta requête
Code corrigé :
Cordialement,
Jordane
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
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
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
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>
Donc quand je suis sur la page du commentaire j'ai cela d'afficher:
Puis après avoir mis un commentaire et envoyer, j'ai cela:
Vraiment la tous marche bien :) Mon commentaire sais poster sans faire un autre commentaire vide.
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.