php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.01.2006, 00:56  
Benutzer
 
Registriert seit: 29.09.2005
Beiträge: 39
lamp
Standard cURL

Hallo,

ich stehe gerade irgendwie total auf dem Schlauch.
Ich habe zwei Server. Auf Server A läuft ein Tool das sich Daten von Server B aus einer MySQL-DB holt. Jetzt wollte ich dafür cURL-Funktionen einsetzen und die $_POST-Variablen von Server A mittels cURL an Server B übergeben. Server B soll dann auf seine lokale MySQL zugreifen und das Ergebnis wieder an Server A zurückgeben.
Mein Problem ist, dass Server B irgendwie gar nicht auf die Anfrage von Server A reagiert. Und Server A gibt mir immer nur boole(false) zurück.
Wie kann ich denn auf Server B die Daten erstmal annehmen, verarbeiten und dann wieder an Server A zurückgeben.

Danke schonmal für Eure Hilfe!
lamp ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.01.2006, 09:23  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Das von Dir beschriebene Verfahren funktioniert.

Server B braucht ein Skript, das die übergebenen GET- oder POST-Variablen nimmt (eine davon könnte ein Paßwort sein) und das Ergebnis ganz normal ausgibt (z. B. als XML oder CSV ...).

Server A muß seine Anfrage absenden, wobei Du für GET-Variablen nicht mal unbedingt curl brauchst, und das zurückgegebene Ergebnis parsen.

Warum es bei Dir nicht geht, verstehe ich nicht. In Deinem Quellcode kann ich keinen Fehler finden

Das ganze geht aber auch viel einfacher, wenn Du einfach von Server A direkt auf die Datenbank von Server B zugreifst ...
tapferesschneiderlein ist offline   Mit Zitat antworten
Alt 26.01.2006, 10:27  
Benutzer
 
Registriert seit: 29.09.2005
Beiträge: 39
lamp
Standard

Hallo,

hier ist der Code, den ich auf Server A habe. Wie muss denn jetzt der Code auf Server B dazu aussehen, damit Server B veranlasst wird, in die DB zu schauen und das Ergebnis wieder an Server A zurückzugeben?

Code:
function MyCurl($request)
    {
        $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
        $ch = curl_init();

        $request['usr'] = 'xxxxx';
        $request['pwd'] = 'xxxxx';
        $request['method'] = $request['method'];
        $request['plz'] = $request['plz'];
        $request['ort'] = $request['ort'];
        ...
        $request['bla'] = $request['bla'];

        curl_setopt($ch, CURLOPT_URL, "https://xxx.de/curl.php");
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  0);
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

        $result = curl_exec($ch);
        curl_close($ch);

        return $result;
    }
Ich habe schon diverses mit $_POST etc. versucht. Leider erfolglos.

Direkten Zugriff von Server A auf die DB von Server B wäre zwar das Einfachste, aber hier aus Datenschutzrechlichen Gründen nicht machbar. Es muss schon so sein, dass auf Server B eine Klasse hinterlegt ist, die DB-Anfragen annimmt, auswertet und dann zurückgibt.
lamp ist offline   Mit Zitat antworten
Alt 26.01.2006, 11:49  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Zitat:
Zitat von lamp
Wie muss denn jetzt der Code auf Server B dazu aussehen, damit Server B veranlasst wird, in die DB zu schauen und das Ergebnis wieder an Server A zurückzugeben?
...
Ich habe schon diverses mit $_POST etc. versucht. Leider erfolglos.
Das kommt drauf an, was Du willst. Wie sieht denn Dein Codeentwurf bisher aus und wo konkret kommst Du nicht weiter?




Zitat:
Direkten Zugriff von Server A auf die DB ... hier aus Datenschutzrechlichen Gründen nicht machbar.
Kannst Du das (oT) mal näher erläutern (interessiert mich einfach)?
tapferesschneiderlein ist offline   Mit Zitat antworten
Alt 26.01.2006, 12:44  
Benutzer
 
Registriert seit: 29.09.2005
Beiträge: 39
lamp
Standard

Hallo,

mein Code sieht bisher so aus. Mir ist es allerdings noch nicht gelungen, überhaupt etwas an Server A zurückzugeben.

PHP-Code:
<?php
$post 
$_POST;

$curlB = new cURLB();

$return_zu_ServerA $cURLB->select($post);


class 
cURLB {
    function 
cURLB()
    {
        
//
    
}

    function 
select($post)
    {
        
$sql  'SELECT * FROM '.$post['table']';
        $sql .= ' 
WHERE `plz` = '.$post['plz];

        
$data MySQL::select($sql);
        return 
$data;
    }
}
?>
Wg. Datenschutz ist das eigentlich nur eine rechtliche Formsache. Es geht hier konkret um eine Kooperation, bei der der Kooperationspartner Daten aus einer lokalen Datenbank abfragen darf. Er darf allerdings keinen direkten Zugruff auf die DB bekommen, die zudem noch in einer DMZ steht. Das wäre also schon rein technisch sehr aufwendig. Also kam mir die Idee, das mittels cURL zu machen. Dabei dürfen nur ganz bestimmte Parameter übergeben werden und die lokale Klasse cURLB prüft vor Abfrage der DB die $_POST-Daten ganz genau. Das habe ich hier im Code wg. der Übersicht weggelassen.
lamp ist offline   Mit Zitat antworten
Alt 26.01.2006, 12:59  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Mal sehen ...
PHP-Code:
<?php
$post 
$_POST;
# Was soll das denn?


$curlB = new cURLB();
# Hier wird das Objekt erzeugt ... ok.


$return_zu_ServerA $cURLB->select($post);
# Hier wird die Variable $return_zu_ServerA mit dem 
# Return-Wert der Methode select() gefüllt ... auch ok.


# Hier endet das Skript, es folgt nur noch eine 
# Klassendefinition, die einen Parse-Fehler erzeugen
# müßte (siehst Du auch hier im Highlighting), keine
# Ausgabe irgendwelcher Daten.


class cURLB {
    function 
cURLB()
    {
        
//
    
}

    function 
select($post)
    {
        
$sql  'SELECT * FROM '.$post['table']';
        $sql .= ' 
WHERE `plz` = '.$post['plz];

        
$data MySQL::select($sql);
        return 
$data;
    }
}
?>
PS: Du solltest dringend noch eine Plausibilitätsprüfung für die übergebenen Variablen oder wenigstens ein Paßwort einbauen, evtl. auch mal ein paar Anführungszeichen im SQL-Code ...
tapferesschneiderlein ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
POST-Übergabe des Array $_FILES mit CURL Frank Burian PHP-Fortgeschrittene 10 19.11.2008 17:06
Brauche bitte Hilfe mit CURL (cookies). Chaox PHP-Fortgeschrittene 2 18.02.2008 08:33
änderung einer konfiguration mit curl emmi PHP Tipps 2008 12 08.02.2008 09:46
Montrada POSH Service via cURL ansteuern Plague PHP-Fortgeschrittene 0 04.05.2007 10:46
Datei Upload mit curl? R.E.M. PHP Tipps 2006 1 18.09.2006 20:44
CURL aufrufe in Klasse verpacken vegeta PHP Tipps 2006 8 16.05.2006 11:03
statt http_request über curl ? seven-12 PHP Tipps 2005-2 2 12.06.2005 22:47
kein CURL benutzen seven-12 PHP-Fortgeschrittene 3 12.06.2005 20:57
CURL Traffic begrenzen ? robo47 PHP Tipps 2005 13 02.06.2005 15:04
Zufalls IP per Curl mitgeben Flor1an PHP Tipps 2005 4 04.05.2005 22:38
[Erledigt] curl mit cfm Datei PHP-Fortgeschrittene 4 30.01.2005 15:52
[Erledigt] PHP nachträglich mit CURL Support ausstatten PHP-Fortgeschrittene 2 20.12.2004 16:19
[Erledigt] CURL / PHP bestimmten String auslesen PHP-Fortgeschrittene 2 05.10.2004 18:22
cURL: Webseite einlesen PHP Tipps 2004 1 14.07.2004 00:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php curl annehmen, curl datenbank anfrage, csv über curl in mysql, php curl xml senden, php curl nur bestimmte, curl post variablen auslesen, wie curl einsetzten, curl entgegennehmen php, curl server ip entgegennehmen php, curl einsetzen, php curl post variable, php5 an curl variablen übergeben, curl post 2 mal in datenbank, curl übetragung auf server entgegennehmen, mysql select curl php, curl post variable, curl php gibt nur false zurück, datenbankabfrage mit curl, csv auslesen curl

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.