Question de frame

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 : Question de frame

Re: Question de frame

par tintin88 » 13 oct. 2011, 13:39

Bonjour xTG et un grand merci pour ta participation.

En effet, mon erreur venait de là. Je clos cette discussion en te remerciant de nouveau, toi et ceux qui se sont penchés sur mon problème.
tintin88

Re: Question de frame

par xTG » 12 oct. 2011, 13:50

On parle d'une variable non protégée au sein d'une requête SQL, tu n'as aucune requête sur ce fichier, il faudra regarder dans les fichiers inclus.

Dans l'optique l'erreur pourrait être de ce genre :
SELECT id, nom FROM table WHERE champ = 'champ avec l'apostrophe'
La quote dans la valeur du champ va poser problème et occasionner une erreur du même genre que celle que tu rencontres.
Il faut la protéger, si cette valeur est contenue dans la variable $valeur alors il convient de procéder ainsi :
$valeur = mysql_real_escape_string($valeur);
Ce qui la transformera en :
champ avec l\'apostrophe

Re: Question de frame

par tintin88 » 12 oct. 2011, 13:29

Cela n'a rien à voir avec tes frames, même si c'est cela qui a permis de voir le bug.
Tu dois sans doute passer en paramètre d'une requête SQL une variable non protégée.
Merci xTG pour la rapidité de ta réponse. J'ai donc regardé ce qu'est une variable non protégée sur le net mais ne vois néanmoins pas mon problème. Je mets donc ci-dessous la totalité de mon fichier Chiens.php pour lequel le problème semble se poser en ligne 1 d'après l'erreur.
<?php
	include 'compteur incrementation.php'; // Incrémentation éventuelle du compteur
	include 'php/mysql_conf.inc.php'; // Inclusion du fichier de connexion à la base de données
	$link=mysql_connect($host,$login,$password) or die ('Erreur :'.mysql_error() ); // Connexion à MySql
	$base = mysql_select_db($base); // Sélection de la base
	include 'php/Chiens/Initialisation variables.php';
?>

<?php
echo "  <body>";
echo "     <script language=\"javascript\">\n";
echo "     <!-- Début\n";
echo "    // Moteur\n";
echo "    if(self==top)\n";
echo "      {\n";
echo "      top.location.href=\"Frames.php\"}\n";
echo "     // End -->\n";
echo "     </script>\n";
echo "<h1>Bonjour</h1>\n";
echo "  </body>";
?>
Le ligne 1 en question étant <?php, je comprends mal où ça coince ...
Merci pour votre aide.
tintin88

Re: Question de frame

par xTG » 12 oct. 2011, 11:26

Cela n'a rien à voir avec tes frames, même si c'est cela qui a permis de voir le bug.
Tu dois sans doute passer en paramètre d'une requête SQL une variable non protégée.

Question de frame

par tintin88 » 12 oct. 2011, 11:21

Bonjour,

J'ai commencé mon site il y a quelques années avec des frames et je souhaite qu'un internaute qui arrive sur une page à l'extérieur des frames voie cette même page à l'intérieur. Je vérifie donc dans la page ciblée (Chiens.php) si elle se trouve à l'extérieur des frames et , dans ce cas, je la renvoie vers les frames (Frames.php) en faisant s'afficher la page Chiens.php dans la frame centrale (Corps).

Chiens.php est le fichier suivant :
<?php
echo "  <body>";
echo "     <script language=\"javascript\">\n";
echo "     <!-- Début\n";
echo "    // Moteur\n";
echo "    if(self==top)\n";
echo "      {\n";
echo "      top.location.href=\"Frames.php\"}\n";
echo "     // End -->\n";
echo "     </script>\n";
echo "<h1>Bonjour</h1>\n"
echo "  </body>";
?>
Tandis que Frames.php est ci-dessous :
<html>
<head>
</head>
  <?php
	header("Pragma: no-cache");
	$path=$_SERVER['HTTP_REFERER'];
	$file = basename ($path);	// doit donner la page d'origine
  ?>
  <frameset rows="105,*" framespacing="0" frameborder="0">
    <frameset cols="240,50,*,200,150" framespacing="0" frameborder="0">
       <frame name="f-gauche" src="haut_gauche.html" scrolling="no" noresize target="gauche">
       <frame name="f2" src="bal.html" scrolling="no" noresize target="gauche">
       <frame name="f-milieu" src="menu-haut.php" scrolling="no" noresize target="gauche">
       <frame name="f-intranet" src="php/login/index.php" scrolling="no" noresize target="gauche">
       <frame name="f-droit" src="haut-droite.html" scrolling="no" noresize target="gauche">
    </frameset>
    <frameset cols="160,*,160" framespacing="0" frameborder="0">
       <frame name="gauche" src="menu-gauche.html" target="gauche" scrolling="yes" noresize>
		<?php echo "<frame name=\"corps\"  src=\"$file\" noresize>";?>
       <frame name="droite" src="menu-foret-droite.html" target="gauche" scrolling="yes" noresize>
    </frameset>
    <noframes>
  <body>
  </body>
</html>
Mon problème est que, quand, quand je teste, le message d'erreur suivant s'affiche :
Erreur :1064You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Chiens'' at line 1

Une âme charitable pourrait-elle m'éclairer ?
Merci d'avance
tintin88