[RESOLU] Variable dans les choux

Eléphant du PHP | 345 Messages

03 oct. 2021, 16:31

Je viens de tester ceci:
    if (!empty($_POST)) {
      echo '<pre>'.print_r($_POST,true).'</pre>';
 } else {
   echo '<br/>$_POST vide';
 }

qui m'affiche.................

Array
(
[nommer_ville] => TESTVILLE
)

Mammouth du PHP | 2703 Messages

03 oct. 2021, 16:36

ce qui est logique avec un tel formulaire :
<form method="post" action="">
<input type="text" name="nommer_ville" id="msg_nom_ville"/>
<input type="submit" value="CRÉER" />
</form>

Eléphant du PHP | 345 Messages

03 oct. 2021, 16:46

Puisque le test avec if (!empty($_POST)) m'affiche bien la variable, j'ai mis cela:
    if (!empty($_POST)) {
$msg_nom_ville = filter_input(INPUT_POST, 'msg_nom_ville', FILTER_SANITIZE_STRING);
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', tile= '/relief/tile_ville.gif' WHERE membres.id=:id");
$pdostat->bindvalue(':id', $idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
} 
header('Location:page_test.html');
exit;
}	
Mais il n'y a pas de mise à jour de la table.

Mammouth du PHP | 2703 Messages

03 oct. 2021, 16:53

$msg_nom_ville = filter_input(INPUT_POST, 'msg_nom_ville', FILTER_SANITIZE_STRING);

avec un tableau qui contient
Array
(
[nommer_ville] => TESTVILLE
)

ça ne peut pas marcher.

Eléphant du PHP | 345 Messages

03 oct. 2021, 18:32

(je m'y perds)
j'ai testé cela:

    if (!empty($_POST)) {
filter_input(INPUT_POST, 'msg_nom_ville', FILTER_SANITIZE_STRING);
if(strlen($msg)>0){
.............

Mammouth du PHP | 2703 Messages

03 oct. 2021, 19:18

$tab = ...;
print_r($tab);
cela m'affiche :
Array
(
[nommer_ville] => TESTVILLE
)
comment faire pour afficher seulement TESTVILLE avec un echo ?

Eléphant du PHP | 345 Messages

04 oct. 2021, 00:01

#-o

je crois que j'ai trouvé...
  if(isset($_POST['nommer_ville']))
 {
$msg_nom_ville = ($_POST['nommer_ville']);
 }   
if (!empty($_POST)) {
$msg = filter_input(INPUT_POST, 'nommer_ville', FILTER_SANITIZE_STRING);
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', tile= '/relief/tile_ville.gif' WHERE membres.id=:id");
$pdostat->bindvalue(':id', $idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
}
header('Location:page_test.html');
exit;
}	 
Modifié en dernier par nestor94 le 04 oct. 2021, 01:04, modifié 2 fois.

Mammouth du PHP | 2703 Messages

04 oct. 2021, 00:47

comment cela a était fait dans post469044.html#p469044 ?

Eléphant du PHP | 345 Messages

04 oct. 2021, 01:05

C'est ok
je m'étais complètement focalisé seulement sur $msg_nom_ville :oops: #-o
  if(isset($_POST['nommer_ville']))
 {
$msg_nom_ville = ($_POST['nommer_ville']);
 }   
if (!empty($_POST)) {
$msg = filter_input(INPUT_POST, 'nommer_ville', FILTER_SANITIZE_STRING);
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', tile= '/relief/tile_ville.gif' WHERE membres.id=:id");
$pdostat->bindvalue(':id', $idMembreSession, PDO::PARAM_INT);
$pdostat->execute();
}
header('Location:page_test.html');
exit;
}	 
Modifié en dernier par nestor94 le 04 oct. 2021, 01:08, modifié 1 fois.

Mammouth du PHP | 2703 Messages

04 oct. 2021, 01:07

<input type="text" name="nommer_ville" id="msg_nom_ville"/>
quand on se complique la vie à mettre des valeurs différentes, il faut bien avoir en tête que ce qui compte, pour $_POST, c'est name et pas id.

Eléphant du PHP | 345 Messages

04 oct. 2021, 01:10

je vais mettre le meme nom de valeur. merci Or.