PHP - HTTP request failed

Programovacie jazyky, rady, poradňa...
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

PHP - HTTP request failed

Príspevok od používateľa SSPPYY »

Pouzivam na stiahnute zdrojoveho kodu stranky prikaz:

Kód: Vybrať všetko

file_get_contents("http://www.stranka.com")
pricom mi to stale funguje len pri jednej stranke mi to hlasi:

Kód: Vybrať všetko

failed to open stream: HTTP request failed!
Neviete niekto ci to moze byt dajako na cielovom servery osetrene aby mi to nefungovalo?

A este mam jednu otazku. Vzdy ked napriklad pomocu IE alebo FireFoxu chcem otvorit stranku alebo odoslat formular ide to vo forme ziadosti. Neviete ako by sa dala odchytit tato ziadost ked ju odoslem a nasledne to odoslanie simulovat pomocou PHP?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Vo FF nájdeš väčšinu informácií v kontextovom menu "Zobraziť informácie o stránke". Skús tú nefunkčnú stránku stiahnuť napr. pomocou GetRight, wget...
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Ale je mozne zeby na tej stranke urobili opatrenia? Lebo do nedavna mi vsetko islo v pohode a teraz odrazu toto.
Neviem ako to funguje lebo ked prehliadac odosle request tak mu stranku vrati a otvori ju, ale ked to zavolam cez PHP tak mi to uz nejde. :cry:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Musíš vyskúšať nejaký iný program na stiahnutie tej stránky. Veľa rôznych vecí sa v http hlavičke neodosiela, takže by nemal byť problém prísť na to, čo to vlastne kontroluje (je možné, že to niekam presmerováva a php si s tým neporadí).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Stranku stiahne v pohode napriklad cez FrontPage alebo Superbot. Takze neviem co s tym aby to zas islo :cry:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Musíš sa pozrieť, čo to vlastne robí (či to nepresmerováva...).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Urcite to nepresmerovava. Proste ked URL zadam do prehliadaca tak sa otvori. Aj presne to iste co sa otvori mi stiahne Superbot. Surovo mi to pripada ako keby to mali osetrene :?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Stránka môže použiť presmerovanie a prehliadač si s tým poradí bez problémov (myslím presmerovávanie pomocou http).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Ale ake presmerovavanie? Sak nikde nic nepresmerovava.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Ako vieš? Aj si to kontroloval, alebo si to iba myslíš? (presmerovať sa dá napr pomocou stavového kódu 301; prehliadač v takom prípade automaticky načíta stránku, na ktorú je to presmerované).
Pozri, či tam nie je použité presmerovanie. Ak nie je, tak bude problém inde (a môžeme sa pohnúť ďalej).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

1. Nieje tam ziadne presmerovanie
2. Asi pred 3 dnami som zadal URL a islo vsetko v pohode ako malo. Zadam teraz URL a error.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kontroloval si hlavičku http odpovede, či tam nie je presmerovanie? Napr. keď požiadam o stránku http://hojko.com, tak ma automaticky presmeruje na http://www.hojko.com/ (pomocou http 301 Moved Permanently)

Je tá adresa tajná? Ak nie, tak ju sem napíš a ja sa pozriem, čo to vlastne chce.
Inak práve mi napadlo, že by tam teoreticky mohol byť problém s tým, že používajú virtual host (ale to by nefungovali ani staré prehliadače a chyba by sa zobrazovala asi iná).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Nie sak som pozeral. Vazne tam nieje ziadne presmerovanie. A adresu by som nechcel zverejnovat lebo sa jedna o login na jeden server. A prave preto si myslim ze mozno zlepsovali zabezpecenia.

EDIT:
Takze je to urcite na strane servera, musi to proste blokovat. Aj ked som si v PHP napisal skript ktory vyziadal GET istej stranky absolutne to ignoroval server. Neprisla vobec ziadna odpoved a mala by prist bud chyba alebo potvrdenie. Kazdopadne nieco malo urcite vratit ale neprislo totalne nic :(
Ja uz neviem co s tym. Dajak to oblafnut ako keby ziadost posielal prehliadac alebo co? :cry:
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

toto iste som spominal tu http://www.hojko.com/hladanie-retazca-php-t70558.html a tiez neviem ako dalej.
zistil som nasledujucu skutocnost... ak zadam do opery URL, tak vypise toto:
ICY 401 Service Unavailable icy-notice1:
SHOUTcast Distributed Network Audio Server/Linux v1.9.8
icy-notice2:The resource requested is currently unavailable

a ak do FF, tak vyhodi normal stranku. ked dam informacie o stranke, tak je tam napisana adresa http://turtlak.vserver.cz takze z toho usudzujem, ze to presmerovane nie je. ale neviem spravit, aby to fungovalo aj v opere a tiez cez hore spominanu funkciu. cez tu php funkciu to vypise to, co mi napise v opere :(
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

turtlak69 napísal:...
Konkrétne v tvojom prípade sa tam testuje User-Agent (teda to, aký prehliadač používaš). Skús zmeniť nastavenie Opery tak, aby sa tvárila ako IE prípadne FF a mala by sa ti zobraziť tá stránka.
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

A v PHP sa neda dajak simulovat ako keby poziadavka isla od IE?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Dá. Buď budeš používať priamo fsockopen a v hlavičke požiadavky to odošleš, alebo použiješ rozšírenie CURL (lepšia možnosť). Ale to neznamená, že v tvojom prípade je problém práve v tom. Môže sa tam kontrolovať niečo iné.
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Nevies mi prosim ta napisat ako presne vyzera ziadost pri volani strank pomocou IE?
Pouzivam toto:

Kód: Vybrať všetko

$FP = fsockopen('www.google.sk', 80, $errno, $errstr, 30); 
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.google.sk\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($FP, $out); 
while (!feof($FP))
{ $res .= fgets($FP, 128); } 
fclose($FP);
Ako to upravit, aby to bolo na nerozoznanie od IE?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Vytvor si php súbor, ktorý bude obsahovať:

Kód: Vybrať všetko

<?php
    print_r($_SERVER);
?>
a pozri sa na všetko, čo sa začína na HTTP_ (to poslal tvoj prehliadač).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

No bud neviem ako to mam doslat tie informacie cez PHP alebo to ani tak nejde :cry:
Ja nechapem ako ten server moze vratit stranku ked poziadavka ide z prehliadaca alebo dajakeho programu pre stahovanie stranok, alebo ked poziadavka ide z PHP tak totalny ignor ani len chybu navrati proste nic.
:?
Napísať odpoveď