php login Cod

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

marianmp
Average Member
Mesaje: 190
Membru din: Mie Noi 09, 2011 1:12 pm
Localitate: https://micul-programator.ro
Contact:

Mesajde marianmp » Mie Apr 18, 2012 7:19 pm

Eu nu inteleg ceva, probabil nu am citit atent insa care este codul doi? ca ai zis ca vrei sa vezi daca valorile din acel array sunt in codul doi ?

Ps : dupa ce ai preluat datele din formularulde logare poti verifica cu in_array daca userul introdus de vizitator este in $users



ctl
PHPRomania Supporter
Mesaje: 19
Membru din: Mie Apr 18, 2012 12:48 pm

Mesajde ctl » Mie Apr 18, 2012 7:31 pm

Scuze am uitat sa introduc si codurile cele doua, scrise de mandix si ispas.
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:

Mesajde marianmp » Mie Apr 18, 2012 7:44 pm

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

ctl
PHPRomania Supporter
Mesaje: 19
Membru din: Mie Apr 18, 2012 12:48 pm

Mesajde ctl » Mie Apr 18, 2012 7:56 pm

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:

Mesajde marianmp » Mie Apr 18, 2012 8:01 pm

cu alte cuvinte ai un camp si daca eu introduc in el ion si daca ion e in array, eu sunt logat?

ctl
PHPRomania Supporter
Mesaje: 19
Membru din: Mie Apr 18, 2012 12:48 pm

Mesajde ctl » Mie Apr 18, 2012 8:05 pm

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.


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:

Mesajde marianmp » Mie Apr 18, 2012 8:30 pm

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

Avatar utilizator
mandix
Average Member
Mesaje: 142
Membru din: Dum Apr 01, 2012 2:04 am
Localitate: Santana, Arad
Contact:

Mesajde mandix » Mie Apr 18, 2012 9:04 pm

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.

ctl
PHPRomania Supporter
Mesaje: 19
Membru din: Mie Apr 18, 2012 12:48 pm

Mesajde ctl » Joi Apr 19, 2012 9:47 am

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

marianmp
Average Member
Mesaje: 190
Membru din: Mie Noi 09, 2011 1:12 pm
Localitate: https://micul-programator.ro
Contact:

Mesajde marianmp » Joi Apr 19, 2012 11:22 am

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']))

Avatar utilizator
mandix
Average Member
Mesaje: 142
Membru din: Dum Apr 01, 2012 2:04 am
Localitate: Santana, Arad
Contact:

Mesajde mandix » Joi Apr 19, 2012 12:41 pm

pune si tu error reporting-ul
micul-programator, eu de obicei declar cam tot ce se poate declara :D

marianmp
Average Member
Mesaje: 190
Membru din: Mie Noi 09, 2011 1:12 pm
Localitate: https://micul-programator.ro
Contact:

Mesajde marianmp » Joi Apr 19, 2012 12:43 pm

mandix scrie:pune si tu error reporting-ul
micul-programator, eu de obicei declar cam tot ce se poate declara :D


aici nu e vorba de declarare ci ca e nedefinit deoarece pana la submit $_POST un array gol

ctl
PHPRomania Supporter
Mesaje: 19
Membru din: Mie Apr 18, 2012 12:48 pm

Mesajde ctl » Joi Apr 19, 2012 4:32 pm

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 ?

marianmp
Average Member
Mesaje: 190
Membru din: Mie Noi 09, 2011 1:12 pm
Localitate: https://micul-programator.ro
Contact:

Mesajde marianmp » Joi Apr 19, 2012 4:46 pm

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?

ctl
PHPRomania Supporter
Mesaje: 19
Membru din: Mie Apr 18, 2012 12:48 pm

Mesajde ctl » Joi Apr 19, 2012 4:57 pm

Pai am facut in felul urmator acest cod:

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?


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 29 vizitatori