Superglobal variabel $_SERVER - PHP

Lær at bruge den superglobale variabel $_SERVER der kan vise en del information om serveren

Introduktion

$_SERVER er en superglobal variabel (tilgængelig overalt i koden).
$_SERVER er et array som indeholder en del information primært om serveren.

Vis hele arrayet

Det variere fra HTTP server til HTTP serveren præcist hvad arrayet indeholder.

Hvis man ønsker at vise hele $_SERVER arrayet kan man bruge følgende kode.

Jeg vælger ikke at vise hele arrayet her på hjemmesiden da det måske udgør en sikkerhedsrisiko.

Vis dele af arrayet

Hvis man ønsker at vise bestemte dele af arrayet kan man skrive følgende.
isset() kan bruges til at teste om indekset findes før man bruger det. Ellers kan det give en Undefined index fejlbesked.
A : netkoder.dk
B : /netkoder/kode_server.php
C : CCBot/2.0 (http://commoncrawl.org/faq/)
Resultatet ovenfor er skabt af følgende kode

Vis IP adresse

$_SERVER kan indeholde IP adressen på brugerens computer.
Desværre er der ikke helt let at få brugerens IP adressen da der er flere variabler og indholdet afhænger af HTTP serveren (webhotellets opsætning).
Desuden kan det være at brugeren får en anden IP adresse næste gang brugeren logger på internettet.
Men her er noget info alligevel som måske kan bruges.

$_SERVER["REMOTE_ADDR"] = klient IP hvis computeren er forbundet direkte til internettet.
$_SERVER["REMOTE_ADDR"] = proxy server IP hvis computeren er forbundet til internettet gennem en proxy server.
$_SERVER["HTTP_CLIENT_IP"] = aner det ikke.
$_SERVER["HTTP_X_FORWARDED_FOR"] = Kan sættes til en forkert IP adresse af HTTP klienten så det er vist ikke så godt at bruge

A : 54.162.168.187
C : 54.162.168.187
Resultatet ovenfor er skabt af følgende kode

Det svinger fra server til server om en bestemt key i $_SERVER er sat så derfor kan man teste med isset() da man ellers kan få en fejlbesked hvis man prøver at vise en key som ikke er sat af serveren.

Her er noget kode der måske kan bruges til at få brugerens IP adresse.
Din IP er måske 54.162.168.187
Din proxy IP er måske 54.162.168.187
Resultatet ovenfor er skabt af følgende kode


Kontakt mig gerne hvis du har en bedre løsning.

Bloker IP adresse

Hvis du oplever problemer med spam, hacking eller andet kan du udelukke bestemte IP adresser.

Det svære er så at være sikker på man har den rigtige IP adresse og ikke kommer til at udelukke en masse brugere som bruger samme proxy server og ikke har gjort noget.

Kontakt mig gerne hvis du har en bedre løsning.

PHP_SELF og SCRIPT_NAME

$_SERVER["PHP_SELF"] returner ...altomkymco.php/da-da/ hvis man besøger ...altomkymco.php/da-da/ selvom stien ikke findes på hjemmesiden.
$_SERVER["SCRIPT_NAME"] returner ...altomkymco.php selvom man besøger ...altomkymco.php/da-da/

$_SERVER["PHP_SELF"] gør det muligt at bruge XSS.

XSS er når man for eksempel skriver følgende.

Det bliver til.

Og så kan man lave noget kode som ser ud til at være en del af hjemmesiden men i virkeligheden ikke er det.

Efter hvad jeg kan forstår skulle det derfor være bedre at bruge $_SERVER["SCRIPT_NAME"] i stedet for $_SERVER["PHP_SELF"] for at undgå XSS.

Skriv din kommentar

Spørg mig om hvad som helst
Du kan også skrive direkte til mig på
Stem
Søg
Language

Select English to navigate the website in English. Things like the navigation menu and contact form will be in English, but the main content on each page will not be translated.