1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Sveiki, taigi noriu ismokti padaryti prisijungima su php turiu susikures lentele duomenubazeje esu pasidares prisijugima prie DB na vienu zodziu turiu ko reikia.
Turiu login.php
<?php
echo "<form name='prisijungimas' action='prisijungimas.php'>";
echo "<h3>Prisijungti</h3>";
echo "Vardas: <input type='text' size='20'>";
echo "<br>";
echo "Slaptazodis: <input type='password' size='20'>";
echo "<br>";
echo "<input type='submit' value='Prisijungti'>";
echo "</form>";
?>
Dabar noriu, kad pavyzdziui ivedus tikraji admin nick ir spaltazodi pavyzdziui Admin Admin mane mestu i balta lapa na viskas tvarkoj butu? gal galetumet pasakyt nuo ko pradet prisijungimas.php, kad vat sitas suveiktu normaliai. Aciu, jei padesite arba bent uzvesite ant kelio.
Nepagaliesiu +11
https://webdnd.com/re-siulau-kod...ost_483942
Redagavo 1dEo 2011 Bir. 21 22:06:01 |
avice
Narys
Terminatorius
![Nario avataras](https://webdnd.com/images/avatars/av-54593[15336].jpg)
Pranešimai: 1441
Įstojęs: 2010 Bir. 25 20:06:33
|
http://www.phpeasystep.com/phptu...
|
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
Sveikas. Aš dirbu su framework'u, todėl ir tau patarčiau tai išbandyti. Bet paaiškinsiu ir su PHP ![šypsosi](../images/smiley/smile.gif)
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 ![šypsosi](../images/smiley/smile.gif)
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.
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Aciu padejot . Avice skripta duot dar suprantu, bet Faito tai jo dar gilintis biski reikes gaunat +11. Kilus kilusius klausimus su php klausiu cia.
https://webdnd.com/re-siulau-kod...ost_483942
Redagavo 1dEo 2011 Bir. 21 23:06:49 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
Be gilinimosi nebus ir rezultato. O, kad kodą pakopinsi ir įdėsi, tai nuo to tau geriau nebus
Dar kartą, sekmės kurime. ![šypsosi](../images/smiley/smile.gif)
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Sveiki, taigi susiduriau su beda. Bandziau bandziau ja isspresti ir visvien taspats
Stai kokia klaida:
Warning: mysql_num_rows(): supplied argument is not a valid <span style="border-bottom: 1px dotted black;">MySQL</span> result resource in /home/testavimas/domains/testavimas.us.lt/public_html/test/prisijungimas.php on line 22
Gal galetumet padeti?
https://webdnd.com/re-siulau-kod...ost_483942 |
Noyz
Narys
Ekspertas
![Nario avataras](https://webdnd.com/images/avatars/avatar8[13592].jpg)
Pranešimai: 2487
Įstojęs: 2010 Sau. 4 18:01:11
|
1dEo parašė:
Sveiki, taigi susiduriau su beda. Bandziau bandziau ja isspresti ir visvien taspats
Stai kokia klaida:
Warning: mysql_num_rows(): supplied argument is not a valid <span style="border-bottom: 1px dotted black;">MySQL</span> result resource in /home/testavimas/domains/testavimas.us.lt/public_html/test/prisijungimas.php on line 22
Gal galetumet padeti?
Duok 22 eilutę.
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
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";
}
https://webdnd.com/re-siulau-kod...ost_483942 |
ĄČĘĖĮŠŲ
Narys
Pulkininkas
Pranešimai: 326
Įstojęs: 2010 Bal. 14 16:04:25
|
Bet čia net dviemetis tokias login "sistemas" sugebėtų nulaužt.
www.susipazink.eu |
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
PGE, man neidomu dabar tavo lauzimai, man reikia issiaiskinti kodel Erroras.
https://webdnd.com/re-siulau-kod...ost_483942
Redagavo 1dEo 2011 Bir. 23 00:06:10 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
Duok kintamojo $sql aprašymą ![šypsosi](../images/smiley/smile.gif)
|
bruzgis
Narys
Ekspertas
![Nario avataras](https://webdnd.com/images/avatars/avatar_4901[2677].gif)
Pranešimai: 3368
Įstojęs: 2006 Geg. 9 18:05:02
|
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 ![šypsosi](../images/smiley/smile.gif) 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ų. ![šypsosi](../images/smiley/smile.gif) 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. ![šypsosi](../images/smiley/smile.gif) 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 ![šypsosi](../images/smiley/smile.gif)
<?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";
![merkia akį](../images/smiley/wink.gif)
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 ( ).
Su opera (nzn kaip su kitom narsyklem) galima atsidaryt sesijas ir perziuret ju duomenis, gal net ir pakeist pavyktu ![šypsosi](../images/smiley/smile.gif)
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 |
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Tai taip ir nelabai supratau kame beda D. Man atrodo kaip tik su sesijom yra saugiau.
<?php
//Cia buvo mano prisijungimo duomenys,kuriu neuzkomentavau
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; //$tbl_name yra lygus mano lenteles pavadinimui
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:login_success.php"); //cia dariau ir su header ir su <span style="border-bottom: 1px dotted black;">javascript</span>
}
else {
echo "Wrong Username or Password";
}
?>
https://webdnd.com/re-siulau-kod...ost_483942
Redagavo 1dEo 2011 Bir. 23 10:06:17 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
chipass, ne, funkcijos kintamuosius gali aprašyti bet kaip Svarbu, kad būtų kintamieji. Jei tu taip darysi, tai žinai kiek tau funkcijų prireiks, jei norėsi padaryti 2 dalykus? Tad... ![šypsosi](../images/smiley/smile.gif)
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
tai padesit kas nors isprest sia beda ? ...
Man dabar isviso nebemeta jokio Eror'o, taciau ismeta Wrong username or password nors duomenis tikrai gerus suvedu.
https://webdnd.com/re-siulau-kod...ost_483942
Redagavo 1dEo 2011 Bir. 23 11:06:03 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
Spėju todėl meta, kad MYSQL duom.bazėje yra neužkoduotas slaptažodis o tu vedi ir dar koduoji, tad... Arba atvirkščiai.![merkia akį](../images/smiley/wink.gif)
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Nelabai supratau....Mysql tik duomenis yra .
kad username=kazkas
o pass=kazkas
https://webdnd.com/re-siulau-kod...ost_483942 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
O password'as skaičiais ir raidėmis, ar tavo įvestas matosi? ![šypsosi](../images/smiley/smile.gif)
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Mano ivestas matosi.
<?php
include "opendb.php";
$name=$_POST['name'];
$pass=$_POST['pass'];
$uzk=mysql_query("SELECT count(id) FROM prisijungimas WHERE name='$name' and pass='$pass'");
$result=mysql_result($uzk, 0);
if ($result!=1) echo "Prisijungimas nepavyko .";
else {
echo "Prisijungimas pavyko !";
$_SESSION['name']=$name;
};
?>
Sita pats katik parasiau ir visvien taspats :/. Niekaip nesuprantu kame beda.
https://webdnd.com/re-siulau-kod...ost_483942
Redagavo 1dEo 2011 Bir. 23 11:06:05 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
Išviso, turėtum duomenis imti ne taip. ![šypsosi](../images/smiley/smile.gif)
Pavyzdys:
<?php
//Gauname įvesta vartotojo vardą
$username = $_POST['username'];
//MySQL duom.bazėje yra lentelė vartotojai, lentelės turinys: id, username, password
//Ieškome tokio vartotojo, kuris buvo įvestas į formą
$query = mysql_query("SELECT * FROM vartotojai WHERE username = '$username' LIMIT 1");
if(mysql_num_rows($query) == 0)
{
echo "Toks vartotojas nerastas.";
}
else
{
$password = md5($_POST['password']);
while($row == mysql_fetch_array($query))
{
$user_password_db = $row['password']; // Turi duom.bazėje būti slaptažodis užkoduotas md5 koduote
if($password == $user_password_db)
{
$_SERVER['name'] = $username;
}
else
{
echo "Neteisingas slaptažodis";
}
}
}
?>
|
1dEo
Narys
Buldozeris
Pranešimai: 257
Įstojęs: 2010 Gru. 29 11:12:49
|
Man dabar toks var tk veikia dar veliau tavo pabandysiu, bet va dbr tik toks normaliai veikia
<html>
<head>
<title>Prisijungimas</title>
</head>
<body>
<form name='prisijungimas' action='index.php' method='post'>
<h3>Prisijungti</h3>
Vardas: <input type='text' name='user'>
<br>
Slaptazodis: <input type='password' name='slap'>
<br>
<input type='submit' value='Prisijungti'>
</form>
<?php
$user=$_POST['user'];
$slap=$_POST['slap'];
if (($user=="kazkas") && ($slap=="kazkas")) {
echo "Prisijungimas pavyko !";
}
else { echo "Prisijungimas nepavyko .";
}
?>
</body>
</html>
BEt jis speju yra labai nesaugus.. ![be žado](../images/smiley/frown.gif)
https://webdnd.com/re-siulau-kod...ost_483942 |
Faitas.
Narys
Generolas
Pranešimai: 1038
Įstojęs: 2010 Geg. 27 17:05:35
|
Net nebandyk tokių daryti... ![šypsosi](../images/smiley/smile.gif)
|