[PHP] Enorme n00b-vraag, maar ik zie 't effe niet!

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

  • Wouter!
  • Registratie: Maart 2001
  • Laatst online: 07-05 19:42
Goed, zoals de topic-titel al aangeeft is dit een enorme n00b-vraag ... maar ik kan het gewoon even niet vinden :).

Het volgende is het geval:

Ik heb 'n klein privé-forumpje voor vrienden en heb daar sinds kort een IP-log ingebouwd. Daar wordt gechecked op IP en hostname en deze worden in de database weggeschreven. Alle hostnames van de mensen die de site frequent bezoeken zijn bekend. De laaste tijd valt het echter op dat eigenlijk de enige onbekenden die de site bezoeken via Wanadoo Cable surfen. Dit zijn echter steeds wisselende IP's en hostnames maar vrijwel altijd van Wanadoo Cable, andere providers komen nauwelijks voor.

Ik vind dat enigzins vreemd, maar goed. Nu heb ik dus een melding ingebouwd waarmee ik voor een bepaalde hostname een bericht in dikke rode letters bij het openen van de pagina toon.

Als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
$ip = $_SERVER['REMOTE_ADDR']; 
$hostname = gethostbyaddr($ip);


if ($hostname == "localhost") {
    echo "Je IP-adres is <b>$ip</b> en je hostname is <b>$hostname</b><br><br>";
    echo "Wie ben je en wat zoek je op dit gastenboek?? Je bent bij ons niet bekend en toch een regelmatig bezoeker van deze site.<br><br>";
    echo "Maak jezelf bekend in het gastenboek als je een geregistreerd gebruiker bent, of stuur een mail met je redenen om deze site te bezoeken naar <a href='mailto:bla@bla.nl'>bla@bla.nl</a>. Als ik binnen een week geen reactie heb gehad zorg ik ervoor dat je het gastenboek helemaal niet meer kunt bezoeken.<br><br>";
    echo "Groeten, de webmaster";

}


Nu wordt er dus gechecked op "localhost". Als ik dus de site bezoek via http://localhost/public/site.php dan krijg ik de melding en dat werkt ook allemaal. Het werkt echter alleen wanneer de hostname exact "localhost" is (of bijvoorbeeld cc12345-a.ensch1.ov.home.nl ofzo) maar ik wil dat voor alle Wanadoo Cable hostnames deze melding komt. Met SQL is dit eenvoudig te doen door middel van WHERE hostname LIKE '%cable.wanadoo%' maar in dit geval hierboven haal ik niks uit te database, er moet gewoon direct gekeken worden of de hostname "cable.wanadoo" bevat.

Volgens mij is dit verschrikkelijk simpel, maar ik kan er niks over vinden want ik weet ook niet goed hoe ik de zoekvraag moet formuleren ...

Wat ik dus bedoel is in het bovenstaande geval zoiets als

code:
1
2
3
if ($hostname LIKE '%cable.wanadoo%') {
echo "Melding";
}


Da's echter SQL en dat werkt dus niet op deze manier.

Er is hier vast wel iemand die hier binnen 5 minuten een antwoord op heeft >:)
Ik voel me echt zo'n n00b op dit moment ... :/ (al ben ik ook een enorme amateur-PHP-prutser trouwens hoor :)).

[ Voor 14% gewijzigd door Wouter! op 07-03-2005 13:18 ]


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
google levert als eerste hit op http://nl3.php.net/strrpos

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • Noork
  • Registratie: Juni 2001
  • Niet online
Aha wat jij nodig hebt valt in de categorie string functions. Zie: http://nl2.php.net/manual/nl/ref.strings.php

Je kunt hiervoor misschien Substring count voor gebruiken.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-05 08:08

Janoz

Moderator Devschuur®

!litemod

Redelijke manual vraag zoals boven te zien is. Daarnaast is de titel ook niet zo netjes, hij dekt immers in zijn geheel niet waar de vraag over gaat en daarnaast zijn we niet zo gediend van 'heelp!! noob vraag kom er niet uit' achtige titels. Lees voor het openen van je volgende topic in Programming & Webscripting eerst de quickstart door in de faq.

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


Dit topic is gesloten.