webForumDet fria alternativet

Lösenordsskydda med php...

17 svar · 312 visningar · startad av Hulth

HulthMedlem sedan juni 2001272 inlägg
#1

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"..

------------------
//Hulth

ChavezMedlem sedan maj 20001 953 inlägg
#2

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 :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Köp, Byt eller Sälj på Gametrade.nu!

HulthMedlem sedan juni 2001272 inlägg
#3

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...

------------------
//Hulth

HulthMedlem sedan juni 2001272 inlägg
#4

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>

------------------
//Hulth

ChavezMedlem sedan maj 20001 953 inlägg
#5

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 ...

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Köp, Byt eller Sälj på Gametrade.nu!

Alpha IIMedlem sedan maj 20002 993 inlägg
#6

Det där är inte säkert :x

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>

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

[Redigerat av Alpha II den 24 jun 2001]

[Redigerat av Alpha II den 24 jun 2001]

HulthMedlem sedan juni 2001272 inlägg
#7

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... :)

------------------
//Hulth

Alpha IIMedlem sedan maj 20002 993 inlägg
#8

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");
?>

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

[Redigerat av Alpha II den 24 jun 2001]

HulthMedlem sedan juni 2001272 inlägg
#9

???

------------------
//Hulth

ChavezMedlem sedan maj 20001 953 inlägg
#10

Alpha: Citerar mig själv:

Inte snyggt, inte speciellt säkert, men det går ju :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Köp, Byt eller Sälj på Gametrade.nu!

HulthMedlem sedan juni 2001272 inlägg
#11

Det spelar ingen roll. Bara det fungerar...

------------------
//Hulth

ProbyteMedlem sedan maj 200159 inlägg
#12

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)???

------------------
:: mattias :: www ::

nicclasMedlem sedan feb. 20001 050 inlägg
#13

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]

ProbyteMedlem sedan maj 200159 inlägg
#14

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?

------------------
:: mattias :: www ::

nicclasMedlem sedan feb. 20001 050 inlägg
#15

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...

2basMedlem sedan juni 2001181 inlägg
#16

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

------------------
Gratis hemsideadress och email => http://www.has.it

[Redigerat av 2bas den 27 jun 2001]

ProbyteMedlem sedan maj 200159 inlägg
#17

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å..

------------------
:: mattias :: www ::

nicclasMedlem sedan feb. 20001 050 inlägg
#18

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]

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)