anoniem Geplaatst: 15 maart 2004 Delen Geplaatst: 15 maart 2004 hoi ik maak een eigen login scriptje, een pagina die beveiligd wordt krijgt [code:1:bd444c5342] require "login.php"; [/code:1:bd444c5342] login.php vraagt dan een uname en ww en checkt die. (tot zover gaat het goed) dan gaat ie kijken naar welke pagina er is gevraagd en voegt hij die in (het require gedeelte slaat hij over) [code:1:bd444c5342] function getdoc(){ print $_SERVER['PHP_SELF']; $doc = strstr($_SERVER['PHP_SELF'], "/"); $file = file("http://server$doc"); for($i=4;$i<count($file);$i++){ print $file; } exit; } [/code:1:bd444c5342] maar als ik heb ingelogd, geeft hij de volgende fout: [b:bd444c5342]Warning:[/b:bd444c5342] file(http://server/g/zon.php): failed to open stream: HTTP request failed! HTTP/1.1 401 Authorization Required in c:\server\map f\webserver\login.php on line 31 hij moet dus blijkbaar ook bij zichzelf inloggen. :-? moet ik iets veranderen in de php instellingen? en wat? Quote Link naar reactie
anoniem Geplaatst: 15 maart 2004 Auteur Delen Geplaatst: 15 maart 2004 Vraagje: waarom voeg je een script in ([i:9d62e167b1]getdoc()[/i:9d62e167b1]) terwijl je deze in eerste instantie al aangeroepen hebt? M.a.w. het zou voldoende moeten zijn om het volgende te doen: [code:1:9d62e167b1] - voeg login.php toe aan een script wat gecontroleerd moet worden - controleer in login.php of de gebruiker ingelogd is - zo ja: ga verder - zo nee: stop executie van script [/code:1:9d62e167b1] Aanvullend bij de laatste stap zou je dan nog de credentials van de gebruiker kunnen vragen (loginschermpje). Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 ben ik dan ook van mijn 401 probleem af? en nog een vraagje dan: hoe kan je ervoor zorgen dat hij zon.php verder gaat uitvoeren? hij stopt er namelijk mee na login.php Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 [quote:95327929a7="supergj"]ben ik dan ook van mijn 401 probleem af?[/quote:95327929a7] Dat weet ik niet, ik kan het niet voor je testen. [quote:95327929a7="supergj"]en nog een vraagje dan: hoe kan je ervoor zorgen dat hij zon.php verder gaat uitvoeren? hij stopt er namelijk mee na login.php[/quote:95327929a7] Als een script geen exit() of redirect (of iets dergelijks) tegenkomt dan moet deze gewoon doorgaan. Kijk je code dus even na op dit soort commando's. Om te debuggen waar je ergens zit in de code kan je op strategische plekken even een [code:1:95327929a7]echo "U bevindt zich hier";[/code:1:95327929a7]toevoegen. Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 Ik controleer meestal of de session aanwezig is. - Als session niet aanwezig door sturen naar login scherm. - Als session wel aanwezig is gewoon doorgaan met het parsen van de opgevraagde pagina. Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 [quote:2dbbd8dfd5="InZane"]Ik controleer meestal of de session aanwezig is. [/quote:2dbbd8dfd5]Veilig is anders... Als je toch op een session controleert, stop er dan een gebruikersnaam/wachtwoord(MD5)-combinatie in die je kan controleren. Een session faken is nl niet zo moeilijk. - Bas Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 die functie (getdoc()) waar eerst stond dat ie de opgevraagde pagina ging printen, heb ik leeg gemaakt. maar hij gaat nu toch niet verder met zon.php als je succesvol ben ingelogd, komt hij nergens meer exit tegen. als ik in getdoc() gewoon alleen zet [code:1:f97ebf1841]print "je ben ingelogd"; [/code:1:f97ebf1841] gaat hij niet verder met zon.php (hij print wel je ben ingelogd) is er niet een manier om te verwijzen naar de rest van het script in zon.php? Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 [quote:d4fb644e44="supergj"]is er niet een manier om te verwijzen naar de rest van het script in zon.php?[/quote:d4fb644e44] Dat is je probleem cq. oplossing niet. Verder gaan met de rest van je script gebeurd automatisch (return uit een functie) als de flow van je script goed is. Er gaat dus nog steeds ergens iets fout en het lijkt me slimmer om daar op te focussen in plaats van om het probleem heen te werken. Een versimpeld voorbeeldje (ongetest): [b:d4fb644e44]login.php[/b:d4fb644e44] [code:1:d4fb644e44] <?php /* bepalen of iemand ingelogd is */ $ingelogd = true; // dit is even de versimpelde check ;) if ($ingelogd) { /* print boodschap */ echo "<p>welkom</p>"; } else { /* print error en stop verwerking van het script */ echo "<p>niet ingelogd</p>"; exit; } ?> [/code:1:d4fb644e44] [b:d4fb644e44]script met login check[/b:d4fb644e44] [code:1:d4fb644e44] <?php require_once("login.php"); echo "<p>hier staat de rest van je pagina</p>"; ?> [/code:1:d4fb644e44] Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 [quote:c9ef4ae492="BasHamar"][quote:c9ef4ae492="InZane"]Ik controleer meestal of de session aanwezig is. [/quote:c9ef4ae492]Veilig is anders... Als je toch op een session controleert, stop er dan een gebruikersnaam/wachtwoord(MD5)-combinatie in die je kan controleren. Een session faken is nl niet zo moeilijk. - Bas[/quote:c9ef4ae492] Uiteraard worden user en pass gecontroleerd. Lijkt me niet meer dan logisch ;) Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 annie, je bent geweldig!! :) ik heb toch een exit; over het hoofd gezien. ik had namelijk na het uitvoeren van getdoc (die overigens alleen "ingelogd" liet zien) een exit; neergezet. :oops: je ziet zo iets over het hoofd het probleem is dus opgelost, bedankt! Quote Link naar reactie
anoniem Geplaatst: 16 maart 2004 Auteur Delen Geplaatst: 16 maart 2004 [quote:416f55d9a6="supergj"]ik heb toch een exit; over het hoofd gezien.[/quote:416f55d9a6]Een tip voor de volgende keer dat je gaat debuggen: In vrijwel elke zichzelf respecterende tekstverwerker zit een zoekfunctie, meestal onder CTRL-F. Veel handiger dan zelf regel voor regel je code doorlopen. Doe hier je voordeel mee! ;) :D - Bas Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen