Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Proszę o pomoc w php

Zaczynasz dopiero swoją przygodę z HTML'em? A może mimo swojego doświadczenia natknąłeś się na jakiś problem? Tutaj na pewno znajdziesz pomoc.

Proszę o pomoc w php

Post 21.06.2014, 20:17:09

Witam. Utworzyłem (a raczej spisałem lekko zmieniając) kod w php. Pytanie moje jest następujące:
czy f - kcja chechkpass może zwracać wartości 3 i 4 (zwraca tylko pawia i {0, 1, 2}) i jeżeli tak, to jak to zrobić. Zależy mi na tym, bo w tabeli bazy mam w użytkownikach dodatkową kolumnę id_przywilej, gdzie 1 - admin, 2 - user, 3 - guest. Wiem, że nie tak się to robi, ale chcę użytkowników w taki sposób identyfikować. Zależy mi na tym, bo niedługo zaliczenia. Z góry dziękuję.
<?php
$host = 'localhost';
$baza = 'dziennik';
$uzytkownik = 'root';
$haslo = '';


function checkPass($user, $pass)
{
global $host, $baza, $uzytkownik, $haslo;
$userNameLength = strlen($user);
$userPassLength = strlen($pass);

if
($userNameLength < 3 || $userNameLength > 20 ||
$userPassLength < 6 ||$userPassLength > 40)
{
return 2;
}

$db_obj = new mysqli($host, $uzytkownik, $haslo, $baza);
if($db_obj->connect_errno)
{
return 1;
}

$user = $db_obj->real_escape_string($user);
$pass = $db_obj->real_escape_string($pass);



$query = "SELECT haslo, id_przywilej FROM uczen WHERE pesel = '$user' UNION SELECT haslo, id_przywilej FROM nauczyciele WHERE pesel = '$user' UNION SELECT haslo, id_przywilej FROM admin WHERE pesel = '$user' " ;



if(!$result = $db_obj->query($query))
{
$db_obj -> close();
return 1;
}





if($result -> num_rows<>1)
{
$result = 2;
}

else
{

$row = $result->fetch_row();
$pass_db = $row[0];
if($pass != $pass_db)
{
$result = 2;
}




else


if($pass == $pass_db)
{
if( == 1) //Tu chciałem się odwołać do 'id_przywilej' z tabeli
{
$result = 3;
}
else if( == 2) //Tu chciałem się odwołać do 'id_przywilej' z tabeli
{
$result = 4;
}
else
{
$result = 0;
}

}


}



$db_obj->close();
return $result;
}

session_start();
if(isset($_SESSION['zalogowany']))
{
header("Location: http://localhost/aplikacja/admin_main.php");
}

else if(!isset($_POST["haslo"]) || !isset($_POST["user"]))
{
if(!isset($_SESION['komunikat']))
$_SESSION['komunikat'] = "wprowadź nazwę i haslo użytkownika:";
include('form.php');
}


else
{
$val = checkPass($_POST["user"], $_POST["haslo"]);
if
($val == 0)
{
$_SESSION['zalogowany'] = $_POST["user"];
header("Location: main.php");
}
else if
($val == 1)
{
$_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
include('form.php');
}
else if
($val == 2)
{
$_SESSION['komunikat'] = "Nieprawidłowa nazwa lub haslo użytkownika.";
include('form.php');
}
else if
($val == 3)
{
$_SESSION['zalogowany'] = $_POST["user"];
header("Location: admin_main.php");
}

else if
($val == 4)
{
$_SESSION['zalogowany'] = $_POST["user"];
header("Location: nauczyciel_main.php");
}


else
{
$_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
include('form.php');
}
}
?>
rafi1654
Posty: 2
Dołączył(a): 21.06.2014

Re: Proszę o pomoc w php

Post 21.06.2014, 20:25:55

Użyj BBCode a dokładnie znacznika code - ułatwi to analizowanie twojego kodu.
Pozdrawiam
www.mjachyra.pl
MJachyra
Posty: 23
Dołączył(a): 14.06.2014

Re: Proszę o pomoc w php

Post 21.06.2014, 20:51:28

Nie wiedziałem, jak się wstawia za pomocą BBCode - przepraszam. Ale problem rozwiązany. W miejsce zmiennych należy wstawić:
$row[1]
i wszystko działa.
Ale i tak wielkie dzięki.
rafi1654
Posty: 2
Dołączył(a): 21.06.2014


Powrót do Początkujący webmaster


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości

Hosting, Domeny, SSL
iCash

Subskrypcja

Mamy 49629 zarejestrowanych użytkowników.
Najnowszy użytkownik: ashwanya


Nasi użytkownicy napisali:

  • 933811 wiadomości
  • w 245887 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)