Requetes SQL sur serveur distant
19 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Requetes SQL sur serveur distant
Bonjour,
Je cherche un moyen d'interroger et renseigner une base MYSQL qui est sur un serveur différent de celui qui héberge mon site.
Le problème est qu'en raison d'un parefeu, je ne peux y accèder directement depuis une IP externe.
La solution que j'entrevoie est de mettre un script PHP sur le serveur hébergeant la base SQL (requete.php) puis depuis le site web faire une requete du genre
http://serveurSQL.com/requete.php?param ... aram3=titi
Le script requete.php récupèrerait les paramètres pour construire la requete SQL avec.
Mais comment executer la requete "http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi" depuis mon serveur web ?
J'ai bien pensé à :
<img src="http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi" alt="bidon" />
Mais je ne trouve pas ça très propre, même si d'après mes premiers tests cela à l'air de fonctionner.
Merci d'avance.
Je cherche un moyen d'interroger et renseigner une base MYSQL qui est sur un serveur différent de celui qui héberge mon site.
Le problème est qu'en raison d'un parefeu, je ne peux y accèder directement depuis une IP externe.
La solution que j'entrevoie est de mettre un script PHP sur le serveur hébergeant la base SQL (requete.php) puis depuis le site web faire une requete du genre
http://serveurSQL.com/requete.php?param ... aram3=titi
Le script requete.php récupèrerait les paramètres pour construire la requete SQL avec.
Mais comment executer la requete "http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi" depuis mon serveur web ?
J'ai bien pensé à :
<img src="http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi" alt="bidon" />
Mais je ne trouve pas ça très propre, même si d'après mes premiers tests cela à l'air de fonctionner.
Merci d'avance.
Dernière édition par totof78 le Mer Mai 30, 2007 22:25, édité 2 fois.
Je te remercie pour ton aide.
Par contre, dans mon fichier distant, je place un cookie :
Avec la méthode du file_get_contents, le cookie ne se crée pas.
Par contre, si j'execute le script requete.php directement en mettant son URL dans la barre d'adresse de mon navigateur, le cookie se créé bien.
Une idée ?
Merci d'avance.
Par contre, dans mon fichier distant, je place un cookie :
- Code: Tout sélectionner
if(!isset($_COOKIE['visiteurID'])) {
$uniqueid=uniqid(rand(), true);
} else {
$uniqueid=$_COOKIE["visiteurID"];
}
if(!isset($_COOKIE['visiteurID'])) {
setcookie('visiteurID',$uniqueid);
}
Avec la méthode du file_get_contents, le cookie ne se crée pas.
Par contre, si j'execute le script requete.php directement en mettant son URL dans la barre d'adresse de mon navigateur, le cookie se créé bien.
Une idée ?
Merci d'avance.
Je ne peux pas car je n'ai pas la main sur la config du serveur (free.fr).
Mais je viens de trouver.
En fait c'est normal que le cookie ne passe pas vu que je le fais créer sur le serveur mysql et que je cherche sur le serveur du site
Donc je le crée sur le serveur du site, puis je le passe en argument dans le file_get_contents pour pouvoir l'exploiter dans la base SQL.
Merci de votre aide à tous les 2
Mais je viens de trouver.
En fait c'est normal que le cookie ne passe pas vu que je le fais créer sur le serveur mysql et que je cherche sur le serveur du site
Donc je le crée sur le serveur du site, puis je le passe en argument dans le file_get_contents pour pouvoir l'exploiter dans la base SQL.
Merci de votre aide à tous les 2
Re: Requetes SQL sur serveur distant
Comme ça n'importe quel visiteur peut se balader et faire n'importe quoi sur ta base de donnée...totof78 a écrit:J'ai bien pensé à :
<img src="http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi" alt="bidon" />
Méthode à éviter. Il faut gérer ça en interne dans PHP, le visiteur ne doit pas voir ce qui se passe.
Je n'ai pas compris l'histoire du cookie, à quoi te sert-il ?
Tu peux le passer en paramètre de ton script requete.php
@+
Serious a écrit:file_get_contents('http://sql.com/requete');
oui ou sinon utiliser l'extension curl :
- Code: Tout sélectionner
<?php
$data = array('sql' => "SELECT CRYPTE");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://sql.com/requete');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE_PATH);
curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE_PATH);
curl_exec($ch);
?>
Ici les données sont postées.
Pour la sécurité il conviendrait de crypter la requête
A remarquer que CURLOPT_COOKIEJAR et CURLOPT_COOKIEFILE permettent de manipuler les cookie de sql.com
Maintenant tu n'as peut être pas curl d'installer sur ton serveur...
Re: [Resolu] Requetes SQL sur serveur distant
Alors, j'ai essayé :
Mais chaque fois j'ai :
[function.file-get-contents]: failed to open stream: No such file or directory
ou
[function.fopen]: failed to open stream: No such file or directory
Alors que si j'enlève les arguments pour ne laisser que http://serveurSQL.com/requete.php ça marche.
Le problème est que j'ai des arguments à passer
Une idée ?
- Code: Tout sélectionner
file_get_contents("http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi")
ou
fopen("http://serveurSQL.com/requete.php?param1=tutu¶m2=toto¶m3=titi","r")
Mais chaque fois j'ai :
[function.file-get-contents]: failed to open stream: No such file or directory
ou
[function.fopen]: failed to open stream: No such file or directory
Alors que si j'enlève les arguments pour ne laisser que http://serveurSQL.com/requete.php ça marche.
Le problème est que j'ai des arguments à passer
Une idée ?
Serious a écrit:Es-tu sur que ton URL est valide? as-tu bien encode les parametres? Poste un exemple stp (sans le domaine).
Oui l'URL est bonne car si je fais un copier/coller dans la barre d'adresse de IE ou Firefox, ça marche.
Pour info, la voici :
http://xxxxxx.free.fr/includes/requete. ... 0.01005349
julienr a écrit:et avec curl tu t'en sors pas ?
J'ai fais des essais hier soir avec le code suivant :
- Code: Tout sélectionner
$data = "ip=$ipnumber";
$data = $data."&page_lang=$userlanguage";
$data = $data."&hote=$hote";
$data = $data."&id=".$_SESSION['uniqueid'];
$error_FH = fopen("http://xxx.free.fr/includes/error.log","w");
echo 'lancement de Curl';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://xxxi.free.fr/includes/requete.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $error_FH);
curl_exec($ch);
Dans mon script requete.php je fais des entrées dans une base SQL et, la, rien ne se passe
De plus le fichier error.log ne se créé pas.
19 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Nombre moyen de mots par requête : statistiques AOL Août 2006
- Nuage de tags Wordle pour WebRankInfo
- Comment créer une page web en PHP
- Comparer les classes C de 2 adresses IP
- Tous les outils à connaître pour analyser un site
- Redirection (PHP, JavaScript, serveur...)
- Changements de nom de domaine et TrustRank
- Votre site doit toujours être accessible rapidement : conseil n°7 en référencement
- Le marketing viral au service du référencement
Consultez la description détaillée des produits ou services de Google suivants : Google Web Accelerator, Google Trends Recherche Personnalisée
- Voir la classe C de plusieurs sites
Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur). - Analyseur d'entête HTTP
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum