Egyszerű PHP jelszavas védelem?
Kipróbáltam egy-két jelszavas védelmet az oldalamra, amikkel több kevesebb gondom akadt.
Vegyük először azt ami működött:
van egy formom ami két mezőből áll név és jelszó, a php-s részben pedig megadtam ezeket neki, ha sikerült belépni akkor kiírja hogy sikeres, ha nem akkor sikertelen.
Ez mind remekül működött, de az a gondom, hogy nekem az adott oldalra kéne a védelem nem az oldal elé egy fájlba amivel ha jól írtam be a cuccost akkor áttesz arra az oldalra amerre menni akarok.
Ezért, próbáltam egy p_protect nevezetű valamit ami nagyon megtetszett mert e-mail értesítőt is kapnék ha valaki megpróbálna belépni rossz jelszóval az adott oldalra. Csak ez valamiért nem működik:
<?php
$selfSecure = 1;
$shellUser = "demo";
$shellPswd = "demo";
$adminEmail = "admin email";
$fromEmail = $HTTP_SERVER_VARS["SERVER_ADMIN"];
A gond valahol itt van:
$Version = "Your details here (for example The Webmaster – webmaster@xxx.com)";
if($selfSecure){
if (($PHP_AUTH_USER!=$shellUser)||($PHP_AUTH_PW!=$shellPswd)) {
Header(‘WWW-Authenticate Basic realm="MCE Web ADMIN only!"’);
Header(‘HTTP/1.0 401 Unauthorized’);
echo " <html>
<head>
<title>Error – Belépés megtagadva</title>
</head>
<h1>Belépés megtagadva</h1>
Figyelmeztető e-mail elküldve az oldal szerkesztőjének, IP címed, használt név és jelszó rögzítve.
<hr>
<em>$Version</em>";
if(isset($PHP_AUTH_USER)){
$warnMsg ="Valaki megpróbált belépni az következő oldalon: [link]
rossz felhasználónevet, vagy jelszót használt:
Dátum: ".date("Y-m-d H:i:s")."
IP: ".$HTTP_SERVER_VARS["REMOTE_ADDR"]."
User Agent: ".$HTTP_SERVER_VARS["HTTP_USER_AGENT"]."
Használt felhasználó: $PHP_AUTH_USER
Használt jelszó: $PHP_AUTH_PW";
mail($adminEmail,"Unauthorized Access",$warnMsg,
"From: $fromEmailnX-Mailer:$Version AutoWarn System");
}
exit;
}
}
if(!$oCols)$oCols=$termCols;
if(!$oRows)$oRows=$termRows;
?>
Nem tudom pontosan hogyan működik ez vagy mivel van a gond, mert ilyet azelőtt nem láttam.
Próbáltam egy rövidebb, hasonló formáját ennek:
<?php
$LOGIN = "gyikdemo";
$PASSWORD = "gyikdemo";
function error ($error_message) {
echo $error_message."<BR>";
exit;
}
Ennél itt a gond:
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD" )) ) {
header("WWW-Authenticate: Basic entrer="Form2txt admin"");
header("HTTP/1.0 401 Unauthorized");
error("Unauthorized access…");
}
?>
<HTML><HEAD><TITLE>védett rész</TITLE></HEAD>
<BODY BGCOLOR="white">
<BR><BR><P ALIGN="Center"><FONT FACE="Arial, helvetica" SIZE="+2" COLOR="#336699"><STRONG><EM>A védett honlapod tartalma</EM></STRONG></FONT></P><BR>
Ha valaki talál megoldást a problémámra azt köszönöm
Mindkettőnél ugyanezt:
Parse error: syntax error, unexpected T_STRING in /untitled/p_protect.php on line 13
Hát nem tudom melyik a 13. sor, de ezeket a hibákat találtam:
Ez a sor például hibás:
header("WWW-Authenticate: Basic entrer="Form2txt admin"");
Az idézőjeleket escape-elni kéne így:
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
Az első kódban pedig csak tippre mondom, hogy az echo "<html> utáni sok sortörés nem tetszik neki. Ahhoz hogy sortöréseket tehess string literálba, 3 idézőjellel kell körülhatárolni:
"""<html>
blabla"""
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!