transfert d'une donnée d'une page à une autre (PHP 7.3)

Eléphanteau du PHP | 39 Messages

25 janv. 2023, 15:55

Bonjour le forum,

J'ai besoin d'un coup de pouce pour quelque chose de délicat.

J'ai réalisé le code du passage d'une donnée de la BDD ["Reversed_name"] d'une page à une autre qui est un formulaire mail
page d'origine, code:

Code : Tout sélectionner

echo '<p>&nbsp;&nbsp;&nbsp;&nbsp;<a href="aa-header-form-correction-addition.php'.(isset($result[0]["Reversed_name"]) ? "?Reversed_name=".$result[0]["Reversed_name"] : null).'" target="_blank"><img border="0" src="aa-header-form-correction-addition.png" alt="email form to send corrections and contributing additions to this page" title="email form to send corrections and contributing additions to this page" width="15"></a></p><p>&nbsp;</p>'
page de destination, code:

Code : Tout sélectionner

echo ' <form id="contact" method="post" action="'.$form_action.'"> <fieldset><legend>Your coordinates</legend> <input type="hidden" name="Reversed_name" value="'.(isset($_GET['Reversed_name']) ? urldecode($_GET['Reversed_name']) : null).'"> <p><label for="name">Name of member:</label><input type="text" size="100" id="name" name="name" value="'.stripslashes($name).'" tabindex="1"></p> <p><label for="email">Email :</label><input type="text" size="100" id="email" name="email" value="'.stripslashes($email).'" tabindex="2"></p> </fieldset> <fieldset><legend>Your message :</legend> '.(isset($_GET['Reversed_name']) ? '<p><label for="subject">Subject : </label>'.urldecode($_GET['Reversed_name']).'</p>' : null).' <p><label for="message">Message :</label><textarea id="message" name="message" style="vertical-align: top;" tabindex="4" cols="60" rows="8">'.stripslashes($message).'</textarea></p> </fieldset> <div style="text-align:center;"><input type="submit" name="send" value="Send&nbsp;!"></div> </form>';

Cela marche (et dans une section membre protégée), mais j'ai lu que le $_GET n'était pas 'safe' dans le code, alors je l'ai remplacé par $_POST, ùais là cela ne marche plus (le Reversed_name n'est plus 'passé' d'une page à l'autre).

Un conseil, une correction, une amélioration de mon code???

Merci d'avance aux experts!

Seb

Mammouth du PHP | 1967 Messages

25 janv. 2023, 16:21

Le POST ne marchera pas, soit tu garde en GET et tu fais toutes les vérifications possible pour éviter les failles
soit tu passe par $_SESSION

session_start();
$_SESSION['Reversed_name'] = 'blabla';

et page suivante
session_start();
$reversedName = $_SESSION['Reversed_name']
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 39 Messages

25 janv. 2023, 17:59

Merci Spols de ta réactivité!

Oups, désolé j'ai posté au forum débutant!
Là je ne comprend que dalle, pardon!

Si je poursuis ton option via session_start(); que dois je modifier précisément?

Ma page de départ (qui est dans une section membre donc commence déjà par session_start(); après vérif de ID/PW) est une page qui est cliquée via un menu qui correspond au 'Reversed_name' affiché donc cela varie ('Reversed_name' est un champ d'une table de la BDD), donc que vient faire blabla (modestement)?

Pour la page de destination (un formulaire mail, elle commence aussi par session_start();) que dois-je changer dans le code?
$_GET est codé 2 fois?
(je veux y copier le 'Reversed_name' précédent dans le subject du mail)

Merci, Seb

Mammouth du PHP | 1967 Messages

25 janv. 2023, 18:11

Si tu utilise déjà une session étend son utilisation à ta variable.

le blabla c'est par ce que je connais pas ton code, je ne sais donc pas comment la remplir ni comment l'utiliser, ça c'est à toi de le déterminer.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 39 Messages

26 janv. 2023, 15:40

Ah, je reste bloqué, car incompétent, désolé.

Merci quand même !

Cordialement

Seb