2014-03-28 7 views
6

Ich bin eine cURL Anfrage über Kohana machen 3.2, aber ich bekomme die folgende Fehlermeldung, wenn es CURLOPT_POST Konstante zuzugreifen versucht:Verwendung von undefinierter Konstante CURLOPT_POST - angenommen ‚CURLOPT_POST‘

Use of undefined constant CURLOPT_POST - assumed 'CURLOPT_POST' 

Von Kohana 3.2 system/classes/kohana/request/client/curl.php

public function _set_curl_request_method(Request $request, array $options) 
{ 
    switch ($request->method()) { 
     case Request::POST: 
      $options[CURLOPT_POST] = TRUE; 
      break; 
     case Request::PUT: 
      $options[CURLOPT_PUT] = TRUE; 
      break; 
     default: 
      $options[CURLOPT_CUSTOMREQUEST] = $request->method(); 
      break; 
    } 
    return $options; 
} 

Mein Anwendungscode:

$request = Request::factory($uri); 
$request->query('key', $key); 
$request->post($params); 
$request->method(Request::POST); 

// fails here 
$response = $request->execute(); 

I hav e getestet, dass Curl als Erweiterung aktiv ist mit:

if (in_array ('curl', get_loaded_extensions())) 
{ 
    echo '1'; 
} 
else 
{ 
    echo '0'; 
} 

Was ist das Problem hier? Ich verwende Windows 7, PHP 5.4.12 und Apache 2.4.

+0

Können Sie den Codeabschnitt anzeigen, in dem Sie 'CURLOPT_POST' tatsächlich verwenden? – kero

+0

Ich habe den Code zu meinem Beitrag hinzugefügt. – xylar

+0

Haben Sie bereits einen Aufruf an eine der Curl-Funktionen in Ihrem Skript? Eine, die php mit 'undefined function curl _....' freimachen würde, wenn die Curl-Erweiterung nicht verfügbar ist? Wenn nicht (oder unsicher) besser mit phpinfo(), extension_loaded ('curl'), ... überprüfen ... – VolkerK

Antwort

5

Ich bemerkte, extension=php_curl.dll wurde in C:\wamp\bin\php\php5.4.12\php.ini auskommentiert, aber aktiv über C:\wamp\bin\apache\Apache2.4.4\bin\php.ini.

Ich habe festgestellt, dass das Auskommentieren der Zeile in C:\wamp\bin\php\php5.4.12\php.ini mein Problem behoben.

2

Lassen Sie uns zuerst überprüfen php-curl auf Ihrem Server durch

aptitude search php-curl 

oder aptitude search php5.6-curl

installiert, wenn diese noch nicht installiert ist, machen wir es von

installieren
sudo apt-get install php5.6-curl 
+0

Dies funktioniert ** nicht **, da der Fragesteller ausdrücklich angibt, dass er eine ältere Version von PHP hat (5.4.12), was mit 'php5.6-curl' unvereinbar wäre. Bitte lesen Sie die Fragen sorgfältig durch, bevor Sie Antworten geben. Auch diese Frage wurde vor 2 Jahren gestellt und hatte bereits eine akzeptierte Lösung. Bitte versuchen Sie zu vermeiden, Fragen an die Spitze zu stoßen, indem Sie ihnen Antworten geben, es sei denn, die Frage wurde nicht bereits als gelöst markiert, oder Sie haben einen dramatisch besseren alternativen Ansatz für das Problem gefunden :) –