[PHP] Ajout dans un array
Aidez-moi
-
Aidez-moi -
Aidez-moi -
Bonjour, j'utilise ce code pour ajouter protégé mes pages :
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.
<?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
-
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. -
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. -
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.)) -