Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [logowanie] txt + sesje. Gdzie tkwi błąd??
Forum PHP.pl > Forum > PHP
xmp3
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 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 questionmark.gif? próbowałem już tylu sposobów i wszystko na nic. Zostawiam początkowy. Wszelkie sugestie mile widzane !!
djpeterek
do kodu php stosuj bbcode jesli dajesz post z kodem na forum smile.gif popraw to a co do hasla polecam technike md5 wtedy haslo masz zaszyfrowane i masz pewnosc wieksza ze ci go nie wyciagna z pliku txt
Luke
zamien

[php:1:6287a50086]<?php
session_register($haslo);
session_register($login);

?>[/php:1:6287a50086]

na

[php:1:6287a50086]<?php
session_register('haslo');
session_register('login');

?>[/php:1:6287a50086]

lub

[php:1:6287a50086]<?php
$_SESSION['haslo'] = $haslo;
$_SESSION['login'] = $login;


?>[/php:1:6287a50086]
scanner
Zamykam do czasu poprawienia BBCode
xmp3
juz wszystko OK
Prosże od dalsze rady
xmp3
nie mówicie że nikt nie wie bo nie uwierzę
kszychu
A może napiszesz chociaż jaki masz problem?
xmp3
przecież napisałem czytaj 1 post. Nie wiem jak przesłać dane z panel.php do admin.php sesją, jeśli to robie dobrze to chce tylko żeby mi ten panel zadziałał więc gdzieś po drodze robię bład, ale własne błędy się cięzko wychwytuje dlatego dałem na forum
splatch
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.
xmp3
dzięki ale ja nie chciałem gotowego skryptu smile.gif tylko poprawy mojego bo tylko w taki sposób się czegoś naucze
splatch
Miałem go pod ręką więc dałem ci do analizy, a nie jako gotowca smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.