Problème authentification avec curl
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

Problème authentification avec curl

Par
MehdiB
Créé le 2017-08-26 07:37:13 (edited on 2024-09-04 11:35:58) dans Hébergements Web

Bonjour,

Je rencontre soudainement un problème avec un script de connexion, celui-ci ne veut plus me générer ce fameux token indispensable pour générer le fichier XML.

Je suis sur un mutu avec php 5.4 filer 743

Je peux utiliser ce script sur un autre hébergement sans souci avec php 5.4.

Le problème viendrait t'il d'OVH ou du server que j'essaye de contacter?

Merci d'avance pour votre aide, je patauge.

$user = "user";
$pass = "pass";
$authentication = base64_encode($user.":".$pass);
$httpheader = array('Authorization: Basic '.$authentication);
$itemsFeedURL = "https://site.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $itemsFeedURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
$response = curl_exec($ch);
curl_close($ch);


25 réponses ( Latest reply on 2017-09-02 09:23:05 Par
MehdiB
)

Il faut passer sur l'environnement stable pour utiliser curl avec https et des sécurités à jour.
https://docs.ovh.com/fr/fr/web/hosting/modifier-lenvironnement-dexecution-de-mon-hebergement-web/#comment-modifier-l-environnement-d-execution

salut Buddy,

Je suis bien sur la version stable

Si le site a un fichier non protégé come robots.txt et que tu y accédes via le même script par exemple, ça marche mieux ?

Sinon as tu un message d'erreur ?

non ça ne marche pas mieux et je n'ai pas de message d'erreur.

J'ai même rajouté

if(curl_exec($ch) === false)
{
echo 'Erreur Curl : ' . curl_error($ch);
}
else
{
echo 'L\'opération s\'est terminée sans aucune erreur';
}

et il m'annonce que tout vas bien.

Je ne comprends pas, j'ai même régénéré le certificat ssl mais rien

Tu as une erreur dans tes logs ?

Et si tu affiches la réponse rien non plus ?

Ce n'est as possible d'essayer avec php 5.6 par exemple ?

pas d'erreurs dans les logs

oui je fais un "echo" de la réponse et c'est vide

J'ai essayé php 5.6 mais plein de messages d'erreur

je ne pense pas que ce soit cela car l'autre hébergement est en php 5.4 et fonctionne bien

L'autre hébergement est chez ovh ?
Sur un autre cluster ?
Je me demande si ça ne serai pas le site distant qui bloque le cluster Ovh..

oui l'autre site est chez ovh filer 2080

je viens de contacter le support sur lequel j'essaye de me connecter afin de savoir s'ils ont bloqué le cluster ovh
A suivre ...

bonjour,

Alors le support qui reçoit les requêtes Curl me dit qu'il ne voit pas de soucis de son côté.
Est ce possible qu'ovh bride le nombres de requêtes?

Il me semble que les limites fixées par Ovh sont en général très élevées... Plusieurs centaines de connexions autorisées par minute..

ah oui j'en suis pas encore je dois en faire une centaine par jour.
Punaise je suis dégoûté je ne sais pas comment je vais me sortir de cette galère.

Y a t'il un moyen de savoir définitivement qui est en cause?

C'est étonnant que php ou curl ne renvoie aucun message..
As tu essayé en passant en mode développement au lieu de production. Il est très vivement de repasser en production une fois les tests finis.

je vais essayer cela

Voila en mode dev

j'ai même ajouté ini_set('display_errors',1);

page blanche

en ajoutant

var_dump($response);

j'ai :
string(730) "
Error

Error
This page can't be displayed. Contact support for additional information.
The incident ID is: N/A.
"

Bonjour,

et le script en entier ça donne quoi ?

Cordialement, janus57

Tu as essayé en indiquant un user agent ?

le script en entier

// récupération token
$user = "user";
$pass = "pass";
$authentication = base64_encode($user.":".$pass);
$httpheader = array('Authorization: Basic '.$authentication);
$itemsFeedURL = "https://site.svc";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $itemsFeedURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
$response = curl_exec($ch);
var_dump($response);
curl_close($ch);

$xmlResponse = simplexml_load_string(trim($response));
echo $xmlResponse;

comment indiquer un user agent ?

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0');

je viens de placer le bout code et pareil.

Le script est bon j'en suis sûr, il y a une restriction mais je ne sais pas ou.

et avec ceci pour avoir un code d'erreur ?
http://php.net/manual/fr/function.curl-errno.php

pareil

j'ai mis

if(curl_errno($ch))
{
echo 'Erreur Curl : ' . curl_error($ch);
}
else
{
echo 'ok';
}

et vide...

Bonjour,
Je cloture mon post

finalement, l'ip du cluster avait été black listée mais je n'en connais pas la cause.
Celle-ci a été enlevée de la zone rouge.

Tout est renté dans l'ordre merci pour votre aide

Mehdi