fonctionne sous mozilla mais avec explorer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fonctionne sous mozilla mais avec explorer

Re: fonctionne sous mozilla mais avec explorer

par moogli » 02 nov. 2011, 10:13

Re: fonctionne sous mozilla mais avec explorer

par ytzmi » 02 nov. 2011, 10:05

ben voilà, c'est une question que je me posais sans trop savoir où j'allais.

étant débutante, j'ai pris ça et là, pour monter le site et je me disais bien que ce "login.inc.ph" avait sa propre fonction.

donc, puisque ce site, a plusieurs utilisateurs qui ont leur propre table sql avec mdp, je dois les ajouter dans ce fichier "login.inc.ph", c'est ça ?

merci pour cet avancée :|

Re: fonctionne sous mozilla mais avec explorer

par xTG » 30 oct. 2011, 20:38

A moins que ces variables soient définies dans le fichier login.inc.php elles n'apparaissent nulle part => elles n'existent pas
Et si elles proviennent du fonctionnement register_global saches que c'est une mauvaise méthode, d'ailleurs tu utilises bien $_GET ailleurs donc autant tout faire proprement. ;)

Re: fonctionne sous mozilla mais avec explorer

par ytzmi » 30 oct. 2011, 19:49

ok, je vais étudier cela à tête reposée...

par contre, une question toute bête et bêtasse, quand tu écris "la variable n'existe pas".

le : mysql_real_escape_string($mini); // ceci correspond à la table
et le : mysql_real_escape_string($mino); // cela au mot de passe.

pour moi, ces variables existent mais pas pour toi... Pourquoi ?

j'ai une trouille de me faire rembarrer à poser cette question, mais tant pis :roll:

merci

Re: fonctionne sous mozilla mais avec explorer

par moogli » 30 oct. 2011, 00:33

salut,

je commente dans le code
<html>
 <head>
 <title>mariang</title>
 </head>
 <body background="http://monsite.free.fr/image/bleue.jpg">
 </body>
 </html>

 <a href="./insert_mariang.php3"><font face="Comic Sans MS" size="4"><b><i><div align="center">Ajouter un cadeau à la liste</div></i></b></font></a>
 <br><div align="center"><font face="Comic Sans MS" size="4" color="#FF0000"><b>Une idée cadeau par message</b></font>
 <br><font face="Comic Sans MS" size="3" color="#000000"><b>Plusieurs cadeaux = Plusieurs messages <br>(à cause de la suppression)</b></font></div>

 <br /><br /><hr width="80%" color="#CC6600"/><hr width="60%" color="#3333CC" /><br /><br />

<?php
// on se connecte à la base de données
include ('protected/login.inc.php');

//On récupère l'identifiant
$id = $_GET["id"]; // faudrait utiliser isset ou empty

//Supression du message
if ($suppr) { // la variable n'existe pas et cette méthode est loin d'être une bonne méthode
$result=mysql_query ("DELETE FROM mariang WHERE Id='$suppr'") or die ("Erreur de suppression");// un id me dit un chiffre dans ce cas les ' sont inutile seule les chaines de caractères le doivent (les dates le sont)
} 

//on initialise notre formulaire pour pouvoir le masquer
$masquer_formulaire = 0;

$sql = "SELECT Id, Message FROM mariang ORDER BY Id DESC";
mysql_real_escape_string($mini); // la variable n'existe pas
mysql_real_escape_string($mino);// idem
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

$nb_signature = mysql_num_rows($req);

if ($nb_signature == 0) { // un triple égale serait mieux car si $nb_signature vaut false le test sera vrai
         echo 'Aucune idée cadeau pour l\'instant.';
}
else {
         while ($data = mysql_fetch_array($req)) {
                 
                 echo '<br />';
                 echo nl2br(htmlentities(trim($data['Message'])));
                 echo '<br />';  
                 echo nl2br(htmlentities(trim($data['Id'])));
                 
                         echo '<br />';
                         echo '<br /><div align="center">Si tu le prends, <a href="mariang.php3?suppr='.$data['Id'].'"><img border="0" src="http://mini.free.fr/image/balai.gif" ><input type="submit" value="Le Supprimer de la liste" name="delete"></a> pour éviter les doublons, s\'il y a lieu</div>';
                 
                 echo '<br /><br /><hr width="80%" color="#CC6600"/><hr width="60%" color="#3333CC" />';
                 echo '<br /><br />';                                                                                                                                                                            
         }
}               

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connection à la base de données.
mysql_close ();
?>
Après un navigateur n'agit que coté client il envoie des données, mais n'agit pas sur le code php. donc quelque soit le navigateur cela ne change rien.

Après faut débugger ton script, voir d'où viennent ces variables et vérifier leurs provenances et leurs valeurs.

Pour ce qui est de la validation des formulaires http://phpdebutant.org/article56.php
Pour le débogage http://phpdebutant.org/article52.php

comment est la page qui envoie les données sur ce script ?

@+

fonctionne sous mozilla mais avec explorer

par ytzmi » 29 oct. 2011, 14:59

Bonjour,

Par hasard, je me suis aperçue que si je veux supprimer un cadeau d'une liste, cela ne fonctionne pas sur la page Explorer, par contre cela marche avec Mozilla.

est-ce qu'il faut rajouter quelque chose pour que cela fonctionne quelle que soient les pages de navigation ?

voici le script de la page "incriminée"
<html>
<head>
<title>mariang</title>
</head>
<body background="http://monsite.free.fr/image/bleue.jpg">
</body>
</html>

<a href="./insert_mariang.php3"><font face="Comic Sans MS" size="4"><b><i><div align="center">Ajouter un cadeau à la liste</div></i></b></font></a>
<br><div align="center"><font face="Comic Sans MS" size="4" color="#FF0000"><b>Une idée cadeau par message</b></font>
<br><font face="Comic Sans MS" size="3" color="#000000"><b>Plusieurs cadeaux = Plusieurs messages <br>(à cause de la suppression)</b></font></div>

<br /><br /><hr width="80%" color="#CC6600"/><hr width="60%" color="#3333CC" /><br /><br />

<?php
// on se connecte à la base de données
include ('protected/login.inc.php');

//On récupère l'identifiant
$id = $_GET["id"];

//Supression du message
if ($suppr) {
$result=mysql_query ("DELETE FROM mariang WHERE Id='$suppr'") or die ("Erreur de suppression");}

//on initialise notre formulaire pour pouvoir le masquer
$masquer_formulaire = 0;

$sql = "SELECT Id, Message FROM mariang ORDER BY Id DESC";
mysql_real_escape_string($mini);
mysql_real_escape_string($mino);
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

$nb_signature = mysql_num_rows($req);

if ($nb_signature == 0) {
	echo 'Aucune idée cadeau pour l\'instant.';
}
else {
	while ($data = mysql_fetch_array($req)) {
		
		echo '<br />';
		echo nl2br(htmlentities(trim($data['Message'])));
		echo '<br />';	
		echo nl2br(htmlentities(trim($data['Id'])));
		
			echo '<br />';
			echo '<br /><div align="center">Si tu le prends, <a href="mariang.php3?suppr='.$data['Id'].'"><img border="0" src="http://mini.free.fr/image/balai.gif" ><input type="submit" value="Le Supprimer de la liste" name="delete"></a> pour éviter les doublons, s\'il y a lieu</div>';
		
		echo '<br /><br /><hr width="80%" color="#CC6600"/><hr width="60%" color="#3333CC" />';
		echo '<br /><br />';																						
	}
}		

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connection à la base de données.
mysql_close ();
?>
sur mozilla on peut supprimer, sur explorer, on ne peut pas (et pour les autres pages, style Opera, Google chrome ect, je ne sais pas)
que faudrait-il rajouter pour que cela fonctionne sur toutes les pages de navigation ?

merci