13. juni 2001 - 21:09
Der er
10 kommentarer
PHP_AUTH_USER ???
Jeg har fundet dette smarte ord i flere artikler, samt eksempler, men det vil bare ikke virke :-/ Hvis jeg har en login side, og nogle dybereliggende directories, som kun \"valid\" brugere må anvende, hvad gør jeg så ? Oplysninger om brugernavn og password ligger i en MySQL database, og det er her fra login skal finde svar.
Annonceindlæg fra QNAP
dette lægger du i enfil - f.ex. pwd.php og så skal den \"require\"´es på alle de sider der er forbeheldt de gyldige brugere... simpelt hen :-) <?php $goAgain = 1; while ($goAgain) { if(!isset($PHP_AUTH_USER)) { Header(\"WWW-Authenticate: Basic realm=\\\"whatever\\\"\"); Header(\"HTTP/1.0 401 Unauthorized\"); echo \"Acces denied...\"; $goAgain = 0; exit; } else { include $DOCUMENT_ROOT.\"/connect.inc\"; $rownumber = mysql_query (\"select * from validusers where username = \'$PHP_AUTH_USER\' \"); $row = mysql_fetch_array($rownumber); if ($row){ if ($PHP_AUTH_USER != \"\" && $PHP_AUTH_USER == $row[username] && $PHP_AUTH_PW == $row[password]){ //Hvis pass er rigtigt... # unset($PHP_AUTH_USER); $goAgain=0; # exit; } else { unset($PHP_AUTH_USER); $goAgain=1; } } else { unset($PHP_AUTH_USER); $goAgain=1; } } } ?>
Her er lige nogle spørgsmål, da jeg er lidt en newbie....... 1. \"include $DOCUMENT_ROOT.\"/connect.inc\";\".....Skal jeg have denne fil, og i givet fald, skal jeg editere i den på nogen måde? 2. Hvis dette virker som påtænkt, så er meningen, at den laver error, hvis den ikke har valideret mod DB\'en ikke? 3. \"Header(\"WWW-Authenticate: Basic realm=\\\"whatever\\\"\");\" Hvad bør jeg skrive her (er det afgørende på nogen måde?) 4. requiren på mine html-sider, skriver jeg ikke dem således: \"<? include (\"../pwd.php\"); ?>\" ? 5. Hvor bør jeg lægge filen (er der noget sikkerhed i dette ?) Jeg er ked af disse mulige newbiespørgsmål :-/
1.: Ja, denne fil forbinder dig til databasen - du laver den selv med noget mysql_connect osv. 2.: Hvis brugeren ikke findes i DB eller hvis der mere end et par gange angives et forkert PW, får man \"access denied...\" på skærmen. 3.: (nej), du skriver blot hvad du synes - f.ex. navnet på din hjemmeside. 4.: nej - benyt: <?php require(\"../pwd.php\"); ?> da du derved sikrer at siden \'dør\' hvis brugeren ikke kan valideres. 5.: Gør næppe nogen større forskel - men læg den gerne uden for webscope, hvis du kan - ellers: Don´t worry ;-) der er ingen grund til at være ked af at spørge -det har vi alle gjort på et eller andet tidspunkt ;-)
OK, så tror jeg er lige ved at være der. Men mht. nr. 1: \" include $DOCUMENT_ROOT.\"/connect.inc\"; \" - mener du, at jeg skal skrive mine my_sql - connect-sætninger på PHP-måde, og kalde filen: \"connect.inc\" ? Jeg har lige kigget på nogle .inc-filer, hvad er formålet med at kalde dem .inc - ikke at du behøver at skrive et foredrag for mig, men det er mere så jeg overordnet kan sætte dem ind i en PHP-sammenhæng.....
$DOCUMENT_ROOT. er det en PHP-kommando, hvormed PHP kigger et bestmt sted hen ??? (et lille ekstraspørgsmål)
Til det første: ja, lige netop: <? $mysql_hostname = \'navnetpåserveren\'; $mysql_username = \'ditbrugernavn\'; $mysql_password = \'ditpassword\'; $mysql_database = \'dindatabase\'; $conn = @mysql_connect($mysql_hostname, $mysql_username, $mysql_password); @mysql_select_db ($mysql_database, $conn)); ?> $DOCUMENT_ROOT er rodbiblioteket for web-serveren - det er en let måde at referere \'absolut\' til forskellige filer der skal includes eller requires /henrik
Tilføjelse... når du kalder connect-filen for connect.inc er det fordi de fleste webservere holder filer med denne extension ekstra tæt ind til kroppen - så det er altså af sikkerhedshensyn :-)
Har du fået det til at virke..?
Nej - det virker sku ikke rigtigt, jeg ville ikke rigtigt skrive mere, jeg har gjort som \"instruktionsvejledningen\" siger, men det spiller fan\'me ikke - alt er ellers som det bør være - jeg forstår det ikke rigtigt :-/
14. juni 2001 - 19:31
#10
Hvad går galt?
Vi tilbyder markedets bedste kurser inden for webudvikling