[PHP] Ajout dans un array

Aidez-moi -  
 Aidez-moi -
Bonjour, j'utilise ce code pour ajouter protégé mes pages :

<?php

$passwords = array('7964628f5fb01a270ab8ed119351ae47ebdf65df', '2b681c0a24baff8899d7163cc7f805c75e1f44e4');
$password = sha1($_POST['password']);

if(!in_array($password, $passwords)) {
echo '<p>PAS OK</p>'."\n";
}
else {
echo '<p>OK</p>'."\n";
}

?>


Donc la il y a 2 mots de passe autorisé (dans le array), mais j'aimerai que depuis un formulaire un met un mot de passe et que ça le rajoute dans le array, a la suite.

Merci d'avance.

4 réponses

bruno
 
Regarde du côté de array_push : https://www.php.net/manual/fr/function.array-push.php pour ajouter un élément à un tableau
Ou bien même array_merge : https://www.php.net/manual/fr/function.array-merge.php pour fusionner deux tableaux.
0
Aidez-moi
 
Oui, mais cela ne reste pas enregistré tout le temps et pour tout le monde.
Je pense qu'il faudrait l'enregistré dans un fichier texte, mais je ne suis pas sûr, et surtout je ne sais pas comment faire.

Je vous remercie d'avance pour votre aide.
0
bruno
 
Un fichier .htmotsdepasse (le commencer par .ht fait qu'Apache le cache est interdit son libre téléchargement) contenant un mot de passe par ligne.

Ensuite, en PHP,


$password = sha1($_POST['password']);
$ok = false

$handle = fopen('.htmotsdepasse');
while(!feof($handle) && !$ok) {
   $ok = $password == fgets($handle);
}
fclode($handle);


if($ok) {
echo '<p>PAS OK</p>'."\n";
}
else {
echo '<p>OK</p>'."\n";
}

devrait fonctionner.


Pour l'écriture, si le mot de passe qu'on veut ajouter est dans $_POST['nouveau_mdp'] :

$nouveau = sha1($_POST['nouveau_mdp']);

$handle = fopen('.htmotsdepasse', 'a');         //Ecriture seule, et se place à la fin du fichier
fwrite ($handle, PHP_EOL . $nouveau);
fclose($handle);

devrait fonctionner (PHP_EOL est une nouvelle ligne, comme '
' ou "\n" (enfin si je ne m'abuse.))
0
Aidez-moi
 
Cela ne fonctionne pas chez moi...
0