Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   PHP - 400 Bad Request (https://forum.antichat.xyz/showthread.php?t=166341)

Kreoda 27.12.2009 02:05

PHP - 400 Bad Request
 
PHP код:


<?php 

function goto($url=''$post=''$ref='')  
    {  
        
$ch curl_init();    
        
curl_setopt($chCURLOPT_URL$url);  
        
curl_setopt($chCURLOPT_HEADER1);  
        
curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
        
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,0); 
        
curl_setopt($chCURLOPT_USERAGENT'Opera/9.25 (Windows NT 5.1; U; ru)');   
        
curl_setopt($chCURLOPT_COOKIEJAR,"./cook.txt"); 
        
curl_setopt($chCURLOPT_COOKIEFILE,"./cook.txt"); 

        if (!empty(
$post)) { 

curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS$post); 

}  

else { 

curl_setopt($chCURLOPT_POST0); 

}  
         
if (!empty(
$ref)) { 

curl_setopt($chCURLOPT_REFERER$ref);  



$res curl_exec($ch);  
curl_close($ch);  
return 
$res;  
     


function 
get($url) { 

$ch curl_init(); 

curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_COOKIEFILE,"./cook.txt"); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_COOKIEJAR,"./cook.txt"); 
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,0); 

$res curl_exec($ch); 

echo 
$res

curl_close($ch); 



// Авторизуемся 

$res = goto("http://xhtml.wap.mail.ru/cgi-bin/auth","Login=Ваш_Логин&Domain=mail.ru&Password=Ваш_пароль&page=","http://xhtml.wap.mail.ru/cgi-bin/splash_mail"); 
preg_match("#Location: (.*)#",$res,$m); 
$str explode("://",$m[0]); 

// Формируем ссылку на папку Входящие 

$link_1 "http://".$str[1]; 
$link_1 str_replace("start?back=1","msglist?folder=0",$link_1); 
get($link_1); 



?>

Почему-то браузер 400 Bad Request,а ссылку-то ведь правильно сформировал.Следовательно, и запрос должен быть верный(запрос гет).В чём проблема ?

mr.The 27.12.2009 03:03

Все велосипеды уже изобретены http://mrthe.name/2009/08/curl-i-php/

Попробуй без поста послать запрос, если идёт, то нужно "Login=Ваш_Логин&Domain=mail.ru&Password= аш_пароль&page=" обернуть в urlecode, ибо бывает такая трабла..

Это, если у тебя 400 на авторизации. Если посте, то у тебя что-то не то с парсингом ссылки(ну кроме того, что он у тебя криво реализован..)

Kreoda 27.12.2009 03:56

С юрленкодом у меня вообще не работает - только без него...ппц.page можно вообще не пересылать.Попробуй перейти по получившейся ссылке из браузера - попадёшь в папку Входящие).Значит,всё работает.

P.S: я не постом отправляю запрос ,а гетом(там же гет используется).Ссылка-то рабочая так почему криво реализовано ?


Время: 15:58