Показать сообщение отдельно

  #18  
Старый 05.07.2009, 12:11
MainVoid
Новичок
Регистрация: 03.07.2009
Сообщений: 2
Провел на форуме:
552

Репутация: 0
По умолчанию

Народ, спасибо всем за инфо, которую здесь прочитал.

Написал такой код (на оптимальность не претендует, еще будет оптимизироваться):

PHP код:
<?
$key 
1;
function 
geturl($url,$postdata=0,$header=0,$additional_key=0) {
    
$poststr="";
    if (
$postdata)
        while (list(
$name,$value)=each($postdata)){
            if (
strlen($poststr)>0)
                
$poststr.="&";
            
$poststr.=$name."=".urlencode($value);
            }

    
// инициализация сеанса
    
$ch curl_init();
    
curl_setopt($chCURLOPT_URL$url);

    
// Формируем заголовок
    
if ($header){
        
curl_setopt($chCURLOPT_HEADER1);
        
// Помним кукисы 
        
$user_cookie_file $_SERVER['DOCUMENT_ROOT'].'/poster/cookies.txt';
        
curl_setopt($chCURLOPT_COOKIEFILE$user_cookie_file);
        
curl_setopt($chCURLOPT_COOKIEJAR,  $user_cookie_file);
        
curl_setopt($chCURLOPT_NOBODY1);
    }else{
        
curl_setopt($chCURLOPT_HEADER0);
    }

    if (
$postdata){
        
curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
        
$user_cookie_file $_SERVER['DOCUMENT_ROOT'].'/poster/cookies.txt';
        
curl_setopt($chCURLOPT_COOKIEFILE$user_cookie_file);
        
curl_setopt($chCURLOPT_COOKIEJAR,  $user_cookie_file);
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_POSTFIELDS$poststr);
    }
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
$res curl_exec($ch);
    if (
$additional_key){
        
        
/* Скрытое поле token для memori */
        
if( preg_match('/name=\"token\" value=\"(.+?)\"/'$res$out) ){
            
$res $out[1];
        }
    }
    
curl_close($ch);
    return 
$res;
}
if (!isset(
$_GET['go'])) {
    
// Собираем заголовок
    
$header geturl('http://memori.ru/registration/',0,1);
    
// Берем значение скрытого поля
    
$token geturl('http://memori.ru/registration/',0,0,1);
    
// Берем капчу
    
$captcha geturl('http://memori.ru/captcha/',$postdata);
    
    
$im imagecreatefromstring($captcha);
    
$pic_name time().'_'.$key.'.jpg';
    
imagejpeg($im$pic_name100);
    
    
// Сохраняем картинку у себя (подобие антикапчи)
    
$postdata = array(
        
'method'    => 'base64',
        
'key'       => $key,
        
'body'      => $pic_name,
        
'ext'     => 'png'
    
);
    
$rev geturl("http://localhost/poster/in.php",$postdata); // регистрируем капчу у себя в системе
    
if (substr($rev,0,2)=='ok'){
        
//получаем id капчи в системе
        
$anti_captcha_id substr($rev,3);
    }else{
        echo 
"Upload ERROR";
        echo 
$rev;
        exit;
    }
    echo 
'<img src="pic.php?id='.$anti_captcha_id.'">';
    
    echo 
'<br /><form method="get"><input type="hidden" name="go" value="go"><input type="hidden" name="token" value="'.$token.'">Капча:  <input type="text" name="captcha"><br />
Сессия: <input type="text" name="bobrologin" value="'
.$session.'"><br /><input type="submit" value="Ну, была не была!"></form>';
} else {
    echo 
$captcha $_GET['captcha'];
    echo 
'<br />';
    echo 
$session $_GET['session'];
    echo 
'<br />';
    echo 
$token $_GET['token'];
    echo 
'<br />';
    
$postdata = array(
        
"login" => "testerqwerty23",
        
"email" => "mainvoid3@mail.ru",
        
"inviter" => "",
        
"token" => $token,
        
"captcha" => $captcha,
        
"password" => "123456",
        
"password_confirm" => "123456",
    );
    echo 
'<pre>'print_r($postdata); echo '</pre>';
    
$recdata geturl('http://memori.ru/registration/',$postdata);    
    echo 
'<base href="http://memori.ru">';
    echo 
$recdata;
    if (
is_file('./cookies.txt')) unlink('./cookies.txt');
}
?>

на всякий случай
in.php:
<?php
//echo '<pre>'; print_r($_POST); echo '</pre>';
$filename 'user_'.$_POST['key'].'.txt';
if (
is_file($filename)) unlink($filename);

$status 'ok';

if (
$status == 'ok') {
    
$id 1;
    
$handle fopen($filename'a');
    if (
is_writable($filename)) {
        
fwrite($handle$id.'|'.$_POST['body']);
    }
    
fclose($handle);
    echo 
$status.'|'.$_POST['body'];
}

?>

pic.php:

<?
header
('Content-Type: image/jpeg');
$im imagecreatefromjpeg($_GET['id']);
imagejpeg($imNULL100);
?>


Но форма на мемори остается глухой к такому запросу, т.е. не выводится ни сообщений об ошибках, ни об удачном завершении регистрации. На некоторых других формах такой скрипт отрабатывал.

Кто нибудь может подсказать в чем дело?
 
Ответить с цитированием