Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP+MySQL]Pomoc przy skrypcie
Lerno
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 16.03.2004

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


Od dluzszego czasu pisalem skrypty w php oparte na plikach, dzialaly dobrze i sie sprawdzaly. Teraz jednak chce liznac bazy danych np: mysql. Napisalem jakis czas temu logowanie i chcialbym teraz je przerobic na mysql. Stworzylem baze i tabele w mysqlu i teraz pisze pod nia skrypt. Niedziala. Tzn. logowanie dziala niby, ale po tym jak sie zaloguje jakbym gubil sesje, albo raczej polaczenie z baza, czy... cos tam innego sie psuje. W kazdym razie logowanie przebiega poprawnie, ale po zalogowaniu czego bym nie zrozobil zwraca mi ze jestem niezalogowany i koniec. Moze trzeba zapisywac w bazie stan? Na plikach dzialalo mi w takiej postaci, na mysqlu juz nie.

Oto skrypt (miedzy /**/ umiescilem tez kod ktory pobiera dane z pliku i uzywajac tej weryfikacji zamiast bazy skrypt bedzie dzialal poprawnie.)

  1. <?php
  2.  $zalogowany = &#092;"false\";
  3.  if(isset($_POST['login'])) $login = $_POST['login'];
  4.  else  $login = @$_SESSION['login'];
  5.  if(isset($_POST['pass'])) $pass = $_POST['pass'];
  6.  else  $pass = @$_SESSION['pass'];
  7.  
  8.  $db_info['host'] = &#092;"localhost\";
  9.  $db_info['user'] = &#092;"xxx\";
  10.  $db_info['pass'] = &#092;"xxx\";
  11.  $db_info['db']  = &#092;"xxx\";
  12.  $db_connection = mysql_pconnect($db_info['host'], $db_info['user'], $db_info['pass']) or die(mysql_error());
  13. if(!$db_connection) $db_status = false;
  14.  $db_select = mysql_select_db($db_info['db'], $db_connection) or die(mysql_error());
  15. if(!$db_select) $db_status = false;
  16.  
  17.  if((isset($_POST['login']))&amp;&amp;(isset($_POST['pass']))){
  18. $login = addslashes($_POST['login']);
  19. $pass = addslashes($_POST['pass']);
  20. if(!isset($db_status) || $db_status !== false){
  21.  $query = mysql_query(&#092;"SELECT * FROM `user` WHERE `login`='\".$login.\"' AND `pass`='\".$pass.\"';\");
  22.  if(mysql_num_rows($query) == 1){
  23. $zalogowany = &#092;"true\";
  24. $_SESSION['login'] = $login;
  25. $_SESSION['pass'] = $pass;
  26. $wiersz = mysql_fetch_array($query);
  27. $_SESSION['name'] = $wiersz['name'];
  28. $_SESSION['email'] = $wiersz['email'];
  29. $user_logged = $wiersz['level'];
  30.  }
  31. }  
  32.  }
  33.  /*
  34.    // wczytujemy liste userow z pliku oraz dokonujemy weryfikacji
  35.    if(file_exists('users.dat')){
  36. $users_file = file('users.dat');
  37. $users_amount = count($users_file);
  38.  // haszujemy haslo
  39. $passmd5 = md5($pass);
  40.  
  41. while(list($key, $val) = each($users_file)){
  42.  $user_line = explode('||', trim($val));
  43.  if(($user_line[1] == $login)&amp;&amp;($user_line[2] == $passmd5)){
  44. $zalogowany = \"true\";
  45. $_SESSION['login'] = $login;
  46. $_SESSION['pass'] = $pass;
  47. $user_logged = $user_line;
  48.  }
  49. }
  50.    }
  51.    */
  52.  // jesli sie niezalogowal
  53.  if($zalogowany == &#092;"false\"){
  54. echo '<dl><dt>Logowanie</dt><dt>•<a href=\"index.php?id=1\">Zaloguj</a></dt></dl>';
  55. $text = '';
  56. if(isset($_GET['id']) == &#092;"1\"){
  57.  // form logowania
  58.  echo'<div >Zaloguj się.</div><div ><form action=\"index.php\" method=\"post\"><div>&amp;nbsp;</div><div >Login:<br /> <input class=\"pola_input\" type=\"password\" name=\"login\" value=\"\" /></div><div >Hasło:<br /> <input class=\"pola_input\" type=\"password\" name=\"pass\" value=\"\" /><br /><input type=\"submit\" value=\"Zaloguj\" /></div></form></div>';
  59. }
  60.  }
  61.  // jesli sie zalogowal to
  62.  if($zalogowany == &#092;"true\"){
  63. //opcja wylogowania
  64. echo '<dl><dt><span>Wylogowanie</span></dt><dt><span>•</span> <a href=\"index.php?id=logout>Wyloguj</a></dt><dt>&amp;nbsp;</dt>';
  65. if(@$_GET['id'] == 'logout'){
  66.  echo 'Wylogowano użytkownika. W celu ponownego zalogowania kliknij <a href=\"index.php?id=1\" title=\"przelogowanie\">tutaj</a>';
  67. }
  68. // ustanawiamy poziom dostepu
  69. if($user_logged == '1')  $status = 'update';
  70. else if($user_logged == '2')  $status = 'moderatorek';
  71. else if($user_logged == '3')  $status = 'adminek';
  72. else{
  73.  echo 'Zostałeś/łaś wylogowany/a! W celu próby ponownego zalogowania się kliknij <a href=\"adm.php?id=1\" title=\"Zaloguj się\">tutaj</a>.';
  74. }
  75.  
  76. if($status == 'update'){
  77.  echo '<dt><span>Podstawowe</span></dt><dt><span>•</span> <a href=\"'. $_SERVER[&#092;"PHP_SELF\"] .'?id=1\">Dzial</a></dt>';
  78.  if(@$_GET['id'] == &#092;"1\"){
  79. echo 'Sztama!';
  80.  }
  81. }
  82. // itd...
  83.  }
  84. ?>


Moze widzicie co robie zle. Z gory dzieki.


__________________
Moderated by Bakus: Wykorzystuj właściwe znaczniki BBCode
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Lerno
post
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 16.03.2004

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


Napisalem od nowa, starajac sie analizowac krok po kroku no i chyba to dalo efekt, bo zdaje sie ze dziala. Chcialbym sie teraz zapytac czy ta metoda jaka ponizej zamieszcze jest BEZPIECZNA! Prosze o wszelkie opinie, nawet jakies "polslowka", najwyzej poszukam i zglebie temat. Chcialbym poprostu miec pewnosc, czy nie mozna tego byle jakim trickiem obejsc ot tak.

index.php
  1. <?
  2. if(isset($_SESSION['name'])){
  3. echo 'Zalogowany ' . $_SESSION['name'].'<br />';
  4. echo '<p><a href=\"'.$_SERVER[&#092;"PHP_SELF\"].'?id=1\">menu 1</a><br />';
  5. echo'<a href=\"'.$_SERVER[&#092;"PHP_SELF\"].'?id=logout\">Wyloguj</a></p>';
  6.  
  7. if(@$_GET['id'] == &#092;"1\") echo 'Test';
  8. if(@$_GET['id'] == &#092;"logout\"){
  9. echo 'Wylogowano';
  10. };
  11. }
  12. else{
  13. echo 'Niezalogowany';
  14. //wyswietlamy formularz
  15. echo '<form action=\"submit.php\" method=\"post\">
  16. Login: <input type=\"text\" name=\"login\" /><br />
  17. Hasło: <input type=\"password\" name=\"pass\" /><br />
  18. <input type=\"submit\" value=\"Zaloguj\" />
  19. </form>
  20. ';
  21. }
  22. ?>
  23. </body>
  24.  
  25. </html>


submit.php
  1. <?php
  2.  
  3. require('config.php'); 
  4. if((isset($_POST['login']))&&(!empty($_POST['login']))&&(isset($_POST['pass']))&&(!empty($_POST['pass']))){
  5. $login = $_POST['login'];
  6. $pass = $_POST['pass'];
  7. echo 'Dane jakie podales: ' . $login . ' i ' . $pass . '.<br />';
  8. $query = mysql_query(&#092;"SELECT * FROM `users` WHERE `login`='\".$login.\"' AND `pass`='\".$pass.\"';\");
  9. if(mysql_num_rows($query) == 1){
  10. // przypisuje do sesji jego login i pass
  11. $_SESSION['login'] = $login;
  12. $_SESSION['pass'] = $pass;
  13. // dodatkowo przypisuje inne dane dotyczace tego usera do sesji
  14. $wiersz = mysql_fetch_array($query);
  15. $_SESSION['name'] = $wiersz['name'];
  16. $_SESSION['email'] = $wiersz['email'];
  17. echo 'Zalogowales sie '.$_SESSION['name'] . ' o e-mail`u '. $_SESSION['email'].'<br />';
  18. echo '<a href=\"index.php?id=1\">menu 1</a>';
  19. }
  20. else{
  21. echo 'Nie ma takiego uzytkownika!';
  22. }
  23. }
  24. else{
  25. echo 'Nie podales danych!';
  26. }
  27.  
  28. ?>


config.php
  1. <?
  2. $db_info['host'] = &#092;"localhost\";
  3. $db_info['user'] = &#092;"xxx\";
  4. $db_info['pass'] = &#092;"xxx\";
  5. $db_info['db']  = &#092;"xxx\";
  6. $db_connection = mysql_connect($db_info['host'], $db_info['user'], $db_info['pass']) or die('ble');
  7. $db_select = mysql_select_db($db_info['db'], $db_connection) or die('ble2');
  8. ?>


Ten post edytował Lerno 11.02.2005, 17:01:22
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 09:10