Hoe kan ik met dit script:


<?PHP
$user = "adminuser";
$pass = "adminpass";
$error = "Sorry, u hebt geen toegang!";


$name = basename ($PHP_SELF);
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $user) && ( $PHP_AUTH_PW == "$pass" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo "$error";
exit;
}
echo "HIER KOMT DE BEVEILIGDE PAGINA ALS JE BENT INGELOGD!"

?>

meerdere users laten aanmeleden? Dus user 1 met adminuser & adminpass als logingegevens gaat naar admin.html of als het kan een sessie, anders kunnen ze gewoon http://www.nl/admin.html intypen, dan heeft het hele gebeuren geen zin. Dan user2 met user1 en pass1 als gegevens gaat naar user2.html of .php?sessionid=23t42g enz.

Kan dit?

echo "HIER KOMT DE BEVEILIGDE PAGINA ALS JE BENT INGELOGD!"

moet

echo "HIER KOMT DE BEVEILIGDE PAGINA ALS JE BENT INGELOGD!";

worden
en waarom staat die basename daar, die variabele word niet gebruikt...
Deze regel is fout:
<?
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $user) && ( $PHP_AUTH_PW == $pass )) )
?>

Je maakt er een rotzooi van:
<?
if(!isset($PHP_AUTH_USER) || (!$PHP_AUTH_USER == $user && $PHP_AUTH_PW == $pass))
?>
Dat zijn genoeg haakjes.
<?
echo "$error";
# moet worden
echo($error);
?>

En die ; die VeeWee al aangaf natuurlijk.
je kan ook gewoon
<?php
echo $error;
?>

zonder die haakjes dus...
en nog iets wat eigenlijk fout is
--> werk met $_SERVER variabelen



dit word dan


$_SERVER['$PHP_AUTH_USER']
$_SERVER['$PHP_AUTH_PW']


die haakjes is meer javascript style... ik raad je aan van in php ook php codes te gebruiken :p

maar wil iemand mij nu eens een antwoor dgeven op de vorige vraag die ik op deze topic gesteld heb en waarom ze :

entrer

gebruiken --> in de php manual stond er iets anders maar ik begrijp er niet veel van ...

die haakjes is meer javascript style... ik raad je aan van in php ook php codes te gebruiken :p

Dat zie je helemaal verkeerd! echo() is, net zoals print(), een functie die met haakjes aangeroepen dient te worden omdat je in die haakjes het argument beho0rt te plaatsen.
Tsja zonder edit wordt het maar weer een extra post:
Je kunt dit bericht niet wijzigen omdat het gelockt is. Vragen hierover kunnen gesteld worden in dit forum.

Als toevoeging : alle functies dienen met () aangeroepen te worden, of ze nou een argument hebben of niet.
Als ik het script maak en de database heb gemaakt, krijg ik dit in IE:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in G:\Abyss Web Server\htdocs\02.php on line 26

dit is dan line 26:

<?PHP
if ( ! (($PHP_AUTH_USER == $row['naam']) && ( $PHP_AUTH_PW == "$row['pass']" )) ) {
?>
nu heb ik dan ff dit veranderd in line 26:

<?
if ( ! (($PHP_AUTH_USER == $row['naam']) && ($PHP_AUTH_PW == $row['pass'])) ) {
?>

maar dan komt er in IE te staan:

Notice: Undefined variable: PHP_AUTH_USER in G:\Abyss Web Server\htdocs\02.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at G:\Abyss Web Server\htdocs\02.php:15) in G:\Abyss Web Server\htdocs\02.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at G:\Abyss Web Server\htdocs\02.php:15) in G:\Abyss Web Server\htdocs\02.php on line 39
Sorry, u hebt geen toegang!

dusssss......
Line 15 heb ik veranderd van
<?
$sql = "SELECT * FROM users WHERE naam =".$PHP_AUTH_USER;
?>
naar:
<?
$sql = SELECT * FROM users WHERE naam =".$PHP_AUTH_USER;
?>

Maar dan heb ik dit:
Parse error: parse error, unexpected T_STRING in G:\Abyss Web Server\htdocs\02.php on line 15

Reageren