IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Protection d'un unique fichier avec formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut Protection d'un unique fichier avec formulaire
    Bonjour,
    J'ai fait un petite script qui me permet de modifier le code source d'un de me fichier en ligne, j'essaye maintenant de le protéger mais je n'y arrive pas car je souhaite avoir tous dans le même fichier (pas passer par un fichier externe si possible ou a la rigueur un seul)

    Tous fonctionne tres bien sauf que la page que j'affiche apres est une page avec un formulaire et quand je clique sur celui ci la page se remet sur la partie mot de passe sans faire la modification :

    Je vous met le code de mon fichier :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Admin</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
    <!--
    body,td,th {
    	color: #333;
    }
    -->
    </style></head>
        <body>
           <?php
        $fichier="test.php";
     
            if(isset($_POST['boutton']))
            {    
            unlink($fichier); 
            $ouverture=fopen("$fichier","a+"); 
            fwrite($ouverture,"$_POST[modif]"); 
            fclose($ouverture); 
            echo '<h2><font color=red>Modification(s) effectu&eacute;(s) !!!</font></h2>'; 
            }
     
    ?>
        <form method="post" action="modif.php">
          <p>
            <TEXTAREA name="modif" rows="30" COLS="200">
      <?php echo file_get_contents($fichier); ?>
        </TEXTAREA>
            <br/><input type="submit" name="boutton" value="Modifier">
          <p>      
        </form>
        <A HREF="#" onClick="window.open('dplive.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=400, height=300');return(false)"><font color="#179dc9"><strong>Voir DPLive</strong><i></font></a>
    </body>
    </html>
    Merci a vous

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Si j'ai bien compris ton problème,
    il faut que tu retiennes ton mot de passe
    dans un input de type hidden par exemple.
    Fred

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 74
    Points : 85
    Points
    85
    Par défaut
    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['boutton']))
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['modif']))

  4. #4
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci de vos réponse,

    En faite quand je fait cela (mon script ) :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?php
    // J'ai choisi le mot de passe "kangourou"
    if (isset($_POST['mot_de_passe'])) // Si la variable existe
    {
        // On se crée une variable $mot_de_passe avec le mot de passe entré
        $mot_de_passe = $_POST['mot_de_passe'];
    }
    else // La variable n'existe pas encore
    {
        $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
    }
     
    if ($mot_de_passe == "kangourou") // Si le mot de passe est bon
    {
    // On affiche la page cachée.
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Admin</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
    <!--
    body,td,th {
    	color: #333;
    }
    -->
    </style></head>
        <body>
           <?php
        $fichier="dplive.php"; // Nom du fichier à modifier
     
            if(isset($_POST['boutton']))
            {    
            unlink($fichier); // suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments
            $ouverture=fopen("$fichier","a+"); // Création du nouveau fichier et ouverture du fichier
            fwrite($ouverture,"$_POST[modif]"); // ecriture
            fclose($ouverture); // fermeture du fichier
            echo '<h2><font color=red>Modification(s) effectu&eacute;(s) !!!</font></h2>'; // Affichage validation
            }
     
    ?>
        <form method="post" action="modifdplive.php">
          <p>
            <TEXTAREA name="modif" rows="30" COLS="200">
      <?php echo file_get_contents($fichier); ?>
        </TEXTAREA>
            <br/><input type="submit" name="boutton" value="Modifier">
          <p>      
        </form>
        <A HREF="#" onClick="window.open('dplive.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=400, height=300');return(false)"><font color="#179dc9"><strong>Voir DPLive</strong><i></font></a>
    </body>
    </html>
     
    <?php
    }
    else // le mot de passe n'est pas bon
    {
    // On affiche la zone de texte pour rentrer le mot de passe.
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Page protégée par mot de passe</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <body>
    <p>Veuillez entrer le mot de passe pour obtenir les codes d'accès au serveur central de la NASA :</p>
    <form action="modifdplive.php" method="post">
    <p>
    <input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
    </p>
    </form>
    <p>Cette page est réservée au personnel de la NASA. Si vous ne travaillez pas à la NASA, inutile d'insister vous ne trouverez jamais le mot de passe ! ;-)</p>
        </body>
    </html>
    <?php
    } // Fin du else
    // Fin du code :)
    ?>
    - Je met mon mot de passe
    - Ma page s'affiche
    - Je fait une modif et je la valide

    La Modif n'est pas pris en compte et je retourne directement sur la page demande de mot de passe au lieu d'avoir le message modification effectué.

    Merci de votre aide

  5. #5
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Essaye en rajoutant un input de type hidden dans ton premier formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="mot_de_passe" value="<?php echo $mot_de_passe; ?>"/>
    Comme ça,
    lorsque tu rappelles la page en validant le formulaire,
    tu conserves le mot de passe dans $_POST['mot_de_passe'].
    Fred

  6. #6
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Punaise j'hallucine cela fonctionne, je n'avais pas pensé à cela

    Merci a toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier avec clé unique n'acceptant pas de doublon
    Par as40095 dans le forum AS/400
    Réponses: 27
    Dernier message: 03/06/2009, 15h05
  2. Formulaire d'upload de fichier avec paramètre
    Par HSMan dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/04/2008, 20h47
  3. exporter un fichier avec enregistrer uniquement
    Par dietrich dans le forum Framework .NET
    Réponses: 6
    Dernier message: 01/03/2007, 10h12
  4. Plusieurs formulaires dans un fichier avec plusieurs méthodes post
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2006, 15h04
  5. [Sécurité] [PHP5][.HTACCESS] Protection fichier avec .htaccess
    Par Righetto Dominique dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2006, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo