php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 02-12-2014, 04:57
dor557
 Registrierter Benutzer
Links : Onlinestatus : dor557 ist offline
Registriert seit: Dec 2014
Beiträge: 2
dor557 befindet sich auf einem aufstrebenden Ast
Standard PHP Curl ab und zu timeout !

Hallo zusammen,

das ist mein erster beitrag. Ich hoffe das mir jemand helfen kann.

Ich bin dabei eine API für meine HP zu erstellen. Damit ich dann nicht immer alles doppelt programmieren muss und dann mittels android auf die API zugreifen kann verwende ich innerhalb der PHP seite auch curl.

nun kommt das Rätselhafte.

ab und zu bekomme ich den korrekten rückgabewert den ich erwarte.

Dann aber wieder einen timeout als würde er die url nicht finden.

das ergibt für mich keinen sinn

hier der Code (Denke aber nicht das der Helfen wird oder da ein Fehler drinnen ist.

hier mal die Classe die ich geschrieben habe

PHP-Code:
class tt_sdk
{
      var 
$ch;
      var 
$TT_APP_ID;
      var 
$TT_API_KEY;
      var 
$TT_API_VER;
      var 
$TT_API_SERVER;
      var 
$TT_URL;

       function 
tt_sdk() {
          
$this->TT_APP_ID "aus sicherheitsgründen entfernt";                  
          
$this->TT_API_KEY "gleicher grund fürs löschen";
          
$this->TT_API_SERVER 'http://beta.tuningtreffen.info';
          
$this->TT_API_VER '1';
          
$this->TT_URL $this->TT_API_SERVER.'/api/v'.$this->TT_API_VER.'/';
          
          
       }

    function 
init($func) {
         
$this->ch curl_init();
         
curl_setopt($this->chCURLOPT_HTTPHEADER, array(
              
'Content-Type: application/json',
              
'X-Parse-Application-Id: '.$this->TT_APP_ID,
              
'X-Parse-REST-API-Key: '.$this->TT_API_KEY
         
));
         
curl_setopt_array($this->ch, array(
           
CURLOPT_RETURNTRANSFER => 1,
           
CURLOPT_NOSIGNAL => 1,
           
CURLOPT_URL => $this->TT_URL.''.$func,
           
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
           
CURLOPT_POST => 1,
           
CURLOPT_CONTENT_TYPE => 'application/json'
         
));
        }

        function 
post_data($data) {
         if (
$_COOKIE['tt_token'] <> null) {       
            
$data['auth_token'] = $_COOKIE['tt_token'];
          }         
          
$dataString json_encode($data);
          
curl_setopt($this->chCURLOPT_POSTFIELDS$dataString);
          
curl_setopt($this->chCURLOPT_CONNECTTIMEOUT ,10); 
          
curl_setopt($this->chCURLOPT_TIMEOUT10); 
          
$response curl_exec($this->ch);
          if (
$response === false) {
            echo 
"fehler";
            
$result['error']['curl'] = curl_error($this->ch);
            
$result['error']['url'] = curl_getinfo($this->chCURLINFO_EFFECTIVE_URL);
          }
          
$res_code curl_getinfo($this->chCURLINFO_HTTP_CODE);
          
$result['error']['url'] = curl_getinfo($this->chCURLINFO_EFFECTIVE_URL);
          
curl_close($this->ch);
          
$result['error']['code'] = $res_code;

          
$result['response'] = json_decode($response,true);
          return 
$result;
        }

wie gesagt ab und zu bekomme ich das gewünschte ergebnis und ab und zu gibt es n timout das mir dann der $res_code = 0 ausgibt.

wie in gottes namen kann das sein ?

gruss Sascha
Mit Zitat antworten
  #2 (permalink)  
Alt 02-12-2014, 07:12
dor557
 Registrierter Benutzer
Links : Onlinestatus : dor557 ist offline
Registriert seit: Dec 2014
Beiträge: 2
dor557 befindet sich auf einem aufstrebenden Ast
Standard Problem erkannt, Problem gebannt !

Also !

Der fehler war nicht das curl die URL nicht gefunden hatte sondern das ich die session_id an das CURL script mit übergeben habe !

da aber 2 scripts nicht gleichzeitig auf die SESSION daten zugreifen dürfen (was aber in meinem fall notwendig war) und die daten schreibgeschützt waren hat sich der CURL aufruf aufgehängt.

nun zu meiner Frage warum es mal ging und mal nicht.

wenn ich mich mit den fb daten eingeloggt hatte gab es keine fehlermeldung da die session nicht übergeben wurde. (warum auch immer) auf jeden fall hat das script dann eine neue session geschrieben und ich bekam nur die antwort das der TOKEN nicht gefunden wurde.

Logisch....

jetzt wie hab ich das gelöst ?

in dem Jeweiligen script was mittels CURL aufgerufen wird am ende der datei folgende zeile eingefugt :
PHP-Code:
session_write_close(); 
allerdings musste ich das auch in meiner SDK einbauen :

PHP-Code:
    function init($func) {
         
session_write_close();
         
$this->ch curl_init();
         
curl_setopt($this->chCURLOPT_HTTPHEADER, array(
              
'Content-Type: application/json',
              
'X-Parse-Application-Id: '.$this->TT_APP_ID,
              
'X-Parse-REST-API-Key: '.$this->TT_API_KEY
         
));
         
         
curl_setopt_array($this->ch, array(
           
CURLOPT_RETURNTRANSFER => 1,
           
CURLOPT_NOSIGNAL => 1,
           
CURLOPT_URL => $this->TT_URL.''.$func,
           
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
           
CURLOPT_POST => 1,
           
CURLOPT_CONTENT_TYPE => 'application/json'
         
));
        }

        function 
post_data($data) {       
          
$dataString json_encode($data);
          
curl_setopt($this->chCURLOPT_POSTFIELDS$dataString);
          
curl_setopt($this->chCURLOPT_CONNECTTIMEOUT ,10); 
          
curl_setopt($this->chCURLOPT_TIMEOUT10); 
          
$response curl_exec($this->ch);
          if (
$response === false) {
            
$result['error']['curl'] = curl_error($this->ch);
            
$result['error']['url'] = curl_getinfo($this->chCURLINFO_EFFECTIVE_URL);
          }
          
$res_code curl_getinfo($this->chCURLINFO_HTTP_CODE);
          
$result['error']['url'] = curl_getinfo($this->chCURLINFO_EFFECTIVE_URL);
          
curl_close($this->ch);
          
$result['error']['code'] = $res_code;
          
$result['error']['Message'] = 'Fehler !';
          
session_start();
          
$result['response'] = json_decode($response,true);
          return 
$result;
        } 
nachdem dann curl abgeschlossen wurde habe ich die session mit "session_start()" wieder schreibfähig gemacht.

und alle probleme waren gelöst.

sollte da ein Profi evtl etwas zu verbessern haben bin ich gerne bereit dieses zu berücksichtigen !

gruss sascha
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
curl


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
https request mit curl - anzeige der HTML Elemente vor timeout snopi PHP Developer Forum 5 27-10-2011 11:08
cURL Timeout beim Abfragen von Messenger-Online-Status scheint nicht zu funktionieren baerenwurm PHP Developer Forum 5 25-02-2011 18:46
PHP cURL timeout?! svr PHP Developer Forum 26 01-07-2010 14:23
[gelöst] SESSION und PHP-Timeout Gunah PHP Developer Forum 10 02-11-2009 16:00
PHP und Curl Ketchup Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) 0 25-02-2003 17:13

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:06 Uhr.