Chcę wysłać formularz lecz posiada on ukryty token który po odświeżeniu strony się zmienia a trzeba go też wysłać

Tak wygląda token (przykład):
<input name="thxytbwh" type="hidden" value="97a74bf0189ca6444e4ecbc1e8825da2" />
po odświeżeniu strony zmienia się wartość 'name', value jest stały bo to hash
i mam funkcję która by pobrała ten token, tylko jak go pobrać i wysłać bez przeładowania strony?
preg_match("|name=\"(.+?)\".+ value=\"97a74bf0189ca6444e4ecbc1e8825da2\"|", $return, $name_login_hash);
mam coś takiego, z tym że strona się przeładowuje i token się zmienia ;| i nie wiem jak to obejść
$send = new cURL(); $send->get('http://' . $_POST['url'] . '/?action=forgo'); // pobieram hasha [jest zakodowany na początku strony w script] // pobieram name hasha [token] $send->post('http://' . $_POST['url'] . '/?action=forgo', 'subject='.$_POST['subject'].'&text='.$_POST['text'].'&' . $name_login_hash[1] .'='. $login_hash[1].'&send=send');
a przed tym mam jeszcze logowanie na stronie
$login_site = new cURL(); $login_site->get('http://' . $_POST['url']); $login_site->post('http://' . $_POST['url'], "login=" . $_POST['login'] . "&password=" . $_POST['password'] . "&submit=submit");
funkcja cURL
class cURL { var $headers; var $user_agent; var $compression; var $cookie_file; var $proxy; function cURL($cookies=TRUE,$cookie='cookies.txt',$compression='gzip',$proxy='') { $this->headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg'; $this->headers[] = 'Connection: Keep-Alive'; $this->user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13'; $this->compression=$compression; $this->proxy=$proxy; $this->cookies=$cookies; if ($this->cookies == TRUE) $this->cookie($cookie); } function cookie($cookie_file) { $this->cookie_file=$cookie_file; } else { fopen($cookie_file,'w') or $this->error('The cookie file could not be opened. Make sure this directory has the correct permissions'); $this->cookie_file=$cookie_file; } } function get($url) { $process = curl_init($url); curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); curl_setopt($process, CURLOPT_HEADER, 0); curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); curl_setopt($process,CURLOPT_ENCODING , $this->compression); curl_setopt($process, CURLOPT_TIMEOUT, 30); if ($this->proxy) curl_setopt($process, CURLOPT_PROXY, $this->proxy); curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); $return = curl_exec($process); curl_close($process); return $return; } function post($url,$data) { $process = curl_init($url); curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent); if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file); if ($this->cookies == TRUE) curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file); curl_setopt($process, CURLOPT_ENCODING , $this->compression); curl_setopt($process, CURLOPT_TIMEOUT, 30); if ($this->proxy) curl_setopt($process, CURLOPT_PROXY, $this->proxy); curl_setopt($process, CURLOPT_POSTFIELDS, $data); curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($process, CURLOPT_POST, 1); $return = curl_exec($process); curl_close($process); return $return; } function error($error) { echo "<center><div style='width:500px;border: 3px solid #FFEEFF; padding: 3px; background-color: #FFDDFF;font-family: verdana; font-size: 10px'><b>cURL Error</b><br>$error</div></center>"; die; } }