[php] URL controleren mbv fopen

Pagina: 1
Acties:

  • te(X)en
  • Registratie: Mei 2000
  • Laatst online: 24-10-2024
Ik wil een formulier maken waar mensen een URL kunnen doorgeven, maar dat deze URL eerst wordt gecontroleerd of deze werkelijk bestaat.

Nou ben ik een redelijke php newbee, dus heb eerst wat zitten zoeken en daar op de volgende code uitgekomen:
PHP:
1
<?$fp = @fopen("$url","r");if ($fp){ print"goed"; }else{ print"fout"; }?>

Nu krijg ik de volgende uitkomsten voor $url:
http://www.tweakers.net -> goed
http://www.tweakers.net/qqq -> fout
http://www.tweakersqqq.net -> goed:?
http://www.tweakersqqq.net/qqq -> fout
http://www.tweakersqqq.net/index.html -> goed:?
http://www.tweakersqqq.net/indexqqq.html -> fout

Bij bestaande domeinen lijkt alles goed te werken, maar bij een niet bestaand domein geeft hij voor alleen het de domeinnaam.ext en voor domeinnaam.ext/index.html aan dat hij wel bestaat :?

Hoe komt dit? En wat kan ik er aan doen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Probeer eens af te drukken wat er dan opgehaald wordt als ie goed aangeeft?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Grum
  • Registratie: Juni 2001
  • Niet online
Je kan beter

1/ fsockopen
2/ fputs 'GET'-request
3/ fgets tot de headers voorbij zijn

Het gaat fout als:
1 faalt, 3 nix geeft of een 404 (zijn nog meer dingen mogelijk - zie rfc :D)

  • te(X)en
  • Registratie: Mei 2000
  • Laatst online: 24-10-2024
Op zondag 14 april 2002 14:34 schreef Janoz het volgende:
Probeer eens af te drukken wat er dan opgehaald wordt als ie goed aangeeft?
$fp geeft dan "Resource id #1". Hetzelfde wat ook weergegeven wordt als als de URL wel echt klopt.
Op zondag 14 april 2002 14:35 schreef Grum het volgende:
Je kan beter

1/ fsockopen
2/ fputs 'GET'-request
3/ fgets tot de headers voorbij zijn

Het gaat fout als:
1 faalt, 3 nix geeft of een 404 (zijn nog meer dingen mogelijk - zie rfc :D)
Uhmm, heb je misschien ergens eenvoorbeeldje waar dit gebruikt wordt? :)

  • Grum
  • Registratie: Juni 2001
  • Niet online
En dat zou je zelf niet kunnen maken ?

http://php.net/fsockopen
http://php.net/fputs
http://php.net/fgets
http://php.net/fclose

HTTP RFC (2616)

Veel uitzoek plezier.

  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

thanx had ik ook ff nodig

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op zondag 14 april 2002 14:35 schreef Grum het volgende:
Je kan beter

1/ fsockopen
2/ fputs 'GET'-request
3/ fgets tot de headers voorbij zijn

Het gaat fout als:
1 faalt, 3 nix geeft of een 404 (zijn nog meer dingen mogelijk - zie rfc :D)
Gebruik een HEAD request in plaats van een GET request.

GET haalt document en headers op van de remote server
HEAD haalt alleen de headers op van de remote server.

Programmer - an organism that turns coffee into software.


  • te(X)en
  • Registratie: Mei 2000
  • Laatst online: 24-10-2024
Maar waarom geeft fopen niet gewoon een error als de url niet bestaat? Die zou het toch ook moeten doen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Op zondag 14 april 2002 14:39 schreef te(X)en het volgende:

[..]

$fp geeft dan "Resource id #1". Hetzelfde wat ook weergegeven wordt als als de URL wel echt klopt.
Ik bedoel, wat krijg je als je 'm uit gaat lezen..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

was het niet zo dat je een / achter de url moest zetten ? ?

  • te(X)en
  • Registratie: Mei 2000
  • Laatst online: 24-10-2024
een / achter de url werkt ook niet en als ik een verkeerde url uitlees, dan redirect hij naar de homepage van m'n hosting provider.
Pagina: 1