protéger un script php par mot de passe

Bon, toujours dans l’apprentissage php, je stocke ce petit script bien utile.

J’ai récemment fait (enfin pompé honteusement) un petit script pour pouvoir lire et écrire sur un fichier texte en ligne. Mais voilà comme le but était de concevoir une application pour le boulot, il fallait que ce soit sécurisé.

Après bien des recherches et des essais je sèche. Mon sauveur est venu de Twitter en la personne de Crash__ .

Voilà le script:

<?php
/**
* Cette méthode est une méthode basique. Elle te demande de rentrer le mot de passe à chaque fois, même si tu viens
* de le modifier. Tu pourrais stocker en session le fait que le M. ait bien saisi le mot de passe et que du coup
* il n’a plus besoin de le rentrer durant les X minutes qui suivent.
**/

$fichier= »votretexte.txt »; // Nom du fichier à modifier
$myPassword = ‘votremotdepasse’;

//On regarde si le password est envoyé ou pas
if(isset($_POST[‘password’])){
//On regarde si le password est bon
if($_POST[‘password’] != $myPassword){
echo ‘Mauvais mot de passe’;
exit(0);
}
//On regarde si y a une modification
if(isset($_POST[’boutton’])) {
//if(is_file($fichier)) unlink($fichier); //si le fichier existe :  suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments
$ouverture=fopen($fichier, »w »); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu’en écriture et unlink devient inutile car le fichier est vidé automatiquement
//Tu devrais tester si tu as les droits d’écriture sur le fichier, sinon tu vas avoir une erreur mais il va te
//dire que la modification est bien arrivée…
fwrite($ouverture,$_POST[‘modif’]); // ecriture
fclose($ouverture); // fermeture du fichier
echo ‘<h2>Modification effectue</h2>’; // Affichage validation
}

?>
<form method= »post » action= » »> <!– j’ai modifié action pour qu’il soit compatible peut importe le nom de la page–>
<textarea name= »modif » rows= »10″ COLS= »40″><?php // fait attention de bien collé les déclaration php au balises html sinon ca ecria les espace dans ton fichier
if(is_file($fichier)) echo file_get_contents($fichier);
?></textarea>
<!– ici on regénère l input password avec le bon contenu –>
<input type= »hidden » name= »password » value= »<?php echo $_POST[‘password’]; ?> » />
<br/><input type= »submit » name= »boutton » value= »Modifier »>
</form>
<?php
}else{
?>
<form method= »post » action= » »>
Password : <input name= »password » type= »password » />
<input type= »submit » value= »envoyer » />
</form>
<?php
}

script mot de passe (320)

Encore une fois, s’il y a des améliorateurs, ils sont les bienvenus.

Ecrire et lire sur un fichier en ligne (ou comment se faire sont petit carnet perso en php)

Bon ça n’intéressera pas grand monde, mais il fait bien que je stocke quelque part, mes trouvailles et surtout que je puisse retrouver mon travail.

Alors le but du jeu était de réaliser une petite interface qui permettait d’écrire quelque part sur un fichier en ligne et de le lire. En réalité ça sert à bien plus. Première utilisation en gros, je me connecte et je vois ce qu’il y a écrit et je peux le modifier. une sorte de petite prise de note en ligne donc. En fait le but est que ce fichier soit ensuite lu par une autre application (en flash elle). Alors comme je ne panne rien au php, il a fallu chercher et apprendre un peu les principes de base.

Finalement en découle un petit script en php à installer sur un serveur.

Voilà le script pour mémoire.

 

<?php
$fichier= »votre texte.txt »; // Nom du fichier à modifier

if(isset($_POST[’boutton’])) {
//if(is_file($fichier)) unlink($fichier); //si le fichier existe :  suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments
$ouverture=fopen(« $fichier », »w »); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu’en écriture et unlink devient inutile car le fichier est vidé automatiquement
fwrite($ouverture, »$_POST[modif] »); // ecriture
fclose($ouverture); // fermeture du fichier
echo ‘<h2>Modification effectue</h2>’; // Affichage validation
}

?>
<form method= »post » action= » »> <!– j’ai modifié action pour qu’il soit compatible peut importe le nom de la page–>
<textarea name= »modif » rows= »10″ COLS= »40″><?php // fais attention de bien coller les déclaration php au balises html sinon ca ecrira les espace dans ton fichier
if(is_file($fichier)) echo file_get_contents($fichier);
?></textarea>
<br/><input type= »submit » name= »boutton » value= »Modifier »>
</form>

scriplecture ecriture (334)

 

resterait plus qu’à l’habiller mais c’est déjà pas mal. Si l’un d’entre vous a des suggestions d’amélioration, je suis preneur.