Może ktoś coś zauważy... co spartoliłem
Kod PHP:
<?php
define('POSTURL', 'http://***/index.php?option=com_user');
include_once $_SERVER['DOCUMENT_ROOT'].'/configuration.php';
$jconfig = new JConfig();
$link = mysql_connect($jconfig->host, $jconfig->user, $jconfig->password);
if (!$link) {
die('Błąd połączenia : ' . mysql_error());
}
mysql_select_db($jconfig->db, $link) or die(mysql_error());
$q="SELECT * FROM `starabaza` ORDER BY `starabaza`.`id` ASC LIMIT 0 , 2";
$go = mysql_query ($q) or die ("błąd pobierania z tabeli");
// tu musimy pobrac token
// działamy tylko kiedy mamy wyniki pobrane z bazy, jeśli nie to po co przetwarzać? to chyba oczywiste.
if(mysql_num_rows($go) > 0) {
while($dane = mysql_fetch_object($go)) { // pobieramy obiekt z bazy - z przyzwyczajenia biore obiekt
// musimy za kazdym razem miec nowy token
// więc łączymy się z com_user by wygenerowac nową pustą sesję. - wersja nie sprawdzona merytorycznie ani technicznie
$c = curl_init('http://***/index.php');
curl_setopt ($c, CURLOPT_POST, 0);
curl_setopt ($c, CURLOPT_POSTFIELDS, "option=com_user");
curl_exec ($c);
// $sessionid = mysql_query("SELECT `session_id FROM " . $jconfig->dbprefix . "_session WHERE username = NULL");
$sessionid = mysql_query("SELECT `session_id FROM " . $jconfig->dbprefix . "_session WHERE username = ''");
$token = md5( $jconfig->secret.'0'.$sessionid);
// z formularza rejestracyjnego:
// action="/index.php?option=com_user" method="post" id="josForm" name="josForm"
//----------------------------------------------------------------------------------------------------------------
//id nazwisko login haslo email
$name=$dane->nazwisko;
$username=$dane->login;
$password=$dane->haslo;
$email=$dane->email;
// userform - formularz po register_save
// sprawdzałem też task=save
$data='&josForm=josForm&task=register_save&option=com_user&id=0&gid=0&'.$token.'=1&name='.$name.'&username='.$username.'&password='.$password.'&password2='.$password.'&email='.$email;
$ch = curl_init(POSTURL);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,$data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0); // nie zwracaj nam nagłówków http
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // pokaż nam co tam wymodziłeś ;)
$rezultat = curl_exec($ch);
// dumpniemy sobie co tam wyszło
var_dump($data);
echo "<br/>";
var_dump($rezultat);
}// WHILE
}// IF
?>