Rechercher : dans
Par :

Javascript /php :bug de window.location

Dernière réponse le 12 nov 2009 à 08:06:20 Pure chèvre, le 9 nov 2009 à 17:58:05 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je suis novueau, j'espère avoir posté au bon endroit :)
Je reprends la gestion d'un site, et je suis très mauvais en javascript.

Depuis quelques jours, un problème est apparu (en même temps que la nouvelle version d'IE8 ?). Sur ma page d'accueil, j'ai un champ de texte et un bouton "VALIDER". si on rentre le bon mot de passe, on peut accéder à la page suivante.

Sous Firefox, pas de problème, qu'on clique sur VALIDER ou qu'on appuie sur "Entrée", on accède à la page suivante.
Sous IE 8, le clic fonctionne. Mais pas le fait d'appuyer sur Entrée. Alors que tout allait bien jusque là.

Voilà la syntaxe utilisée pour le semblant de sécurisation.

<?php
              include ('./connect_db.php'); 
              if (isset($_POST['valider']))
                  {
                    $mot_de_passe = $_POST['mdp'];
                    $mot_de_passe_hash = md5($mot_de_passe);
                    $log=mysql_query("SELECT * FROM pass ")or die(mysql_error());
                    $t_log=mysql_fetch_array($log);
                  if ($mot_de_passe_hash==$t_log['pass']){
                  ?>
<script type="text/javascript">
window.location.href="./fichier_cible.php";
</script>
<?php }}

Quelqu'un a une idée d'où ça peut venir ?

Merci d'avance :)
Configuration: Windows XP
Firefox 3.5.5
IE8

Meilleures réponses pour « Javascript /php :bug de window.location » dans :
[PHP] Détecter la résolution d'affichage VoirPHP ne fournit pas de fonction permettant la détection de la résolution d'affichage car l'information concernant l'affichage du visiteur n'est pas fournie nativement par le protocole HTTP. Javascript par contre permet de détecter la résolution...
Javascript - L'objet window VoirLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de...
PHP - Les cookies et les en-têtes HTTP VoirLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une...
Javascript - L'objet navigator VoirLes particularités de l'objet navigator L'objet navigator est un objet qui permet de récupérer des informations sur le navigateur qu'utilise le visiteur. Cela paraît totalement inutile à première vue, toutefois, comme vous le savez sûrement, il...

1

avion-f16, le 9 nov 2009 à 18:02:39

en même temps que la nouvelle version d'IE8 ?
IE8 est sorti depuis déjà plusieurs mois ...

Pour mieux comprendre ton problème, il est souvent utile d'ouvrir les codes sources depuis le navigateur, pour voir à quoi elles ressemble après avoir été générée avec PHP.

Je penses que c'est cette ligne qui pose problème :

$log=mysql_query("SELECT * FROM pass ")or die(mysql_error());
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.

Répondre à avion-f16

2

Pure chèvre, le 10 nov 2009 à 08:05:56

Merci pour la réponse :)
En fait je parlais d'une mise à jour Windows concernant internet Explorer, qui a eu lieu ces derniers jours, pas de la dernière version en elle même.

J'ai affiché la source de la page côté client, et voilà que j'obtiens :

<form name="pass" enctype="multipart/form-data" method="post" action="fichier_cible.php">
       <center>
             <label class="label"><i>Espace Client</i></label>
             <input type="password" name="mdp" size="10" class = "champtexte"/> <br />
             <input type="submit" name="valider" value="valider" class="submit"/>
       </center>
</form>


Si c'était la requête SQL qui posait problème, ne devrait-elle pas le poser quel que soit le navigateur ?
Merci en tout cas pour ta réponse :)

Répondre à Pure chèvre

3

avion-f16, le 10 nov 2009 à 16:46:03

Je penses que c'est surtout la redirection en JS.
D'ailleur, évite de faire des redirections en JS quand c'est pour empêcher de voir le reste de la page.
Fait ça en PHP avec la fonction header (aucun caractères, espace compris, ne dois avoir été envoyé [echo, en-dehors de "<?php" et "?>", ...]). :

<?php
...
header('Location: pagecible.php');
die();
...
?>
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.

Répondre à avion-f16

4

 Pure chèvre, le 12 nov 2009 à 08:06:20

Ok, je vais me documenter sur ces fonctions php et tenter le coup.

Merci de l'info ;)

Répondre à Pure chèvre
Collection CommentÇaMarche.net