[RESOLU] variable qui s'évanouit

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] variable qui s'évanouit

Re: variable qui s'évanouit

par nestor94 » 27 sept. 2021, 18:42

Super, ça fonctionne . Merci Arthur.

Re: variable qui s'évanouit

par @rthur » 27 sept. 2021, 16:01

Tant qu'à utiliser filter_input autant ajouter le filtre FILTER_SANITIZE_STRING pour éviter les données malveillantes.
$msg = filter_input(INPUT_POST, 'msg_nom_ville', FILTER_SANITIZE_STRING);

:arrow: Et du coup c'est la variable $msg qu'il faut que tu utilises dans ta requête et pas $msg_nom_ville

Re: variable qui s'évanouit

par nestor94 » 27 sept. 2021, 13:40

La variable est bien issue du formulaire.
(pour la requete préparée, je corrigerai plus tard :wink: )
ci joint aussi en commentaire, les essais non concluants
//$msg = !empty($_POST['msg_nom_ville']) ? $_POST['msg_nom_ville'] : '';
//$msg = $_POST['msg_nom_ville'] ?? '';
$_POST['msg_nom_ville'];

$msg = filter_input(INPUT_POST, 'msg_nom_ville');
if(strlen($msg)>0){
$pdostat =  $bdd->prepare("UPDATE map INNER JOIN membres ON membres.pos_x = map.pos_x AND membres.pos_y = map.pos_y
SET map.msg_nom_ville = '$msg_nom_ville' WHERE membres.id= $id");
$pdostat->execute();
Undefined variable: msg_nom_ville in C:\wamp64\www\m

Re: variable qui s'évanouit

par @rthur » 26 sept. 2021, 01:36

Où définis-tu la variable $msg_nom_ville ?
Si elle est issue du formulaire alors il faut la récupérer dans la variable globale $_POST de cette manière : $_POST['msg_nom_ville']

Par ailleurs, si tu veux utiliser proprement les requêtes préparées PDO (en limitant le risque de sécurité), alors il ne faut pas mettre les variables directement dans la requête mais il faut utiliser bindParam().
Quelques exemples ici : https://www.php.net/manual/fr/pdo.prepa ... ements.php

variable qui s'évanouit

par nestor94 » 26 sept. 2021, 01:17

Notice: Undefined variable: msg_nom_ville in C:\wamp64\www\ms

le formulaire
<form method="post" action="msg_nom_ville.php">
<textarea name="msg_nom_ville" row="10" cols="40" id="msg_nom_ville"></textarea>
<p></p>
<input type="submit" value="Ecrire" />
</form>
le fichier qui traite le formulaire
if(strlen($msg)>0){
$pdostat =  $bdd->prepare("UPDATE map INNER JOIN membres ON membres.pos_x = map.pos_x AND membres.pos_y = map.pos_y
SET map.msg_nom_ville = '$msg_nom_ville' WHERE membres.id= $id");
$pdostat->execute();
} else {
}
Pourquoi ma variable se perd dans la nature et/ou comment y remédier??

J'ai EXACTEMENT le meme genre de script qui lui, fonctionne ( pour pouvoir laisser un message)!