Tja, det går ju att göra på enklast möjliga vis:
<?PHP
if($pass == "losen" && $user =="admin"){
Header("Location: edit.php3");
} else {
echo ("<font color=\"red\">Fel lösenord!</font>");
}
?>
Inte snyggt, inte speciellt säkert, men det går ju
17 svar · 328 visningar · startad av Hulth
Jag vill ha ett lösenordsskydd i php3. Man får skriva i ett användarnamn och ett lösenord och "formen" skickas till kolla.php3.
kolla.php3 ska kolla att fältet pass innehåller ordet losen och att fältet user innehåller admin. då ska den skicka vidare besökaren till edit.php3. Om det är fel lösenord ska den bara skriva "Fel lösenord"..
Tja, det går ju att göra på enklast möjliga vis:
<?PHP
if($pass == "losen" && $user =="admin"){
Header("Location: edit.php3");
} else {
echo ("<font color=\"red\">Fel lösenord!</font>");
}
?>
Inte snyggt, inte speciellt säkert, men det går ju
Tack för ditt svar Chavez..
Jag ska genast kolla om det fungerar. Alltihoppa kommer att ligga i en frame så man kommer inte se vilka adresser som används till vilka sidor. Jag håller på att bygga upp ett admin-system till en gästbok där du kan redigera och ta bort meddelanden On-line. Det är väl inte så svårt men denna gästboken skriver till en text-fil istället för en databas...
Du förstådde väl att jag anropar den koden med detta??
login.php3
<html>
<head>
<title>Logga in</title>
</head>
<body>
<table align="center" cellpadding="2" cellspacing="2">
<form action="check_login.php3" method="post">
<tr>
<td>Användarnamn</td>
<td><input type="text" name="user"></td>
</tr>
<tr>
<td>Lösenord</td>
<td><input type="password" name="pass"></td>
</tr>
</table>
<br>
<center><input type="submit" value="Logga in -->"></center>
</form>
</body>
</html>
Jupp, det är därav $user och $pass kommer. Men det som jag gav dig är på inga vägar ett komplett skript. Du måste saxa in det på lämpligt ställe
Men jag är lite trött för det nu ...
Det där är inte säkert
Jag har gjort så här på min sida:
login.php
<?php
session_start();
session_register('username');
session_register('password');
?>
<html>
<body>
<form method="post" action="index.php">
Användarnamn:<br>
<input type="text" name="t_username"><br>
Lösenord:<br>
<input type="password" name="t_password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
logincheck.inc
<?php
if(IsSet($t_username))
$username = $t_username;
if(IsSet($t_password))
$password = $t_password;
$logedin = mysql_num_rows(mysql_query("SELECT * FROM admin WHERE username = '$username' and password = password('$password')"));
if(!$logedin)
Header("Location: login.php");
?>
alla_sidor_som_ska_kräva_inloggning.php
<?php
require("logincheck.inc");
?>
<html>
kod, kod, kod...
</html>
Jo men nu är det ju så att jag kan inte ha MySQL på mityt webhotell för då blir det ännu dyrare. Det räcker med att det kostar 300/år.
Jag la in den koden i en fil som hette check_login.php3 och det fungerade jättebra. Om man hade skrivit in rätt lösenord så skickades man vidare till edit.php3.
Tack för hjälpen alla...
Du behöver bara byta ut koden i logincheck.php till:
<?php
if(IsSet($t_username))
$username = $t_username;
if(IsSet($t_password))
$password = $t_password;
if($password != "losen" or $username !="admin")
Header("Location: login.php");
?>
???
Det spelar ingen roll. Bara det fungerar...
Har mixtrat lite med passw enligt ovanstående förslag. Dvs det utan databas... hmm.. nu är ju tyvärr det lösenordsskyddet ganska vädrelöst eftersom man inte har
<?php
require("logincheck.inc");
?>
eller liknande på sidan man loggar in på vilket innebär att kan man bara filnamnet så kam man gå direkt in i adminsidorna. Lite tråkigt ju.
Min fråga är då: Går det göra nån liknande logincheckfunktion (trots att man inte använder mysql) så att man bara kan gå in på dessa sidor via loginsidan (dvs med ett medskickat passw)???
Probyte: Du skall naturligtvis lägga kontrollen av lösen på samma sida som din admin info. Prova detta:
<?
$password = "nicclas";
if($pass != $password)
{
echo "<html><head><title>Admin</title></head><body onLoad=\"document.logga.pass.focus();\">";
echo "<form name=\"logga\" method=\"post\" action=$PHP_SELF>";
echo "Enter your password:<br>";
echo "<input type=\"password\" name=\"pass\">";
echo "<input type=\"submit\" value=\"continue\">";
echo "</form></body></html>";
}
else
{?>
<html>
<head>
</head>
<body>
Min admin-sida!
</body>
</html>
<?
}
?>
[Redigerat av nicclas den 27 jun 2001]
Jo.. det var jag nästan införstådd med oxå men det blir ju lite osmidigt om man har flera sidor som man vill kunna logga in på. Hade varit så smidigt om man kunde använda nån liknande kontroll som jag nämnde ovan... men det kanske inte går utan databas?
Que, detta har absolut inget med någon databas att göra... Allt som går att göra med databas går att göra utan
Appropå inloggning. Prova denna:
http://cgi.webforum.nu/wf/Forum12/HTML/001067.html#5
Där kan lösen anges en gång, och du kan bläddra mellan "hemliga" sidor så länge din session är aktiv...
Det är väl inget som hindrar att man använder Alpha IIs kod och istället för databasen lägger man password och användare i 'klartext' i en fil eller i php scriptet.(se nedan)
Tycker dock att man bör använda crypt() funktionen för att generera lösenordet. (kom ihåg att använda samma frö)
$password_key="hkdsfdd";
$user_key="anvandare";
if(crypt($password,"wf")==$password_key) AND $user==$user_key){
// du är OK
}
/Tobbe
Kanon Nicclas... ska testa det lite senare ikväll. Men om jag förstod dig rätt så kräver sessions att php4 är installerat på servern... samt att cookies ej är avaktiverat i webbläsaren?
Hur är säkerhetsnivån på denna lösningen? Kan man gå runt det på nåt enkelt sätt? Nu ska det bara användas till att logga in på admin-sidor till gästbok och nyheter på en personlig webbplats men det kan vara kul att veta ändå..
Den är säker, om du väljer ett "svårt" lösenord Mig vetligen finns inget enkelt sätt att smita förbi.
[Redigerat av nicclas den 27 jun 2001]