Partage
  • Partager sur Facebook
  • Partager sur Twitter

mot de passe d'une page web

Sujet résolu
    27 décembre 2009 à 11:54:08

    Bonjour,

    J'ai essayé de protégé mon site web par un mot de passe. Quelqu'un sait pourquoi cela ne fonctionne pas ?

    <?php
    while("<script>document.write(prompt('Entrer le mot de passe du site :'));</script>" != "monMDP"){
    }
    ?>
    

    Ensuite je met ma page en HTML

    Pourtant, si je fait ça :
    <?php
    $mot_de_passe = "<script>document.write(prompt('Entrer le mot de passe du site :'));</script>";
    echo $mot_de_passe;
    ?>
    

    Si juste après ce code, j'écrit du html, ça marche, mais dès que je fait un test sur ma variable $mot_de_passe, ça ne marche plus (enfin ça ne fait pas ce que je voudrai faire).

    Il y a un truc que j'ai du mal comprendre. Quelqu'un pourrait m'éclairer ?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      27 décembre 2009 à 14:21:31

      Le truc que tu as du mal à comprendre, en l'occurrence, c'est l'ordre d'exécution !

      Le PHP est exécuté avant le javascript.

      Et là tes codes n'ont vraiment aucun sens.

      Si tu veux que le mot de passe reste côté serveur (je suppose que c'est ce que tu cherches à faire), il va falloir que tu utilises Ajax pour envoyer la valeur récupérée par le prompt() javascript à une page PHP qui pourra la traiter, puis agir en fonction de la valeur retournée par la page PHP.

      >Va voir le tuto sur Ajax.
      • Partager sur Facebook
      • Partager sur Twitter
        27 décembre 2009 à 19:11:24

        Ok merci, je vais aller voir le tutoriel sur AJAX.
        • Partager sur Facebook
        • Partager sur Twitter
          27 décembre 2009 à 20:35:07

          euh... JS pour les mots de passe, c'est... dangereux... Je te déconseille
          • Partager sur Facebook
          • Partager sur Twitter
            27 décembre 2009 à 20:53:09

            Normalement si c'est fait avec Ajax (et bien fait), devrait pas y avoir de risques.
            • Partager sur Facebook
            • Partager sur Twitter
              27 décembre 2009 à 21:48:48

              Je viens de commencer le début du tutoriel d'AJAX, et j'ai modifié le code précédent, mais il y a un autre truc que je comprend pas. Voici mon code :



              <?php
              
              $mot_de_passe = isset($_GET["mot_de_passe"])?pg_escape_string(htmlspecialchars($_GET["mot_de_passe"])):"";
              
               
              if ($mot_de_passe == "myMDP") // Si le mot de passe est bon
              {
              
              ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
              //le contenu de ma page web
              </html>
              
              <?php
              }
              else // le mot de passe n'est pas bon
              {
              ?>
              
              <script type="text/javascript" src="oXHR.js"></script>
              <script type="text/javascript">
              <!--
              
              var mot_de_passe = prompt("Entrer le mot de passe du site :");
              var xhr = getXMLHttpRequest();
              xhr.open("POST", "index.php", true);
              xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
              xhr.send(null);
              xhr.send("mot_de_passe="+mot_de_passe);
              
              //-->
              </script> 
              
              <?php
              }
              ?>
              


              Le fichier oXHR.js est celui du tutoriel sur AJAX, il y a ça dedans:
              /* ** cartouche ********************************************************************* */
              /* Script complet de gestion d'une requête de type XMLHttpRequest                     */
              /* Par Sébastien de la Marck (aka Thunderseb)                                         */
              /* ********************************************************************************** */
              
              function getXMLHttpRequest() {
              	var xhr = null;
              	
              	if (window.XMLHttpRequest || window.ActiveXObject) {
              		if (window.ActiveXObject) {
              			try {
              				xhr = new ActiveXObject("Msxml2.XMLHTTP");
              			} catch(e) {
              				xhr = new ActiveXObject("Microsoft.XMLHTTP");
              			}
              		} else {
              			xhr = new XMLHttpRequest(); 
              		}
              	} else {
              		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
              		return null;
              	}
              	
              	return xhr;
              }
              



              En gros je pensais qu'avec cette fonction : xhr.open("POST", "index.php", true), je pouvais rouvrir ma page index.php, après que l'utilisateur aurait tapé le mot de passe, mais apparemment ça marche pas.

              Quelqu'un sait d'ou viens le problème ?

              Merci d'avance
              • Partager sur Facebook
              • Partager sur Twitter
                28 décembre 2009 à 4:10:20

                La requête AJAX ne ré-ouvre pas ta page, celle-ci est seulement appelée (en arrière plan) et les données sont récupérées dans la page actuelle. Tu devrais continuer le chapitre sur l'objet XMLHttpRequest (Récupération des données) pour mieux comprendre le principe d'une requête AJAX.
                • Partager sur Facebook
                • Partager sur Twitter
                  28 décembre 2009 à 5:37:31

                  Et ne met pas deux send(). Soit tu envoies des donnes (cas de la méthode POST), soit tu envoies null (cas de la méthode GET).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 décembre 2009 à 20:59:47

                    En effet, j'avais essayé les méthodes POST et GET, et après j'ai oublié d'enlever la dernière ligne.
                    Sinon, pour protéger mon site par un mot de passe, je crois que je vais reprendre la technique en php que montre M@teo21 dans son tutoriel, ce sera plus simple.

                    Merci pour vos réponses

                    Cédric
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 décembre 2009 à 21:39:40

                      Ok. Pense à mettre ton sujet en résolu à l'aide du lien en bas de page. ;)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      mot de passe d'une page web

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown