Transmettre requete SQL via HTTP?

Résolu/Fermé
saudek - 19 sept. 2008 à 03:09
 saudek - 19 sept. 2008 à 20:14
Bonjour à tous,

Je suis en présence de deux feuilles PHP.
Un premier fichier, sur lequel les résultats d'une requête SQL dynamiquement crée avec des filtres (via un formulaire basique) s'affichent dans un tableau.
Cette requête j'aimerais l'envoyer vers le deuxième fichier, lequel est un script d'exportation en format XLS.

Seulement le soucis est que l'adresse HTTP qui est envoyée est sous ce format : http://toto.fr/administration/admin-federation/export_XLS.php?export=select%20*%20FROM%20adherents_toto%20WHERE%201=1
(j'ai volontairement changé le nom de domaine).

Le soucis c'est que cette requête est, dans l'état dans lequel je la récupère avec le $_GET['export']=mysql_real_escape_string($_GET['export']);, inutilisable.

Avez vous une astuce à me donner, soit pour transmettre la requête sous une forme utilisable, soit pour décoder la requête envoyée comme ci-dessus?

Merci d'avance.
Cordialement.
A voir également:

9 réponses

Merci pour vos réponses, je vais investiguer la possibilté de urldecode().
cet url est envoyé entre deux pages à accès restreint, étant donné que c'est une section admin.
Aucune malveillance n'est donc à craindre.tout est protégé oar .htaccess.

De toute façon je vois pas d'autre possibilité plus propre.
Merci encore.
0
Comment passer ma requete en utilisant la methode POST?
En fait n'étant pas spécialement une lumiière en PHP j'ai fait un code tout simple pour envoyer les données vers le script export_xls
<?php
echo "<a href='export_XLS.php?export=".$query."' target=\"_blank\">Exporter en format XLS (Microsoft Excel)</a>"
?>

Puis sur l'autre page je récupère le tour :
<?
if (isset($_GET['export']))
{
$_GET['export']=mysql_real_escape_string($_GET['export']);
}
?>
0
Bon en fait j'ai essayé d'utiliser la fonction urldecode() mais le soucis c'est que les espaces (pour des raisons historiques qu'il disent sur le site php) sont remplacés par des +.
Donc dans ce cas la fonction explode pourra exploser ma chaine de caractère séparée par des +?
Pourrais-je ensuite reprendre chacune de mes variables et reconsituer ma requete sur mon deuxieme scipt avant l'envoie en XLS? Si oui comment les déclarer ces variables?

Merci beaucoup pour votre aide.
0
Merci c'est ce que j'ai fait et ça fonctionne.
Merci beaucoup pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
19 sept. 2008 à 09:49
Salut,

Oui utilise la fonction urldecode()

Par contre passer une requête comme ça dans une url, ça me semble poser un grave problème de sécurité.
-1
Utilisateur anonyme
19 sept. 2008 à 10:29
O_o C'est clair !!!! N'utilises surtout pas cette méthode elle est peut s'avérer super dangereuse.
-1
Utilisateur anonyme
19 sept. 2008 à 10:40
Au lieu d'utiliser la méthode GET, utilises déjà la méthode POST, ca permettra de ne pas voir le paramètre dans la barre d'adresse ;-)
-1
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
19 sept. 2008 à 10:57
Et passe les données indépendamment les unes des autres, du genre id=5 machin=truc etc...
Ca te permettra d'affiner, plus tard, la sécurité en vérifiant les données une à une.
-1
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
19 sept. 2008 à 12:20
Pourquoi tu ne passes pas tes variables une à une?
Genre en GET ça donnerait:
monurl?id=20&machin=truc

Ensuite dans ton script tu reconstruis ta requête.
-1