Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Ukrywanie formularza po zalogowaniu problem
chormi
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


elo wszystkim jak widzicie jestem tu poraz pierwszy i troszeczkę umiem php ale mam problem:

gdy chciałem po zalogowaniu ukryć formularz oraz wyświetlić dane zalogowanego użytkownika
zrobiłem coś takiego:

  1. <?php
  2.  
  3. if($_SESSION['access'] = 'root'){
  4.  
  5. $zapytanie = "SELECT * FROM user where id=".$_SESSION["user_id"];  
  6. $result = mysql_query("$zapytanie");
  7. $row = mysql_fetch_array($result);
  8.  
  9. echo "Twój avatar:<br><p><img src=".$row['avatar']." border='2px'><p>";  
  10.  
  11. echo ('Zalogowany jako:<br><b>'.$row['username'].'</b><br>e-mail: <b>'.$row['email'].'</b><br>Zarejestrowany:<br><b>'.$row['data_rejstacji'].'</b>');  
  12. }else{
  13. echo '<form name='loginform' method='post' action="index.php">Login:<br><input type='text' name='login' size='20' class='textbox'><br>Hasło:<br><input type='password' name='haslo' size='20' class='textbox'><br><p><input type='submit' name='wyslij' value='Zaloguj' class='button'></form><p><a href="index.php?pokaz=register"><font color="#000000">Zarejestruj</font></a><br>';
  14. }
  15.  
  16.  
  17. ?>


Ten post edytował Cienki1980 29.09.2007, 07:14:03
Powód edycji: Zmiana tagu z mysql na php ~Cienki1980
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


$_SESSION['access'] - sprawdz co zwraca - czy na pewno po zalogowaniu poprawnym ustawiasz wartość root

  1. <?php
  2. echo $_SESSION["access"];
  3. ?>


co do drugiego pytania:

  1. <?php
  2. $zapytanie = "SELECT * FROM user where id=...";
  3.  
  4. //np:
  5. $zapytanie = "SELECT * FROM user where id=".$_SESSION["user_id"];
  6. ?>


po zalogowaniu zapisuj w sesji np. id zalogowanego usera jeżeli takie masz w bazie i w ten sposób weryfikuj wyciagane dane z bazy, służy do tego polecenie where (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Łukasz

Ten post edytował kossa 28.09.2007, 15:48:13
Go to the top of the page
+Quote Post
chormi
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


kossa wiec tak nie wiem jak mam zapisać w sesji id zalogowanego usera mam w bazie mysql w tabeli user kolumne "user id" dam kod logowania to może mi ktoś pomoże.

  1. <?php
  2.  
  3. require("config.php");
  4.  
  5. require_once('./config.php'); // załaczamy plik config.php
  6.  
  7. function usun($data){
  8.  
  9. GLOBAL $dbc;
  10. if (ini_get('magic_quotes_gpc')){
  11. $data = stripslashes($data);
  12. }
  13.  return mysql_real_escape_string($data, $dbc);
  14. }
  15.  
  16. if (isset($_POST['submit'])){
  17.  
  18. if (empty($_POST['login'])){
  19. $message .= '<font class="blad">Nie podałeś loginu</font><br />';
  20. $l = FALSE;
  21. }else{
  22. $l = usun($_POST['login']);
  23. }
  24.  
  25. if (empty($_POST['haslo'])){
  26. $message .= '<font class="blad">Nie podałeś hasła</font><br />';
  27. $h = FALSE;
  28. }else{
  29. $h = usun($_POST['haslo']);
  30. }  
  31.  
  32. if ( $l && $h ){
  33.  
  34. $query = "SELECT user_id, username, access FROM user WHERE username='$l' AND haslo=password('$h')";
  35. $result = mysql_query($query);
  36. $row = mysql_fetch_array ($result, MYSQL_ASSOC);
  37.  
  38. if($row){
  39.  
  40. $_SESSION['username'] = $row['username'];  
  41. $_SESSION['access'] = $row['access'];
  42. $_SESSION['ses_user_id'] = $row['id'];
  43.  
  44. }else{
  45. $message .= '<font class="blad">Błędne hasło lub login</font><br />';
  46. }
  47. }else{
  48. $message .= '<font class="blad">Spróbuj jeszcze raz</font>';
  49. }
  50. }
  51.  
  52. ?>


oraz kod który wykonywany jest po poprawnym zalogowaniu usera

  1. <?php
  2.  
  3. if($_SESSION['access'] = 'root'){
  4.  
  5. $zapytanie = "SELECT * FROM user where id=".$_SESSION["user_id"];  
  6. $result = mysql_query("$zapytanie");
  7. $row = mysql_fetch_array($result);
  8.  
  9. echo "Twój avatar:<br><p><img src=".$row['avatar']." border='2px'><p>";  
  10.  
  11. echo ('Zalogowany jako:<br><b>'.$row['username'].'</b><br>e-mail: <b>'.$row['email'].'</b><br>Zarejestrowany:<br><b>'.$row['data_rejstacji'].'</b>');  
  12. }else{
  13. //echo '<form name='loginform' method='post' action="index.php">Login:<br><input type='text' name='login' size='20' class='textbox'><br>Hasło:<br><input type='password' name='haslo' size='20' class='textbox'><br><p><input type='submit' name='wyslij' value='Zaloguj' class='button'></form><p><a href="index.php?pokaz=register"><font color="#000000">Zarejestruj</font></a><br>';
  14. }
  15.  
  16.  
  17. ?>


Ten post edytował chormi 28.09.2007, 17:39:02
Go to the top of the page
+Quote Post
kossa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if ( $l && $h ){
  3.  
  4. //tu sprawdzasz czy login i hasla są ok
  5. $query = "SELECT username, access FROM user WHERE username='$l' AND haslo=password('$h')";
  6. //więc zmień to na:
  7. $query = "SELECT id, username, access FROM user WHERE username='$l' AND haslo=password('$h')";
  8. //jeżeli oczywiście w bazie masz takie pole jak id :)
  9.  
  10. $result = mysql_query($query);
  11. $row = mysql_fetch_array ($result, MYSQL_ASSOC);
  12.  
  13. if($row){
  14. $_SESSION['username'] = $row['username'];
  15. //tu masz zmiena $access - zawsze przybiera wartość root? abyś wiedział czy jest zalogowany - bo przy formularzu to sprawdzasz - zobacz swój pierwszy post
  16. $_SESSION['access'] = $row['access'];
  17. // a id do sesji dodać - no problem:
  18. $_SESSION['ses_user_id'] = $row['id'];
  19. ?>


Pokombinuj Kolego, wszystko już masz, coś od siebie daj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Łukasz
Go to the top of the page
+Quote Post
chormi
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


no i mam error tam gdzie mają sie wyświetlić dane usera po zalogowaniu

Kod
[b]Warning[/b]: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [b]/index.php[/b] on line [b]137
[/b]


linijka 137 odwołuje się bezpośrednio do linijki 136 oraz 135 kod:

  1. <?php
  2. if($_SESSION['access'] = 'root'){
  3.  
  4. $zapytanie = "SELECT * FROM user where id=".$_SESSION["user_id"]; // linijka 135  
  5. $result = mysql_query("$zapytanie");  //  linijka 136
  6. $row = mysql_fetch_array($result);  // linijka 137
  7. ?>


pomoże ktoś prosze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował chormi 1.10.2007, 15:15:24
Go to the top of the page
+Quote Post
qqrq
post
Post #6





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Ej, panie bracie:

  1. <?php
  2. if($_SESSION['access'] == 'root'){
  3.  
  4. $zapytanie = "SELECT * FROM user where id=".$_SESSION["user_id"]; // linijka 135
  5. $result = mysql_query("$zapytanie");  //  linijka 136
  6. $row = mysql_fetch_array($result);
  7. ?>


Dwa równasia (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


~chormi albo piszesz po polsku albo w ogóle.
Nie tolerujemy tutaj dzieci neostrady.

Takie jaja to sobie możesz robić na forum onet.pl albo na blogu jakieś szalonej 13-nastki.
Dostajesz ostrzeżnie a każdy Twój post przez najblizszy tydzień bedzie musiał byc zaakceptowany przez moderatora.

Naucz się wypowiadać publicznie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:56