php login Cod
Moderatori: Zamolxe, Moderatori
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
Scuze am uitat sa introduc si codurile cele doua, scrise de mandix si ispas.
Deci vreau sa verific numele de utilizatori din codul acesta:
cu unul din aceste doua coduri:
1
sau 2:
eu primesc diverse erori, cel mai probabil nu declar ceva cum trebuie, as dori un exemplu concret cu username-ul ion, ca sa inteleg mecanismul, multumesc.
Deci vreau sa verific numele de utilizatori din codul acesta:
Cod: Selectaţi tot
<?php
$domain_code = 'website';
$random_num_1 = 20;
$random_num_2 = 565;
$random_num_3 = 3;
$users = array(
'ion' => 'test',
'user2' => 'test',
'asd' => '1234'
);
?>
cu unul din aceste doua coduri:
1
Cod: Selectaţi tot
$login_username = strtolower($_GET["username"]); //folosesti strtolower pentru a nu avea majuscule
/* faci un count ,cum ai tu,daca exista acest $login_username; */
if( count($login_username) > 0){
require($login_username.'.php');
}else{
$login_username nu este declarat ;
}
sau 2:
Cod: Selectaţi tot
<?php
error_reporting(E_ALL & ~E_NOTICE);
?>
<?php
$submit=$_POST['submit'];
if ($submit) {
$nume = $_POST['nume'];
if(isset($nume)&&!empty($nume)) {
header('Location: '.$nume.'.php');
}
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="proba.php" method="post">
<input type="text" name="nume" >
<input type="submit" name="submit">
</form>
</body>
</html>
eu primesc diverse erori, cel mai probabil nu declar ceva cum trebuie, as dori un exemplu concret cu username-ul ion, ca sa inteleg mecanismul, multumesc.
Ultima oară modificat Mie Apr 18, 2012 7:54 pm de către ctl, modificat 1 dată în total.
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
hai sa iti explic logica cam ce ar trebui
//preluam datele din formularul de login
//preluam erorile din formular
//daca sunt erori
//afisam erorile
//afisam iarasi formularul de login
//altfel
//facem select din baza de date (where user='{$date['utilizator_din_formualr']}' AND pass='{$date['pass_din_formular']}')
//daca nu exista userul
//afisam mesaj de eroare ca nu exista
//afisam formularul de login
//altfel
//facem logarea (sesiuni si cookie)
//daca nu sa facut logare
//afisam mesaj de eroare
//altfel
//afisam mesaj de logat cu succes
cam asa ar trebui sa arate loginul tau
//preluam datele din formularul de login
//preluam erorile din formular
//daca sunt erori
//afisam erorile
//afisam iarasi formularul de login
//altfel
//facem select din baza de date (where user='{$date['utilizator_din_formualr']}' AND pass='{$date['pass_din_formular']}')
//daca nu exista userul
//afisam mesaj de eroare ca nu exista
//afisam formularul de login
//altfel
//facem logarea (sesiuni si cookie)
//daca nu sa facut logare
//afisam mesaj de eroare
//altfel
//afisam mesaj de logat cu succes
cam asa ar trebui sa arate loginul tau
micul-programator.ro scrie:hai sa iti explic logica cam ce ar trebui
.
.
.
//altfel
//facem select din baza de date (where user='{$date['utilizator_din_formualr']}' AND pass='{$date['pass_din_formular']}')
.
.
.
cam asa ar trebui sa arate loginul tau
Ca idee am inteles, dar eu nu folosesc nicio baza de date, doar un fisier php de unde vreau sa-mi citeasca username-ul care s-a logat.
Ultima oară modificat Mie Apr 18, 2012 8:03 pm de către ctl, modificat 1 dată în total.
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
Da, dupa ce introduci username-ul si parola iti va aparea pagina lui Ion, sau cu ce username te loghezi.
Eu am nevoie sa-mi ia din array doar username-ul respectiv si sa ma duca la pagina cu numele username-ului.
Mi-a mai venit o idee, eu mai am acest mic cod de mai sus pe pagina care apare dupa ce un utilizator se logheaza, acest mic cod imi afiseaza pe pagina numele utilizatorului care tocmai s-a logat, ma gandeam daca as putea sa aplic aici o structura repetitiva, ceva de genul:
//Daca apare numele utilizatorului Ion
//atunci sa te duca pe pagina ion.php
//daca apare numele utilizatorului cristi pe pagina
//atunci sa te duca pe pagina cristi.php
Nu stiu daca este corect ce am zis sau este o mare prostie, dar ma gandeam daca ar merge, sau o data ce username-ul s-a logat nu se mai poate redirectiona catre pagina care trebuie ?
Revin totusi la codul pe care l-am gandit eu in primul post, am scris de aceasta data asa
Partea buna este ca nu primesc nicio eroare, partea proasta este ca nu se intampla nimic, e ca si cum nu ar exista codul.Acest cod l-am scris intr-un fisier php separata si l-am apelat in codul main al paginii, poate nu l-am apelat unde trebuie ? codul este scris corect?
Eu am nevoie sa-mi ia din array doar username-ul respectiv si sa ma duca la pagina cu numele username-ului.
Cod: Selectaţi tot
<strong><font color="FF6699" face="vivaldi"> <?php echo $login->username; ?></p>
Mi-a mai venit o idee, eu mai am acest mic cod de mai sus pe pagina care apare dupa ce un utilizator se logheaza, acest mic cod imi afiseaza pe pagina numele utilizatorului care tocmai s-a logat, ma gandeam daca as putea sa aplic aici o structura repetitiva, ceva de genul:
//Daca apare numele utilizatorului Ion
//atunci sa te duca pe pagina ion.php
//daca apare numele utilizatorului cristi pe pagina
//atunci sa te duca pe pagina cristi.php
Nu stiu daca este corect ce am zis sau este o mare prostie, dar ma gandeam daca ar merge, sau o data ce username-ul s-a logat nu se mai poate redirectiona catre pagina care trebuie ?
Revin totusi la codul pe care l-am gandit eu in primul post, am scris de aceasta data asa
Cod: Selectaţi tot
if ($login_username == "Cristi") {
require ('cristi.php');
exit();
}
Partea buna este ca nu primesc nicio eroare, partea proasta este ca nu se intampla nimic, e ca si cum nu ar exista codul.Acest cod l-am scris intr-un fisier php separata si l-am apelat in codul main al paginii, poate nu l-am apelat unde trebuie ? codul este scris corect?
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
ctl scrie:Da, iar tie iti va aparea pagina lui Ion, sau cu ce username te loghezi
Cod: Selectaţi tot
$form='<form method="post">
User:<input type="text" name="pag">
Pass:<input type="text" name="pass">
<input type="submit" value="Deschide">';
if(!isset($_POST['pag'])){
echo $form;
}else{
//preluam datele
$date=get_date();
//erorile
$erori=check_date($date);
//daca sunt erori
if(count ($erori)){
foreach($erori as $afiseaza){
echo $afiseaza.'<br>';
}
}
else{
set_login($date,$users);
}
}
//function get_date
function get_date(){
$date=isset($_POST['pag'])?tirm(strip_tags($_POST['pag'])):'';
//....
return $date;
}
function heck_date($date){
$erori=array();
if(strlen($date['pag'])<3){
$erori[]='Nu ai completat datele';
}
return $erori;
}eu am scris succint, mai trebuie sa inbunatatesti tu codul si sa il completezi dupa logica de mai sus, ar fi ok sa folosesti switch sa nu ai tot un if,else
- mandix
- Average Member
- Mesaje: 142
- Membru din: Dum Apr 01, 2012 2:04 am
- Localitate: Santana, Arad
- Contact:
Eu am vrut sa zic de la prima postare sa ai un array, dar tot aici am ajuns. La codul ce ti l-am dat faci simplu o cautare in array sa vezi daca exista numele, ai grija sa introduci valoarea nu cheia (test sau 1234 in cazul de fata).
Codul refacut dupa cum a spus si micul-programator cu in_array:
<?php
$submit=$_POST['submit'];
if ($submit) {
$users = array(
'ion' => 'test',
'user2' => 'test',
'asd' => '1234'
);
$nume = $_POST['nume'];
if(isset($nume)&&!empty($nume)) {
if(in_array($nume, $users)){
header('Location: '.$nume.'.php');
} else {
echo 'nu am gasit numele';
}
}else {
echo 'not ok';
}
}
?>
P.S. Si daca tot faci cu user si parola mai trebuie sa faci un array pentru parole.
Codul refacut dupa cum a spus si micul-programator cu in_array:
<?php
$submit=$_POST['submit'];
if ($submit) {
$users = array(
'ion' => 'test',
'user2' => 'test',
'asd' => '1234'
);
$nume = $_POST['nume'];
if(isset($nume)&&!empty($nume)) {
if(in_array($nume, $users)){
header('Location: '.$nume.'.php');
} else {
echo 'nu am gasit numele';
}
}else {
echo 'not ok';
}
}
?>
P.S. Si daca tot faci cu user si parola mai trebuie sa faci un array pentru parole.
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
ctl scrie:@mandix am scris codul tau, dar primesc o eroare la linia 3.
Notice: Undefined index: submit in C:\xampp\htdocs\select.php on line 3
presupun ca atunci cand primesc o eroare codul nu o sa ruleze mai departe pana nu rezolv eroare, nu?
$submit=$_POST['submit']; ???
se foloseste isset , if(isset($_POST['camp']))
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
-
marianmp
- Average Member
- Mesaje: 190
- Membru din: Mie Noi 09, 2011 1:12 pm
- Localitate: https://micul-programator.ro
- Contact:
ctl scrie:Am inlocuit cum mi-ai spus tu micul-programator.ro si acuma numai am nicio eroare, dar nici nu se intampla nimic....adica nu ma duce nicaieri si nu se intampla nimic,,,gresesc undeva ?
ai partea de formular? cu alte cuvinte daca nu sa facut submit sa afisezi formularul, daca sa facut submit sa verifici userul si sa faci redirect?
Pai am facut in felul urmator acest cod:
L-am salvat cu numele select.php si l-am apelat la inceputul acestui cod:
Si nu se intampla nimic, oare nu l-am introdus unde trebuie?
Cod: Selectaţi tot
<?php
if(isset($_POST['camp']))
if ($submit) {
$users = array(
'ion' => 'test',
'user2' => 'test',
'asd' => '1234'
);
$nume = $_POST['nume'];
if(isset($nume)&&!empty($nume)) {
if(in_array($nume, $users)){
header('Location: '.$nume.'ion.php');
} else {
echo 'nu am gasit numele';
}
}else {
echo 'not ok';
}
}
?>
L-am salvat cu numele select.php si l-am apelat la inceputul acestui cod:
Cod: Selectaţi tot
<?php
require('_login_users.php');
require('_login_class.php');
require('bg.html');
require('restrict.php');
[b]require('select.php');[/b]
$login = new login_class;
$today_ts = strtotime("now");
$today_m = date('n', $today_ts);
$pass_login = FALSE;
$login->domain_code = $domain_code;
$login->today_ts = $today_ts;
$login->today_m = $today_m;
$login->users = $users;
$login->num_1 = $random_num_1;
$login->num_2 = $random_num_2;
$login->num_3 = $random_num_3;
//Verify
if (!$login->verify_settings()) {
echo '<strong>Invalid Admin Settings for Login Script</strong><br />Check your settings and retry logging in';
exit();
}
//Logged In
if (isset($_COOKIE[$domain_code.'_uid']) && $_COOKIE[$domain_code.'_uid']!='' && isset($_COOKIE[$domain_code.'_cid']) && $_COOKIE[$domain_code.'_cid']!='') {
$key_uid = $login->cleanse_input($_COOKIE[$domain_code.'_uid']);
$key_cid = $login->cleanse_input($_COOKIE[$domain_code.'_cid']);
if (!$login->verify_login($key_uid, $key_cid)) {
$login->error_message = 'Login has expired';
} else {
$pass_login = TRUE;
}
}
//Verify Logged In Credentials
if (!$pass_login) {
$need_login = TRUE;
//Trying To Login
if (isset($_POST['login'])) {
//Verify Login
$login_user = $login->cleanse_input($_POST['username']);
$login_pass = $login->cleanse_input($_POST['password']);
//Check Login
if ($login->check_login($login_user, $login_pass)) {
//Encode
$login->encryption_key($login_user);
$need_login = FALSE;
} else {
$login->error_message = 'Username sau parola gresita, incercati din nou';
$need_login = TRUE;
}
}
//Login Page
if ($need_login) {
require('_login_page.php');
exit();
}
}
?>
Si nu se intampla nimic, oare nu l-am introdus unde trebuie?
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 29 vizitatori