Merci de tes conseils, je vais voir.
En attendant si je change la méthode de la form, post de "index5.php", en méthode get, ça mémorise :
.../... formulaire5.php?mot_de_passe=root
Je teste ton idée...
Merci de tes conseils, je vais voir.
En attendant si je change la méthode de la form, post de "index5.php", en méthode get, ça mémorise :
.../... formulaire5.php?mot_de_passe=root
Je teste ton idée...
Donc avec ton idée de modif :
Les deux versions de file_put_ testées et... toujours aucune mémory en arrivée sur la page formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <?php ini_set("display_errors", TRUE); error_reporting(E_ALL); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Page protégée par mot de passe</title> </head> <body> <p>Veuillez entrer le mot de passe:</p> <!--<form action="formulaireX.php" method="post">--> <!-- Afin de vérifier si écriture en fichier : --> <form action="formulaire5.php" method="post"> <p> <input type="text" name="mot_de_passe" id="mot_de_passe" value="<?php echo isset($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : '' ?>" /> <input type="submit" value="Valider" /> </p> </form> <?php /* //Écriture file_put_contents('MDP.dat', isset($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : ''); // Contrôle echo '<br />'; echo 'Vérif lecture SEULEMENT Si action/redir neutralisée : ' .file_get_contents('MDP.dat'); */ // MAJ du fichier uniquement si MDP présent en post if(isset($_POST['mot_de_passe'])) { //Écriture //file_put_contents('MDP.dat', $_POST['mot_de_passe']); file_put_contents('MDP.dat', isset($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : ''); // Contrôle echo '<br />'; echo 'Vérif lecture SEULEMENT Si action/redir neutralisée : ' .file_get_contents('MDP.dat'); } ?> </body> </html>
J'ai toujours le contrôle direct du contenu de ce fichier .dat et = empty
C'est du coriace hein
Ça serait avec une méthode SESSION ; petits gâteaux ; mouiiii éventuellement, Mais en ce cas d'écriture indépendante sur un fichier texte généré par une page et devant être le plus simplement possible être récupéré par une autre.
J'avoue que je me demande sincèrement ce qui efface ou empêche l'écriture
Édit : Si je veux tricher et que ça fonctionne tant qu'une nouvelle écriture aurait lieu (mais pour ça faut reneutraliser la redir du form) :
1- je neutralise la redirection du form de la page index (ce qui permettra l'écriture dans le fichier )
2- je saisis le bon MDP = root
3- je valide en submit
4- je modifie cette page index en replaçant la redirection en form action
5- je revalide la page index et ça roule ma poule... = arrivée impec en page formulaire.
Bon, on va pas se laisser impressionner par une vulgaire histoire de formulaire
Si précédemment personne n'a trouvé le pourquoi de l'empêchement de toute mémorisation du mot de passe.
Faut ruser et je viens de demander à un Sioux :
Page index7.php
Page formulaire7.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php ini_set("display_errors", TRUE); error_reporting(E_ALL); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Page protégée par mot de passe</title> </head> <body> <p>Veuillez entrer le mot de passe :</p> <form method="POST" name="myForm"> <p> <input name="mdp" type="text" id="mdp" size="10" required="required"><br /> </p> <?php if (!empty($_POST['mdp'])) { echo mdp(); } function mdp() { if ($_POST['mdp'] == 'root') { header("Location: formulaire7.php"); } else { echo 'Désolé, mais ce mot de passe est faux. <br />'; } } ?> <p> <input type="submit" value="Envoyer"> </p> </form> </body> </html>
Me dire si ça fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <?php ini_set("display_errors", TRUE); error_reporting(E_ALL); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Formulaire</title> </head> <body> <?php echo' <form method="post"> <label>Nom</label> <input type="text" name="nom" required> <label>Email</label> <input type="email" name="email" required> <label>Message</label> <textarea name="message" required></textarea> <input name="submit" type="submit"> </form>'; if (isset($_POST['submit'])) { $entete = 'MIME-Version: 1.0' . "\r\n"; $entete .= 'Content-type: text/html; charset=utf-8' . "\r\n"; $entete .= 'From: ' . $_POST['email'] . "\r\n"; $message = '<h1>Message envoyé depuis la page Contact de monsite.fr</h1> <p><b>Nom : </b>' . $_POST['nom'] . '<br> <b>Email : </b>' . $_POST['email'] . '<br> <b>Message : </b>' . $_POST['message'] . '</p>'; if (mail('contact@xxxxxxxxord.com', 'Envoi depuis page Contact', $message, $entete)) { echo '<p>Votre message a bien été envoyé.</p>'; } else { echo 'Envoi loupé !'; } } ?> </body> </html>
Franchement, j'ai un peu honte de ce code risquant, de par sa tournure, de heurter ; mais faut ce qui faut.
Pas interdit de l'optimiser et améliorer.
DS7
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager