Curl et une page de connexion

WRInaute impliqué
Bonjour,
J'utilise souvent ce code qui fonctionne parfaitement :

Code:
$url = 'https://.............';  

$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);

Généralement le lien est accessible sans connexion, maintenant je souhaite ajouter un lien d'un site qui demande une connexion (email et mot de passe) !
Sachant que mon script est en local et j'exécute le code ci-dessus avec chrome (je suis connecté sur le site url avec le même chrome)

Comment faire ?

Merci
 
Dernière édition:
WRInaute impliqué
Merci Spout pour ton aide, j'ai quelques questions à propos du deuxième lien (exemple complet :
1 ) j'ai récupéré les "name" du formulaires de connexion, pour nom d'utilisateur c'est "nomusr" pour le password c'est "passusr". Dans le début soit :
Code:
$username = trim($values["email"]);
$password = trim($values["password"]);
Dans les codes ci-dessus, où je met nomusr et passusr ? et où je met le vrais user et password qui me servent de connecter (email et mon mot de passe) ?

2) dans cette ligne :
Code:
"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
Je dois mettre quoi, moi j'utilise Safari ?

3) dans cette ligne :
Code:
$dir = DOC_ROOT."/ctemp";
Dois-je modifier "ctemp" ou créer un dossier ctemp dans le même dossier qui contient le fichier php du script ?

Merci
 
WRInaute impliqué
J'ai résolu le problème 1 et 2 il me reste le 3, quand je fais echo $dir ça m'affiche rien je pense que DOC_ROOT ne s'exécute pas sur mon mac (MAMP) même si je fais echo $_SERVER["DOCUMENT_ROOT"];

ça ne donne rien
 
WRInaute impliqué
j'avais un ")" qui bloque tout mainteanant c'est la fonction
$path = build_unique_path($dir);
qui ne fonctionne pas !
 
WRInaute impliqué
j'ai mis le paths à la main, il me reste juste un problème d'encodage, erreur d'authontification car il reçoit le @ d'email en %40
 
WRInaute impliqué
Alors, pour boucler sur plusieurs pages j'ai mis la boucle comme ceci, comment faire pour aléger la boucle et faire sortir quelques lignes ?


Code:
for($i = $_GET['id']; $i > $a; $i--){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
//set the cookie the site has for certain features, this is optional
curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
curl_setopt($ch, CURLOPT_USERAGENT,
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3298.4 Safari/537.36 OPR/52.0.2838.0 (Edition developer)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
curl_exec($ch);

//page with the content I want to grab

curl_setopt($ch, CURLOPT_URL, "https://www.siteweb.net/".$i);
//do stuff with the info with DomDocument() etc
$data = curl_exec($ch);
curl_close($ch);

}
 
Discussions similaires
Haut