_siikais_ Posted July 29, 2008 Report Share Posted July 29, 2008 uz vairaakiem peec kaartas web serveriem jaapaarbauda vai existee konkreets php fails http://$weblapa/scripts.php shaja agadiijumaa scripts.php , ja neexistee shis fails tad turpina ciklu kameer beidzaas webi. peedeejasi variants ko esmu paarbaudiijsi ir shaads un arii vinjsh stradaa ljoti leeni jo ja taads domeens nau aktiivs vinjsh gaida kameer ir no response. ar fopen vispaar nekas nestradaa (vai arii es kko nemaaku). Buushu ljoti pateiciigs ja kaads vareetu iedot variantu kas ir aatrdarbiigs un bez gljukiem... function getheader ( $url ) { $headers = get_headers ( $url, 1 ); return $headers['0']; } $query = "SELECT web FROM webs"; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { if (getheader("".$row['web']."/scripts.php")!='HTTP/1.1 200 OK') { echo "nekas nonotiek"; } else { veicam darbiibu } } Link to comment Share on other sites More sharing options...
bubu Posted July 29, 2008 Report Share Posted July 29, 2008 Lieto nevis get_headers fju, bet gan fsockopen un sūti manuāli GET pieprasījumu. Labums tāds, ka fsockopen funkcijai ir iespējams norādīt taimoutu, tb laiku pēc kura tā pārtrauks savu darbību, ja neizdodās pieslēgties serverim. Ieliec taimouta vietā 1.0f vai 0.5f (mērvienība ir sekundes) un ātrumam vajadzētu būt labākam. Vajag forumu pasērčot, pirms jaunus topikus veidot: http://php.lv/f/index.php?showtopic=5105 Link to comment Share on other sites More sharing options...
_siikais_ Posted July 29, 2008 Author Report Share Posted July 29, 2008 (edited) ar get funkciju dabuunu visu infu par to failu, bet tagad ir cita probleema, ja maajas lapa stradaa uz rewrite engine pamata un vis skas ir aiz / ir variable tad shis variants neder, jo uzraadiis ka vienmeer ir shis fails. Ko taadaa gadiijumaa dariit? edite nr1: paljube man nekas nesanaak kaa esmu domaajis :D luudzu uzmetiet kaads scripta piemeeru... Edited July 29, 2008 by _siikais_ Link to comment Share on other sites More sharing options...
bubu Posted July 29, 2008 Report Share Posted July 29, 2008 Slikti, ka nevīžo pat http://php.net/fsockopen atvērt. Tur jau Example #1 ļoti skaidri parāda kā veikt GET pieprasījumu. Nemaz jau nerunājot par komentāriem tai pat lapā. Problēmu ar "rewrite engine" galīgi nesapratu. Pastāsti to vairāk kā vienā teikumā. Link to comment Share on other sites More sharing options...
_siikais_ Posted July 30, 2008 Author Report Share Posted July 30, 2008 atveert es vinju atveeru, bet no sakauma neko taa arii neiebraucu, bet kajau teicu tagad jau ta dabuuju visu to ko man vajag tikai ir probleema ar rewrite, tas izpauzhas taa.. piemeeram web lapai navigaacija ir nevis domeens/index.php?lapa=kkas bet domeens/kkas. Liidz ar toshis veids vienmeer atgriezh saturu, jo kkas vinjsh saprot ar konkreetu lapu kas jaaparadaa, un ja tadaa lapa nau vinjsh ielaadee def lapu. liidz ar to vienmeer atgriezh lapas saturu... Lai labaak saprastu es uzraxtiishu kaa tas viss notiek... No mana web servera notiek vaicaajumi uz citiem web serveriem, uz kuriem atrodas manis dotais fails scripts.php. Scripts.php izvada pliku skaitli piemeeram 55, kuru uzgjeneree ieksh scripts.php esoshais kods. Shie cipari var buut katram webserverim dazhaadi. Tad ik pa 3h mans cron job cheko shos failus uz visiem web serveriem ko esmu noraadijis ieksh DB, un pie veiksmiigas cipara dabuushanas ar file() paliidziibu ieraxta atpakalj DB shii briizha skaitli. Bet tagad saaakaas taas lielaakaas probleemas ar remote faila paarbaudi, ar to pashu kaut fsockopen, kaa arii rewrite engine. Lieta sekojosha, paarbaudiiju paarbaudiiju 6 dazhaadus veidus: 1) domeens kursh ir bez rewrite engine un uz kura shis fails ir (nau probleemu); 2) domeens kursh ir bez rewrite engine un uz kura shis fails neexistee (nau probleemu); 3) domeens kursh ir ar rewrite engine un uz kura shis fails ir (nau probleemu); 4) domeens kursh ir ar rewrite engine un uz kura shis fails nau (ir probleema - vinjsh uzraada ka fails ir, bet protams reaali ta afaila nau. Ir jau doma kaa tikt skaidriibaa vai tas faisl existee vai nee ar contenta saliidzinaashanas metodi, jo ja tas faisl atgriezh kautko vairaak nekaa plika cipara veertiibu tad tas fails nau), 5) domeens kursh vispar neexistee DNS ieraxtos (lielum lielaa probleema - uz sho fsockopen timouts nereagjee), 6) domeens kursh existee DNS ieraxtos bet webserveris neatbild (ar timout viss kaartiiba atgriezh peec 2 sec ka nevar nodibinaat konekciju)... taads nu ir mans nelielais izklaasts :D Link to comment Share on other sites More sharing options...
bubu Posted July 30, 2008 Report Share Posted July 30, 2008 Pričom tur kautkāds "rewrite engine"?? Tevi ir links uz to tavu scripts.php nu tad lietot to linku taisot GET/POST pieprasījumu uz to linku. Nesaprotu problēmu. (ir probleema - vinjsh uzraada ka fails ir, bet protams reaali ta afaila nau Kurš ir tas "viņš", kas to uzrāda? Pret slikta DNS vārda ilgo lookapošanu var izlīdzēt ar šo te: http://lv2.php.net/gethostbyaddr#46869 RTFM, kā vienmēr vajag cītīgāk darīt :) Link to comment Share on other sites More sharing options...
_siikais_ Posted July 30, 2008 Author Report Share Posted July 30, 2008 nu dooh weblapu paarluuko nevisdomeens/lapa.php bet domeens/lapa un ja nau taada lapa ko noraada domeenaa tad attieciigi vinjsh panjem defaulto lapu kas noraadiita, bet ja uz root atrodas konkreets fails shajaa gadiijumaa script.php kuru izsauca ar domeens/script.php tad vinjsh vinju panjem un neuzraada 404. respektiivi sanaak ka 404 ar rewrite mod nevar dabuut ja arii izsauktais fails neeksistee Link to comment Share on other sites More sharing options...
bubu Posted July 30, 2008 Report Share Posted July 30, 2008 Goda vārds joprojām nesaprotu kāds tur sakars ar mod_rewrite... Tev tipa ir $adrese = "http://domēns/lapa"; Pareizi? Nu tad attiecīgi taisi "GET /lapa" pieprasījumu uz "domēns" adresi. Tas, ka webserveris nokonfigurēts servēt defaulto skripts.php skriptu, ja pieprasa direktorijas indeksu - to jau tavs skripts nevar kontrolēt. Tur tikai vienīgi var līdzēt tā domēns/lapa webservera konfigurācijas mainīšana. Tb no klienta puses domēns/lapa ir ļoti valīds urlis, pat ja lapa ir direktorija nevis skripts. Tā webā tas notiek. Link to comment Share on other sites More sharing options...
_siikais_ Posted July 30, 2008 Author Report Share Posted July 30, 2008 (edited) blaa tur jau taa lieta ka tas scripts atrodas uz manis neaistiitiem serveriem, taapeec nenotiek noraade kads buus linjks. Instrukcijaas ir noraadiits ka tam faila buus jaastaav uz root foldera, liidz ar to ja clientam ir weblapa ar mod rewrite un vinjsh to failu nau uzlicis pareizi scripts uzskatiis ka tas fails ir, pats pameegjini index.php $varss = @$_GET['vars']; $vars = explode('/',$varss); $lapa= $_GET['page'] = $vars[0]; $darbiba= $_GET['action'] = @$vars[1]; $darbiba1= $_GET['action2'] = @$vars[2]; $darbiba2= $_GET['action3'] = @$vars[3]; $darbiba3= $_GET['action4'] = @$vars[4]; unset($_GET['vars']); if (file_exists("lapa/$lapa.php")) { include("lapa/$lapa.php"); }else { include("lapa/index.php"); } htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?vars=$1 [L,QSA] ja mainiigais lapa nau kaa $lapa.php vinjsh ielaadee def index.php liidz ar to sanak ka ja tas konkreetais fails nau uz root vinjsh meegjina ielaadeet failu scripts.php.php kursh noteikti nau ieksh lapa foldera Edited July 30, 2008 by _siikais_ Link to comment Share on other sites More sharing options...
bubu Posted July 30, 2008 Report Share Posted July 30, 2008 Saproti, ka klients (browseris, curl, tavs skripts ar fsockopen, whatever...) neko nevar zināt un saprast par failu/folderu struktūru uz webservera. Webserveris web adreses virtualizē. Tb izliekās, ka tie ir faili vai folderi. Tu to nevari zināt - vai tas ir fails, vai folderis, vai dati no atmiņas izvadīti outputā. Nevar un viss. Webserveris tos var pārveidot un izlikties par ko vien tīk. Raksti tam klientam, ka viņam līka mod_rewrite konfigurācija un lai tajā ieraksta /skripts.php kā izņēmumu. Nekas cits no klienta gala tev nespīd. Ja nu vienīgi tu 100% zini tā skripts.php output, nu un tad arī paskaties vai outputa formāts atbilst nolasītajam. Ja neatbilst (vai arī 404) - tad tas nozīmē, ka skripts.php līki uzstādīts uz klienta webservera. Link to comment Share on other sites More sharing options...
_siikais_ Posted July 30, 2008 Author Report Share Posted July 30, 2008 tur jau ta alieta ka jau pateicu ka zinu kas busu izvadiits un zinu peec kaa samekleet, tikai vieniigasi kas mani uztrauc ir aatrdarbiiba un fsockopen timeouts kas dazhreiz nenostradaa :D Link to comment Share on other sites More sharing options...
bubu Posted July 30, 2008 Report Share Posted July 30, 2008 fsockopen timeouts vienmēr nostrādā. Neeksistējošu DNS gadījumā labāk pašam noteikt domēna ip adresi ar kodu, uz kuru linku devu augstāk, jo tad arī varēs kontrolēt timeout'u. Link to comment Share on other sites More sharing options...
_siikais_ Posted July 30, 2008 Author Report Share Posted July 30, 2008 izmeegjinaashu un tad doshu zinju Link to comment Share on other sites More sharing options...
_siikais_ Posted July 30, 2008 Author Report Share Posted July 30, 2008 gethostbyaddr_timeout funkcijai ir jaanoraada gan ip gan hostname, ok par hostname nau jautajaumu, bet kas ir shis IP? Link to comment Share on other sites More sharing options...
bubu Posted July 30, 2008 Report Share Posted July 30, 2008 and of course you need to know your DNS servers IP address :-) Link to comment Share on other sites More sharing options...
Recommended Posts