J'essaie de poster sur un forum phpBB2 fonctionnant sur localhost avec PHP et cURL. J'ai bien géré la journalisation, c'est juste l'affichage que je ne peux pas comprendre.Publier sur le forum phpBB2 avec PHP et cURL
Voici mon code:
<?php
$cookieFile = 'C:\xampp\htdocs\cookies\\' . uniqid(true) . '.txt';
// Login
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://localhost/phpbb2/login.php');
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_POST, true);
$postVars = array('username' => 'admin', 'password' => 'password', 'autologin' => 'on', 'login' => 'Log in');
curl_setopt($curl, CURLOPT_POSTFIELDS, $postVars);
$resp = curl_exec($curl);
curl_close($curl);
// Parse sid from cookie file
preg_match('/phpbb2mysql_sid\t(.*)/', file_get_contents($cookieFile), $match);
$sId = $match[1];
// Post
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://localhost/phpbb2/posting.php?mode=newtopic&f=1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POST, true);
$postVars = array('subject' => 'Test post',
'message' => 'Test post, please ignore.',
'sid' => $sId,
'f' => 1,
'post' => 'Submit');
curl_setopt($curl, CURLOPT_POSTFIELDS, $postVars);
$resp = curl_exec($curl);
curl_close($curl);
echo $resp;
Le cURL fixe l'amende à biscuits, et je sais que le paramètre sid
J'envoie ma demande POST est correct, car il est le même que celui qui est dans la base de données. Cependant, lorsque j'exécute ce code, phpBB crache cette erreur: Invalid Session. Please resubmit the form.
.
Je ne comprends pas. J'attrape le cookie après que je me connecte, l'envoyant avec la demande de POST pour créer un nouveau sujet, pourtant il indique la session invalide.
Qu'est-ce qui pourrait mal tourner ici?
avez-vous trouvé une solution, je me bats aussi trop avec cette situation. – ravisoni