Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Del php prisijungimo.

Parašė bruzgis· 2011 Bir. 23 09:06:36
#12

Faitas. parašė:
Sveikas. Aš dirbu su framework'u, todėl ir tau patarčiau tai išbandyti. Bet paaiškinsiu ir su PHP :)

Pirmiausia turėtum parašyti tvarkingą prisijungimo formą:

login.php


<html>
<head><title>Prisijungimas</title></head>
<body>
 
<form action='login_check.php' method='post'>
Vardas:<br />
<input type='text' name='username' maxlength='30'><br /><br />
Slaptažodis:<br />
<input type='password' name='password' maxlength='50'><br /><br />
<input type='submit' name='login' value='Prisijungti'>
</form>
 
</body>
</html>


PASTABA: Niekados nenaudok GET duomenims gauti :) Nes GET funkcija atvaizduoja gaunamus duomenis naršyklės URL'e

Toliau reikia failo, kuris tikrintų visus duomenis :)

login_check.php


<?php
 
//Gauname visus duomenis
$username = $_POST['username'];
$password = $_POST['password'];
 
//Tikriname ar lankytojas įvedė tikrai visus duomenis
$check = TRUE; // Tikrinimo kintamasis
$msg = ""; // Teksto (string) kintamasis, į kurį rašysime klaidas
 
if(!isset($username))
{
$check = FALSE; // Klaida? Nustatome check kintamąjam FALSE reikšme
$msg = $msg . "Jūs pamiršote įvesti vartotojo vardą<br />";
}
if(!isset($password))
{
$check = FALSE; // Klaida? Nustatome check kintamąjam FALSE reikšme
$msg = $msg . "Jūs pamiršote įvesti slaptažodį<br />";
}
 
//Tikriname ar viskas gerai
if($check == FALSE)
{
//Juk check kintamasis yra FALSE, tai reiškia, kad įvyko klaida.
echo $msg;
}
else
{
//Nustatome sesijos kintamuosius
$_SESSION['username'] = $username;
 
//Išvedame sakinį
echo "Sveikas, " . $_SESSION['username'];
}
 
?>


Na, dar keletas patarimų. :) Jei darysi duomenų gavimą iš duom.bazės, tai daryk su funkcijomis. Funkcijos veikia taip:


<?php
 
function pirmoji_funcija($kintamasis1, $kintamasis2)
{
$sum = $a + $b;
 
return $sum;
}
 
?>


$kintamasis1, $kintamasis2 yra nebūtini. :) Taip pat, return gražina reikšmę, šiuo atvėju būtų taip:


<?php
 
$a = 10;
$b = 55;
 
echo pirmoji_funcija($a, $b); // Mums išvestų $sum kintamojo reikšmę.
 
?>


Tai tiek šiam kartui. Sekmės kuriant.



Palikai klaidu :)



<?php
 
function pirmoji_funcija($kintamasis1, $kintamasis2)
{
$sum = $a + $b;
 
return $sum;
}
 
?>



Tai ir turetu but


<?php
 
function pirmoji_funcija($a, $b)
{
$sum = $a + $b;
 
return $sum;
}
 
?>



Dar patarimas.

$msg = $msg . "dar teksto";

Butu paprasciau ir greiciau $msg .= "Dar teksto";


;)
1dEo parašė:
Duodu visa if'a


if(mysql_num_rows($sql)==1){
session_register("myusername");
session_register("mypassword");
echo "<script type='text/javascript'>
<!--
window.location = 'login_success.php'
//-->
</script>";
}
else {
echo "Wrong Username or Password";
}



Taip negalima....

Slaptazodi privalai koduot (

md5($_POST['password'])
).

Su opera (nzn kaip su kitom narsyklem) galima atsidaryt sesijas ir perziuret ju duomenis, gal net ir pakeist pavyktu :)
1dEo parašė:
Duodu visa if'a


if(mysql_num_rows($sql)==1){
session_register("myusername");
session_register("mypassword");
echo "<script type='text/javascript'>
<!--
window.location = 'login_success.php'
//-->
</script>";
}
else {
echo "Wrong Username or Password";
}



persirasyk $SQL i

Redagavo bruzgis· 2011 Bir. 23 09:06:39