Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [logowanie] txt + sesje. Gdzie tkwi błąd??
xmp3
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.07.2003
Skąd: Paradise

Ostrzeżenie: (0%)
-----


Robie skrypt logowania oparty na sesjach i txt
oto pliki

users.n - plik z userami dałem tam przypadkowych userów

Kod
Xmp3|+|pass|+|16|+|1

Aidy|+|password|+|13|+|2

Paluch|+|pa|+|12|+|3

Maxi|+|max|+|11|+|4


wygląda on tak

pierwszy człon to nazwa usera
drugi to hasło
trzeci to wiek
czwarty to level
ale narazie potrzebuje tylko pierwszych dwóch

mam pliki
admin.php, - panel administarycjny

index.php, - wyswietlanie wszsytkich userów oraz ich danych -- to działa !! chyba jako jedyne (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

panel.php - formularz do panelu admina

teraz kody

panel.php
[php:1:1e751e3552]
<?
session_start();
$SID=session_id();
$login=$_POST['login'];
$haslo=$_POST['haslo'];
if(isset($login) && isset($haslo))
{
session_register($haslo);
session_register($login);
}

echo('<center><p align="center"><font face="Verdana" size="2"><b>Statystki odwołań </b><br>');

echo("<form method='POST' action='admin.php?=$SID'>");
echo('
<p>
Login
<input type="text" name="login" size="20"></p>
<p>
Hasło<input type="haslo" name="haslo" size="20"></p>
<p>
<input type="submit" value="Dalej.." name="B1"></p>
</form></center>');
?>
[/php:1:1e751e3552]
admin.php
[php:1:1e751e3552]<?
session_start();
// czesc konfiguracji
$usr=file("users.n");
$ile_usr=count($usr);
$dobry_pass=$_SESSION['haslo'];
$dobry_login=$_SESSION['login'];
echo("$dobry_pass = $dobry_login");
// czesc kodu wykonującego

for($i=0 ; $i<$ile_usr ; $i++)
{
$user=explode("|+|", $usr[$i]);

$login[$c]=$user[0];
$pass[$i]=$user[1];
$wiek[$i]=$user[2];
$poziom[$i]=$user[3];
$war=1;
if( $user[0]==$dobry_login)
{
}
else
{
continue;
}
}



if(isset($war))
{

session_register($password);
session_register($log);

$alt_pass=$_SESSION['password'];
$alt_log=$_SESSION['log'];

//czesc panelu administaryjnego
echo("Witaj <b> </b><br>");
echo('TUTAJ JEST PANEL ADMINISTARYCJNY');
echo('<a href="wyloguj.php?=SID">wyloguj</a>');
}

else
{
echo("brak wstępu<br> $login[$i] <br>$log<br>inny:");
}
?>[/php:1:1e751e3552]
index.php
[php:1:1e751e3552]
<?
$usr=file("users.n");
$ile_usr=count($usr);

for($i=0 ; $i<$ile_usr ; $i++)
{
$user=explode("|+|", $usr[$i]);
$login[$i]=$user[0];
$pass[$i]=$user[1];
$wiek[$i]=$user[2];
$poziom[$i]=$user[3];

echo("login: <b>$login[$i]</b> Haslo:<b>$pass[$i]</b> Wiek:<b> $wiek[$i]</b> Poziom: <b>$poziom[$i]</b> <br>");
}
?>

[/php:1:1e751e3552]

gdzie robie bład (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? próbowałem już tylu sposobów i wszystko na nic. Zostawiam początkowy. Wszelkie sugestie mile widzane !!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
splatch
post
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Formularz rejestracji:
[php:1:8a8eeb9072]<?php

if( !empty( $_POST['haslo'] ) && !empty( $_POST['login'] ) )
{
if( file_exists( 'users/'. $_POST['login'] ) )
{
echo 'Uzytkownik '. $_POST['login'] .' juz istnieje';
}
else
{
if( strlen( $_POST['login'] ) < 4 )
{
echo "Twoj login jest za krotki";
rejestracja();
}
else
{
if( strlen( $_POST['haslo'] ) < 4 )
{
echo "Twoje haslo jest za krotkie!";
rejestracja();
}
else
{
$fp = fopen( 'users/'. $_POST['login'], 'w' );
fwrite( $fp, 'u;'. md5( $_POST['haslo'] ) );
fclose( $fp );
echo 'Zostales zarejestrowany';
}
}
}
}
else
{
rejestracja();
}

function rejestracja()
{
echo "<form method='POST' action='rejestracja.php'>";
echo "Login <input type='text' name='login'><br>";
echo "Haslo <input type='text' name='haslo'>";
echo "<input type='submit' value='ok'></form>";
}


?>[/php:1:8a8eeb9072]
Logowanie (formularz, ogólnie przykładowa strona)
[php:1:8a8eeb9072]<?php

ini_set( 'session.use_cookies', 1 );
session_set_cookie_params( 3600 );

session_start( );

if( !isset( $_SESSION['user'] ) )
{
formularz();
define( 'STATUS', 'g' );
}
else
{
echo "Witaj ". $_SESSION['user'] .'<br>';
echo '<a href="login.php?def=logout">Wyloguj mnie</a>';
define( 'STATUS', $_SESSION['status'] );
}

function formularz()
{
echo "<form method='POST' action='login.php'>";
echo "Login<input type='text' name='login'><br>";
echo "Haslo<input type='password' name='haslo'>";
echo "<input type='hidden' name='from' value='". $_SERVER['PHP_SELF'] ."'>";
echo "<input type='submit' value='ok'></form>";
}

?>[/php:1:8a8eeb9072]

Plik odpowiedzalny za logowanie itp.
[php:1:8a8eeb9072]<?php

ini_set( 'session.use_cookies', 1 );
session_set_cookie_params( 3600 );

session_start( );

if( !empty( $_POST['login'] ) && $_POST['haslo'] )
{
if( $dane = @file( 'users/'. $_POST['login'] ) )
{
$dane = explode(';', $dane[0] ); // $dane[0] = "status"; $dane[1] = "haslo"
if( md5( $_POST['haslo'] ) == $dane[1] )
{
$_SESSION['user'] = $_POST['login'];
$_SESSION['status'] = $dane[0];
header( 'Location: '. $_POST['from'] );
}
else
{
echo 'Podales zle haslo';
}
}
else
{
echo 'Nieznany uzytkownik';
}
}
elseif( $_GET['def'] == 'logout' )
{
session_destroy( );
header( 'Location: '. $_SERVER['HTTP_REFERER'] );
}
else
{
header( 'Location: '. $_SERVER['HTTP_REFERER'] );
}


?>[/php:1:8a8eeb9072]
Wystarczy, że stworzysz katalog users i nadasz mu odpowiednie prawa. Przykladowy plik uzytkownika:
Kod
u;40ba6f89a60388a30d77f9ca07133fb8

Gdzie u to status, rownie dobrze moze byc a, a ciag po średniku to hasło w postaci md5.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 10:04