Grafikos pamokos, diskusijos GFX diskusijos Pagalba, klausimai

 PHP login sistema

Šiame skyriuje visi klausimai susiję su grafika, reikalinga pagalba

Standartinė KNx » 2010 Bal 19, 20:57

Sveiki visi,
Nežinau ar čia pataikiau ar ne, bet manau, kad tinka čia.
Turiu problemą:
Yra 2 failai, vienas prisijungimas, labai paprastas jis, o kitas funkcijų failas, kuris autorizuoja vartotoją. Įdėsiu abu failus (jų kodus), tačiau reikėtų, kad kas patartų (dar geriau pamokytų) kaip reikia čia įterpti admin atpažinimą, pagal jo rank.

Log.php failas:
Kodas: Pasirinkti visus
            <h2 class="title">Prisijungti</h2>
            <div style="clear: both;">&nbsp;</div>
            <div class="entry">
            <?php
error_reporting(E_ALL ^ E_NOTICE);
if(isset($_POST['log'])){
$pass = md5 ($_POST['pass']);
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$check = mysql_query("SELECT * FROM users where nickas = '".$_POST['username']."' ");   
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
print "Tokio vartotojo nera";
}else{
while($infoUser = mysql_fetch_array($check)) {
if($pass != $infoUser['password']){
print "Neteisingas slaptazodis";
}else{
$time = time()+ 3600;
setcookie(username,$_POST['username'],$time);
setcookie(pass,$pass,$time);
header("Location: index.php");
}
}
}
}
?>

<form action="index.php?id=log" method="post">
Username:<br />
<input type="text" name="username" maxlength="20"><br />
Password:<br />
<input type="password" name="pass" maxlength="20"><br />
<div style="clear: both;">&nbsp;</div>
<input type="submit" name="log" value="Prisijungti">
</form>
            </div>



Functions.php failas:
Kodas: Pasirinkti visus
<?php
require "db.php";
$nick = $_COOKIE['username'];
$pass = $_COOKIE['pass'];
function online() {
global $nick, $pass;
$check = mysql_query("SELECT * FROM users where nickas = '$nick' and password = '$pass' ");   
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
$online = 0;
}else{
$online = 1;
}
return $online;
}
?>
<<<< Būtent šitas failas turėtų atpažinti prisijungimą admino. Bet kaip tai padaryti?


Ačiū iš anksto.
Vartotojo avataras
KNx
Įsijaučiantis
 
Pranešimai: 125
Miestas: Saulės Miestas
Taškai: 116

Reputacija: 6 Pridėti reputacijos tašką

Standartinė H3.juodikis » 2010 Bal 21, 08:16

Čia niekur neaprašytas rank'as.
Realiai turėtų būt kažkas tokio

Kodas: Pasirinkti visus
<...>
if ($user_rank = 3) {
echo "tu superadminas";
}
elseif ($user_rank = 2) {
echo "tu adminas";
}
else {
echo "tu paprastas vartotojas";
}
<...>
Paveikslėlis
PaveikslėlisPaveikslėlis
Vartotojo avataras
H3.juodikis
H3nity™
H3nity™
 
Pranešimai: 1270
Miestas: Vilnius
Medaliai: 16
Taškai: 1309

Kovų lygis: A

Reputacija: 119 Pridėti reputacijos tašką

Standartinė KNx » 2010 Bal 21, 14:54

Esmė tame, kad čia jo ir nėra. Būtų, tai neklausčiau kas ir kaip.
Nelabai supratau iš kur gauti tavo kintamajį user_rank.
Vartotojo avataras
KNx
Įsijaučiantis
 
Pranešimai: 125
Miestas: Saulės Miestas
Taškai: 116

Reputacija: 6 Pridėti reputacijos tašką

Standartinė H3.juodikis » 2010 Bal 21, 21:27

...kaip reikia čia įterpti admin atpažinimą, pagal jo rank.


Tu paklausei kaip pagal rank.

O ką aš žinau kaip parašyta sistema, ir ar išvis aprašytas rankas koks nors. Aš tau tiesiog pavyzdį daviau.
Paveikslėlis
PaveikslėlisPaveikslėlis
Vartotojo avataras
H3.juodikis
H3nity™
H3nity™
 
Pranešimai: 1270
Miestas: Vilnius
Medaliai: 16
Taškai: 1309

Kovų lygis: A

Reputacija: 119 Pridėti reputacijos tašką

Standartinė Cause » 2010 Bal 24, 01:42

Na jeigu neturi duomenų bazės su vartotojų rank'ais tai nieko nebus, siūlau daryti tesiog atskirą sąlygą administratoriui.
Su pagarba, jūsų draugas ir kolega Cause.
Vartotojo avataras
Cause
Forumo gyventojas
 
Pranešimai: 771
Miestas: Vilnius
Medaliai: 1
Taškai: 234

Reputacija: 6 Pridėti reputacijos tašką

Standartinė KNx » 2010 Bal 24, 09:07

Dabar yra taip:
Yra stulpelis rank. Jei paprastas vartotojas tai 3 o jei admin 10.
Yra stulpelis online. Jei prisijungė parastas vartotojas uždeda 6 jei admin 11.
Prisijungus, jei viskas teisingai patikrina rank, ir jei jis atitinka nurodytą sąlygą, į db online stulpelį atnaujina į 6 arba 11 jei admin rangas.
Atsijungiant sistema pakeičia online atgal į 0, ir rodo, kad tu atsijungęs. O sausainėliuose saugomas nick, dėl patikrinimo.

Žodžiu visa sistema veikia, tik reikėtų, kad kas nors pažiurėtų jos saugumą.
Vartotojo avataras
KNx
Įsijaučiantis
 
Pranešimai: 125
Miestas: Saulės Miestas
Taškai: 116

Reputacija: 6 Pridėti reputacijos tašką

Standartinė H3.juodikis » 2010 Bal 24, 12:50

Kodas: Pasirinkti visus
<...>
if ($user_rank < 10) {
echo "tu adminas";
}
else {
echo "tu paprastas vartotojas";
}
<...>
Paveikslėlis
PaveikslėlisPaveikslėlis
Vartotojo avataras
H3.juodikis
H3nity™
H3nity™
 
Pranešimai: 1270
Miestas: Vilnius
Medaliai: 16
Taškai: 1309

Kovų lygis: A

Reputacija: 119 Pridėti reputacijos tašką

Standartinė KNx » 2010 Bal 24, 15:37

Aš jau pasidaręs esu. Viskas veikia idealiai.

Teliko tikrinti saugumą.
Vartotojo avataras
KNx
Įsijaučiantis
 
Pranešimai: 125
Miestas: Saulės Miestas
Taškai: 116

Reputacija: 6 Pridėti reputacijos tašką

Standartinė Cause » 2010 Geg 07, 20:51

Horde, šiaip jau supainiojai, admin 10, o tu parašei, if rank < 10 then you admin :)
Su pagarba, jūsų draugas ir kolega Cause.
Vartotojo avataras
Cause
Forumo gyventojas
 
Pranešimai: 771
Miestas: Vilnius
Medaliai: 1
Taškai: 234

Reputacija: 6 Pridėti reputacijos tašką



Grafikos pamokos, diskusijos GFX diskusijos Pagalba, klausimai

cron

Prisijungti

Forumo stilius

Pasirinkimas:

free tattoo Designs mezoterapija