[PHP] Ajout dans un array

Fermé
Aidez-moi - 16 juin 2010 à 15:59
 Aidez-moi - 18 juin 2010 à 00:10
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.
A voir également:

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.
0
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
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
Cela ne fonctionne pas chez moi...
0