Pereiti prie turinio

Del login ir admin paneles..


Rekomenduojami pranešimai

Tai va...Pasikuriau reg ir login..viskas veikia kuo puikiausiai tik yra beda.. Tai va tokia kad nezinau kaip padaryti kad neleistu to pacio username ir el.pasto ? nes dabar gali registruotis beleka belekaip ..ir nezinau kaip padaryti tokia funkcija pvz kaip tuscia laukeli kur reiktu registruojantis ivesti vartotojui tam tikra info ir kad tik adminas galetu matyti ta info...

tarkim kaip banner_code...Na laukeli tuscia moku padaryt, bandau tas funkcijas rasyti, bet registruojantis paraso kad registracija nepavyko..nes tos info nesiuncia i DB..

 

va kodas kuri redagavau

 

<?php
include_once('config.php');
if(isset($_POST["submit"])) { 
   if(empty($_POST["username"]) OR empty($_POST["password"]) OR empty($_POST["email"]) OR empty($_POST["country"])) {
   	echo "Prasome uzpildyti visus pateiktus laukus!\n";
   } else {
   	$username = addslashes(mysql_real_escape_string($_POST["username"]));
   	$password = ($_POST["password"]);
   	$email = addslashes(mysql_real_escape_string($_POST["email"]));
   	$country = addslashes(mysql_real_escape_string($_POST["country"]));
   	$date = date("Y-m-d H:i:s"); 
   	$sql = "INSERT INTO users (username,password,email,country,date) VALUES ('$username','$password','$email','$country','$date')"; 
   	$result = mysql_query($sql); 
   	if($result) { 
   		echo "Jus sekmingai prisiregistravote!\n";
   	} else {
   		echo "Klaida! Nepavyko jusu priregistruoti!\n";
   	}
   }
}
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<b>Username</b>: <input type="text" name="username" /><br />
<b>Password</b>: <input type="password" name="password" /><br />
<b>Email</b>: <input type="text" name="email" /><br />
<b>Country</b>: <input type="text" name="country" /><br />
<input type="submit" value="Register" name="submit" />
</form>

 

Kita tai niekaip neiseina pritaikyti admin paneles nes jungiantis neatpazysta kaip administratoriaus..o kad uzregistrot save kaip admina nerandu ..gal kas zinosit..as dar pats visa google verciu aukstyn kojom..bet pagrindine beda anglu kalba todel sunkiai ieskosi;)

Redagavo ganjabest
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Tai va...Pasikuriau reg ir login..viskas veikia kuo puikiausiai tik yra beda.. Tai va tokia kad nezinau kaip padaryti kad neleistu to pacio username ir el.pasto ?

$uzklausa=mysql_query("SELECT * FROM table_vardas WHERE username='$username'") or die(mysql_error());
$i=0;
while($ccc=mysql_fetch_array($uzklausa)){
 $i++;
}
if($i>0){
 echo "Toks nikas egzistuoja";
}
else{
 echo "Viskas čiki piki, prisireginai";
}
/**Dar reik palygint, ar $uzklausa=true, bet čia pats padarysi.

Galima mysql_fetch_row su SELECT COUNT(*) naudot, bet parašiau paprastesnį pavyzdį, kad suprastum. Ir šiaip siūlau dar mysql geriau pasimokyt.

Redagavo Tom
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš naudoju $count = mysql_fetch_row($select); if($count !== 0){ echo "Toks vardas užimtas."; }

Užsiregistruot save kaip adminą, kad būtų vartotojai/adminai. Tai duomenų bazėj (MySQL) pvz turi būt taip id | username | password | rights. Kai jungiasi $login = mysql_query("SELECT * FROM `nariai` WHERE `username` = '$username' AND `password` = '$password'"); if($login == 1){ $sql = mysql_fetch_assoc($login); if($sql['rights'] == 'admin'){ session_regenerate_id(); $_SESSION['ADMIN_ID'] = $sql['id']; session_write_close(); header("Location: index.php"); } else { // Rights buna ne admin, reiškias jungiam kaip paprastą vartotoją. session_regenerate_id(); $_SESSION['MEMBER_ID'] = $sql['id']; session_write_close(); header("Location: index.php"); }

 

Tada index.php darai taip <?php session_start(); if(!isset($_SESSION['MEMBER_ID']) || (trim($_SESSION['MEMBER_ID']) == '')){ header("location: pavyzdys.php?show=loginform"); die(); } // Jei viskas gerai, rodai info, jei jis dar adminas tai gaunasi dar taip if(isset($_SESSION['ADMIN_ID'])){ echo "Rodai admin info"; }

 

Na čia visko galima prigalvot :) biškį užvėliau, bet manau atsirinksi, ir pas mane session_autostart pajungta, tai gali reikt dasirašyt session_start(); tarp if($login == 1){} sėkmės :lol:

 

Tai va maždaug taip, netikrinau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Aš naudoju $count = mysql_fetch_row($select); if($count !== 0){ echo "Toks vardas užimtas."; }

Užsiregistruot save kaip adminą, kad būtų vartotojai/adminai. Tai duomenų bazėj (MySQL) pvz turi būt taip id | username | password | rights. Kai jungiasi $login = mysql_query("SELECT * FROM `nariai` WHERE `username` = '$username' AND `password` = '$password'"); if($login == 1){ $sql = mysql_fetch_assoc($login); if($sql['rights'] == 'admin'){ session_regenerate_id(); $_SESSION['ADMIN_ID'] = $sql['id']; session_write_close(); header("Location: index.php"); } else { // Rights buna ne admin, reiškias jungiam kaip paprastą vartotoją. session_regenerate_id(); $_SESSION['MEMBER_ID'] = $sql['id']; session_write_close(); header("Location: index.php"); }

 

Tada index.php darai taip <?php session_start(); if(!isset($_SESSION['MEMBER_ID']) || (trim($_SESSION['MEMBER_ID']) == '')){ header("location: pavyzdys.php?show=loginform"); die(); } // Jei viskas gerai, rodai info, jei jis dar adminas tai gaunasi dar taip if(isset($_SESSION['ADMIN_ID'])){ echo "Rodai admin info"; }

 

Na čia visko galima prigalvot :) biškį užvėliau, bet manau atsirinksi, ir pas mane session_autostart pajungta, tai gali reikt dasirašyt session_start(); tarp if($login == 1){} sėkmės :lol:

 

Tai va maždaug taip, netikrinau.

 

 

na del to pacio username padariau, bet rodo pastoviai toks vardas uzimtas o registruotis visiek tuo paciu eina ..kame problemos kazin?

<?php
include_once('config.php');
if(isset($_POST["submit"])) { // tikrinam ar buvo paspaustas submit mygtukas
   if(empty($_POST["username"]) OR empty($_POST["password"]) OR empty($_POST["email"]) OR empty($_POST["country"])) { // tikrinam ar netusti laukai
   	echo "Prasome uzpildyti visus pateiktus laukus!\n";
   } else {
   	$username = addslashes(mysql_real_escape_string($_POST["username"]));
   	$password = ($_POST["password"]); // password bus md5
   	$email = addslashes(mysql_real_escape_string($_POST["email"]));
   	$country = addslashes(mysql_real_escape_string($_POST["country"]));
   	$date = date("Y-m-d H:i:s"); // datos formatas metai-menesiai-dienos Valandos:minutes:sekundes
   	$sql = "INSERT INTO users (username,password,email,country,date) VALUES ('$username','$password','$email','$country','$date')"; // siunciam info

   $result = mysql_query($sql); // vykdom
   	if($result) { // tikrinam ar viskas issisiunte
   		echo "Jus sekmingai prisiregistravote!\n";
   	} else {
   		echo "Klaida! Nepavyko jusu priregistruoti!\n";
   	}
   }
}
$select=mysql_query("SELECT * FROM users WHERE username='$username'") or die(mysql_error());
$count = mysql_fetch_row($select); 
if($count !== 0){ 
echo "Toks vardas užimtas."; 
} 
else {
echo "Tokio vardo dar nera.";
}
?>

<form method="POST" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<b>Username</b>: <input type="text" name="username" /><br />
<b>Password</b>: <input type="password" name="password" /><br />
<b>Email</b>: <input type="text" name="email" /><br />
<b>Country</b>: <input type="text" name="country" /><br />
<input type="submit" value="Register" name="submit" />
</form>

Redagavo ganjabest
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šaunu, kad klausi :lol: Problema tame, kad tikrini ar vartotojas yra pačiam gale skripto. O juk PHP vykdo nuo viršaus į apačią visas komandas :) Viskas turi atrodyt maždaug taip:

 

$username = addslashes(mysql_real_escape_string($_POST["username"]));

 

$select = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'") or die("MySQL klaida: " . mysql_error());

 

$count = mysql_fetch_row($select);

 

if($count !== 0){

echo "Toks vardas, jau yra užimtas prašome pasirinkti kitą.";

die();

}

 

$password = sha1(md5($_POST["password"])); // Galima dar pridėt: sha1(md5($username . $hash)); Password'ą daryk, koks tau tinka. Tik su $hash login'antis reiks prie sha1(md5($login . $hash));

Redagavo Domus
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Šaunu, kad klausi :) Problema tame, kad tikrini ar vartotojas yra pačiam gale skripto. O juk PHP vykdo nuo viršaus į apačią visas komandas :lol: Viskas turi atrodyt maždaug taip:

 

$username = addslashes(mysql_real_escape_string($_POST["username"]));

 

$select = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'") or die("MySQL klaida: " . mysql_error());

 

$count = mysql_fetch_row($select);

 

if($count !== 0){

echo "Toks vardas, jau yra užimtas prašome pasirinkti kitą.";

die();

}

 

$password = sha1(md5($_POST["password"])); // Galima dar pridėt: sha1(md5($username . $hash));

Password'ą daryk, koks tau tinka. Tik su $hash login'antis reiks prie sha1(md5($login . $hash));

 

 

Na del register jau susitvarkiau ..ACIU! vat ka pakeiciau is tavo tai nerasiau skliaustuose !== 0 ir viskas susitvarke..

 

o dabar del admin tai nelabai supratau kur pirma koda deti t.y. sita:

$login = mysql_query("SELECT * FROM `nariai` WHERE `username` = '$username' AND `password` = '$password'"); 
if($login == 1){ 
$sql = mysql_fetch_assoc($login);
if($sql['rights'] == 'admin'){ 
session_regenerate_id(); 
$_SESSION['ADMIN_ID'] = $sql['id']; 
session_write_close(); header("Location: index.php"); 
} 
else { // Rights buna ne admin, reiškias jungiam kaip paprastą vartotoją.
session_regenerate_id(); $_SESSION['MEMBER_ID'] = $sql['id'];
session_write_close(); 
header("Location: index.php"); }

 

 

o sekanti kaip supratau i pagrindini tinklpio langa ar kaip?

Redagavo ganjabest
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šitą kodą panaudot reikia, jei atitinka username ir password, tada padarai sesiją. Kaip suprantu tu čia eksperimentuoji.. Tai siūlau paskaityt teorijos ir tada bandyt susitvarkyt ir panagrinėt kokį PHP-Fusion ar pan.. kaip ten yra.

 

http://lt2.php.net/manual/en/function.session-start.php

http://www.google.lt/search?hl=lt&q=ph...&meta=lr%3D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...