2010-06-08 8 views
12

Je l'importation des contacts de gmail sur ma page .....curl_init undefined?

Le processus ne fonctionne pas en raison de cette erreur

'curl_init' n'est pas défini

La suggestion que je suis arrivé est de

  1. curl.dll destination uncomment
  2. copie les bibliothèques suivantes aux fenêtres/system32 dir: ssleay32.dll et libeay32.dll
  3. copie php_curl.dll aux fenêtres/system32

Après avoir essayé toutes ces choses, je rafraîchi xampp, mais même alors une erreur se produit.

C'est ma page où je suis en train d'importer les contacts gmail:

<?php 
resource curl_init ([ string $url = NULL ]) 

$ch = curl_init(); 


curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 


curl_exec($ch); 


curl_close($ch); 
?> 

<?php 
echo "hi"; 

if($_POST['submit'] != '') { 
    echo "hi"; 

    $clientlogin_url = "https://www.google.com/accounts/ClientLogin"; 


    $clientlogin_post = array(
    "accountType" => "HOSTED_OR_GOOGLE", 
    "Email" => $_POST['Email'], 
    echo "Passwd" => $_POST['Passwd'], 
    "service" => "cp", 
    "source" => "tutsmore/1.2" 
    ); 


    $curl = curl_init($clientlogin_url); 


    curl_setopt($curl, CURLOPT_POST, true); 


    curl_setopt($curl, CURLOPT_POSTFIELDS, $clientlogin_post); 


    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 


    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 


    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 


    $response = curl_exec($curl); 



    preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches); 
    $auth = $matches[1]; 


    $headers = array("Authorization: GoogleLogin auth=" . $auth); 


    $curl = curl_init('http://www.google.com/m8/feeds/contacts/default/full?max-results=10000'); 


    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 


    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 


    $feed = curl_exec($curl); 


    echo "contacts".$contacts=array(); 


    $doc=new DOMDocument(); 



    if (!empty($feed)) $doc->loadHTML($feed); 


    $xpath=new DOMXPath($doc); 


    $query="//entry"; 
    $data=$xpath->query($query); 

    foreach ($data as $node) { 


     $entry_nodes=$node->childNodes; 


     $tempArray=array(); 


     foreach($entry_nodes as $child) { 


      $domNodesName=$child->nodeName; 

      switch($domNodesName) { 
       case 'title' : { 
         $tempArray['fullName']=$child->nodeValue; 
        } break 
        ; 
       case 'email' : { 
         if (strpos($child->getAttribute('rel'),'home')!==false) 
          $tempArray['email_1']=$child->getAttribute('address'); 
         elseif(strpos($child->getAttribute('rel'),'work')!=false) 
          $tempArray['email_2']=$child->getAttribute('address'); 
         elseif(strpos($child->getAttribute('rel'),'other')!==false) 
          $tempArray['email_3']=$child->getAttribute('address'); 
        } break 
        ; 
      } 
     } 
     if (!empty($tempArray['email_1']))$contacts[$tempArray['email_1']]=$tempArray; 
     if(!empty($tempArray['email_2'])) $contacts[$tempArray['email_2']]=$tempArray; 
     if(!empty($tempArray['email_3'])) $contacts[$tempArray['email_3']]=$tempArray; 
    } 
    foreach($contacts as $key=>$val) { 

     echo $key."<br/>"; 
    } 
} 
else { 

    ?> 
<form action="<?=$PHP_SELF?>" method="POST"> 
    <table> 
     <tr> 
      <td>Email:</td><td><input type="text" name="Email" /></td> 
     </tr> 
     <tr> 
      <td>Password:</td><td><input type="password" name="Passwd" /></td> 
     </tr> 
     <tr><td colspan="2" align="center">tutsmore don't save your email and password trust us.</td></tr> 
     <tr><td colspan="2" align="center"><input type="submit" name="submit" value="Get Contacts" /></td></tr> 
    </table> 
</form> 
    <?php 
} 
?> 

Ce code est entièrement fourni pour le débogage; si une optimisation est nécessaire, je vais essayer d'optimiser le code.

Répondre

8

Créer un nouveau fichier php - comme temp.php - et juste ajouter:

phpinfo(); 

Il devrait vous donner des informations de toute votre configuration de PHP. Faites défiler les bibliothèques installées et voir si cURL est là. Si ce n'est pas le cas, appuyez sur Manuel - http://php.net/manual/en/book.curl.php - et installez-le. Les instructions sont plutôt bonnes.

2

resource curl_init ([ string $url = NULL ])

Est-ce vraiment apparaît dans votre code source? Si c'est le cas, commentez-le, car il s'agit juste de la documentation du type et des arguments de retour de curl_init.

Maintenant, si curl vous pose encore des problèmes à ce stade, vous devez vérifier php.ini et vous assurer que extension=php_curl.dll n'a pas de ; devant lui. (Je ne sais pas si c'est ce que vous vouliez dire par votre premier commentaire ou non.) Ensuite, utilisez XAMPP pour redémarrer Apache.

30

pour installer boucle avec php, vous tapez la commande

sudo apt-get install php5-curl 

après votre installation php

+6

Il semble qu'il utilise Windows, pas Linux. –

+0

pour compléter ceci je devais 'php5enmod curl' et' service apache2 restart' sur debian – steven

0

J'utilise ce bloc de code pour savoir si l'hôte/serveur d'un client a curl installé ou non

[email protected]_version(); 
$cv=$ci["version_number"]; 
if($cv) echo "curl installed"; 
else echo "curl is not installed"; 
1

pour le serveur XAMMP, allez dans votre fichier php.ini et retirer la marque ; depuis le début de l'être ligne basse -

;extension=php_curl.dll 


redémarrer votre serveur apache, maintenant son fonctionnera bien :) ..

2

avec linux: sudo apt-get install php5.6-curl (php5-curl est parti) puis redémarrez apache (sudo service apache2 restart)

aussi pour la ligne de commande php, compositeur et tel, ajoutant simplement sudo apt-get install php-curl fonctionnera parce que je pense "son action sur sa version active