Conection mysql dans frame impossible [Résolu]

Signaler
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009
-
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009
-
Bonjour,


Je sollicite aujourd'hui votre aide pour un problème qui m'est totalement inconnue.


Je dispose d'une page principale index.php,qui est constitué de 2 frame(haut et bas ).


Pour que mon projet marche,il me faudrait me connecter a la base mysql à partir de la frame bas.


Or Cela ne marche pas,la seul page ou je puisse me connecter est index.htm


Si ce n'est pas possible la seule solution serez un script dans la page
principale qui s'exécute lorsque la frame bas est réactualiser...et
donc beaucoup de travail pour une chose simple...


Merci de m'éclairer,

13 réponses

Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

Probléme résolu,enfaite c'était ma variable $idmLog qui était erroné! Merci a tous pour votre aide!
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Deux petites remarques :
 - Le PHP devrais te servir a générer le HTML et non y être intégré par ci par là a l'arrache, de ce point là le fait qu'il y ai des frame n'importe plus du tout.
 - Les frammes sont a bannir, vire les donc le plus rapidement possible. Leur utilisation n'apporte aucun avantage mais énormément de problèmes divers.
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

Dans le cadre de mon projet les frames sont malheureusement obligatoire,car il me faut une partie de la page se réactualisant indépendamment de l'autre.
Je ne suis donc pas venu ici pour des leçons,mais pour solliciter votre aide.

Merci,
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Non les frames ne sont pas obligatoires, tu as d'autres manières de faire, par exemple en ajax.
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

Avant de songer a recommencer un projet auquel j'ai accorder des heures de travail,et auquel il ne me reste plus que ce petit problème insignifiant pour pourvoir le terminer a bien.J'aimerai connaitre si oui ou non il est possible d'exécuter une requête mysql dans une frame.

Merci de votre compréhension,
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Oui c'est possible, un simple mysql_connect() et tu es connecté, que la page soit chargée depuis une frame ou pas. Ceci ce gère côté serveur, donc frame ou pas ça ne changera rien.

Au passage, fait bien attention a ce que ton fichier ait bien l'extension .php, sinon apache ne va pas appeller php pour interpretter ton code.
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

C'est ce que je pensé également mais cela ne marche pas...
J'ai un mysql_connect dans la page principale ou j'exécute des requêtes qui fonctionnent parfaitement.
Dans la frame je procède a un mysql_connect,et puis j'exécute la requête,mais en faisant un echo pour tester,celui ci ne retourne rien...
Le code est correct,je l'ai testé dans la page principale celui-ci fonctionne parfaitement.
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Si la connexion avait échouée tu aurais eu de jolis messages d'erreur, puisque tu n'en fait pas mention je suppose que l'erreur n'est pas là. Est-il possible de voir ton code stp ?
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

bien sur,

<?php

$host = "xxxx"; // Adresse du serveur MYSQL
$user = "xxxx"; // Utilisateur de MYSQL
$pass = "xxx"; // Mot de passe de MYSQL
$bdd = "xxxx"; // Base de donnée utilisé dans MYSQL

@mysql_connect($host,$user,$pass)
   or die("Impossible de se connecter");
@mysql_select_db($bdd)
   or die("Impossible de se connecter");

$idmLog=$_GET['idmLog'];
  
 //On recupere notre nombre de points
$donnees23= mysql_query("SELECT points FROM fk_membres WHERE idm='".$idmLog."'");
$mesPoints23= mysql_fetch_assoc($donnees23);

echo $mesPoints23['points'];  
?>
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Heureux que tu ai pu trouver ton soucis.

Au passage, j'ai le plaisir de t'avertir d'une très grave faille de sécurité dans ton code. N'importe qui est en mesure d'effectuer une injection de sql et de dumper toute ta base de donnée. Je t'invite a assainir ta variable $_GET['idmLog'] (ou $idmLog si tu veux, les deux sont identiques et ça t'as été complètement inutile d'utiliser cette dernière variable de transition).

Juste pour le fun je t'invite a utiliser la chaine suivante dans ta variable get (en modifiant l'url dans ton navigateur) :
42' AND 4=2 UNION SELECT CONCAT('Base : ', DATABASE(), '
Utilisateur : ', CURRENT_USER(), '
Il y a ', `TABLE_ROWS`, ' entrees dans la table et je peux toutes les lister.') AS 'points' FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`=DATABASE() AND `TABLE_NAME`='fk_membres' LIMIT 1 --

Ceci aura pour effet d'afficher le nom de ta base de donnée, le nom d'utilisateur que tu utilise (avec le host) et le nombre d'entrées de la table fk_membres.
Tu remarquera que j'utilsie directement fk_membres parce que je connais d'avance le nom de cette table, mais grâce a information_schema n'importe qui le retrouve ainsi que le nom et la structure complete de toutes tes tables.

Toi qui disais ne pas être là pour des leçons, en voici une bien bonne qui t'apprendras a assainir les donnés provenant d'un utilisateur. lorsque tu attend un entier, utilise donc intval(), floatval() pour un float, mysql_real_escape_string() ou htmlentities() pour une chaine de caractères etc.
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

Merci pour l'info complémentaire ;) Au contraire mon but est d'apprendre :)

Néanmoins je suis tout de même déçu car les requêtes mysql a l'intérieur de ma frame ne marche pas en mon espérance.
Cela marche mais elle ne sont exécutés qu'une seul fois,je pensé que comment la frame est réactualiser avec des sites toutes les 10sec,les requêtes exécuteraient toutes les 10sec mais non,et enfaite cela est même logique^^

En réfléchissant la seule solution qu'il me reste est d'exécuter ces requêtes grâce a l'Ajax.Et vu mes connaissances nuls en la matiére.Je suis dans la *****. :p
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Le php est côté serveur, il est normal que la requête sql ne soit effectuée que lors du chargement de la page (la page de la frame bien entendu). Tu peux tenter de faire se rafraichir la page à l'aide d'une balise meta (<meta http-equiv="Refresh" content="temps; page.php" /> avec le temps en secondes et page.php le non de ta page), cependant je connais trop mal els frames pour te dire si une frame peu contenir un header et s'il sera bien interpretté sur tous les navigateurs.
Messages postés
28
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
30 mai 2009

Malheureusement je ne peut pas^^
Car une liste est généré sous forme de tableau javascript est formé dans la page principale,Si je réactualise toute les sec la page principale,on ira pas loin dans la liste :p lOl
Faire une requête mysql avec JAVAX qui pourrait pourquoi pas s'exécuter toutes les 10sec,esce compliquer?

Je tiens a vous remerciez tout de meme pour l'aide et le temps que vous me consacré,je trouve cela fort sympathique.