Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] logowanie a sesja i połączenie z mysql
pijanyadmin
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


Baza

  1. CREATE TABLE IF NOT EXISTS `userdata` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(15) NOT NULL,
  4. `haslo` varchar(32) NOT NULL,
  5. `email` varchar(40) NOT NULL,
  6. `data` varchar(19) NOT NULL,
  7. `adresip` varchar(25) NOT NULL,
  8. KEY `id` (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;


panel logowania
  1. <?php
  2. require_once("functions.php");
  3. require_once("connect.php");
  4. if(logon()) {
  5. movetosite('panel.php');
  6. exit();
  7. }
  8. ?>
  9.  
  10. <form action="panel.php" method="POST">
  11. <fieldset>
  12. <div>
  13. <label for="login">Login:</label>
  14. <input id="login" type="text" class="text" name="user" maxlength="15" />
  15. </div>
  16. <br /><br />
  17. <div>
  18. <label for="haslo">Hasło:</label>
  19. <input id="haslo" type="password" class="text" name="pass" maxlength="15" />
  20. </div>
  21. <br /><br />
  22. <div>
  23. <input id="fSubmit" class="submit" type="submit" name="sprawdz" value='Zaloguj się' />
  24. </div>
  25. </fieldset>
  26. </form>


sesja

  1. <?php
  2. require_once("connect.php");
  3.  
  4.  
  5.  
  6. function logon() {
  7. if(isset($_POST['user']) && isset($_POST['pass'])) {
  8. $_POST['user'] = md5($_POST['user']);
  9. $_POST['pass'] = md5($_POST['pass']);
  10.  
  11. $q = mysql_query("SELECT * FROM userdata WHERE haslo = '".$_POST['user']."' AND haslo = '".$_POST['pass']."' LIMIT 1");
  12. if(!mysql_num_rows($q)) {
  13. echo 'Niepoprawne Login lub Hasło'; exit;
  14. return 0;
  15. }
  16.  
  17. $_SESSION['logon'] = 1;
  18. $_SESSION['login'] = $_POST['user'];
  19. $_SESSION['password'] = $_POST['pass'];
  20. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  21. $_SESSION['idu'] = md5(rand() + rand());
  22.  
  23.  
  24. return 1;
  25. }
  26.  
  27.  
  28.  
  29. if(!isset($_SESSION['logon']) || !isset($_SESSION['login']) || !isset($_SESSION['password']) || !isset($_SESSION['ip']) || !isset($_SESSION['idu'])) {
  30. // echo "3";
  31. return 0;
  32. }
  33. $login = $_SESSION['login'];
  34. $password = $_SESSION['password'];
  35. $idu = $_SESSION['idu'];
  36. $ip = $_SESSION['ip'];
  37.  
  38. if($_SERVER['REMOTE_ADDR'] != $ip) {
  39. // echo "4";
  40. return 0;
  41. }
  42.  
  43.  
  44. if($_GET['idu'] != $_SESSION['idu']) {
  45. return 0;
  46. } else {
  47. return 1;
  48. }
  49.  
  50. }
  51.  
  52.  
  53.  
  54. function movetosite($strona) {
  55. echo "
  56. <script LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\"
  57. window.location.replace(\"$strona\"); 
  58. </SCRIPT>";
  59. }
  60.  
  61. function resetsession() {
  62. $_SESSION['login'] = '';
  63. $_SESSION['password'] = '';
  64. $_SESSION['logon'] = '';
  65.  unset($_SESSION['login']);
  66.  unset($_SESSION['password']);
  67.  unset($_SESSION['logon']);
  68.  unset($_SESSION);
  69. }
  70.  
  71. ?>


problem polega w zalogowaniu sie i otrzymaniu sesji:
  1. <?php
  2. $q = mysql_query("SELECT * FROM userdata WHERE haslo = '".$_POST['user']."' AND haslo = '".$_POST['pass']."' LIMIT 1");
  3. if(!mysql_num_rows($q)) {
  4. echo 'Niepoprawne Login lub Hasło'; exit;
  5. return 0;
  6. }
  7. ?>


tak mogte się zalogować wez problemu pod warunkiem że login jest taki sam jak haslo, niestety jak zmienie
  1. <?php
  2. haslo = '".$_POST['user']."'
  3. ?>

na
  1. <?php
  2. login = '".$_POST['user']."'
  3. ?>


to w ogóle nie moge się zalogować... co jest nie tak [pomijajnac fakt ze troche to chaotyczny kod]

Ten post edytował pijanyadmin 9.01.2008, 20:19:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xbigos
post
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

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


Wiesz co dziasiaj już nie mam cierpliwości jutro w pracy coś Ci napisze chyba, że ktoś zdąży Ci pomóc przede mną.
A weź wszystkie dane usera potrzebne Ci do zmiany up[chnij w sesje. Jutro dostaniesz czystą funkcję. Nara.
u mnie add.php
  1. <?php
  2. require("connect.php");
  3. $zalogowany = $_SESSION['user'];
  4. echo $zalogowany . $email;
  5. //pobiera dane z formularza
  6. $email = htmlspecialchars($_POST['email']);
  7. $query = mysql_query("UPDATE userdata SET email = '$email' WHERE login = '$zalogowany'");
  8.  
  9. if(!$query){
  10. echo 'blad';
  11. }
  12. else {
  13. echo 'rekord zaktualizowany';
  14. }
  15.  
  16. ?>

i index.php
  1. <?php
  2. require("connect.php");
  3. $zalogowany = $_SESSION['user'];
  4. $zapytanie = mysql_query("SELECT * FROM userdata WHERE login ='$zalogowany'");
  5. while($dane = mysql_fetch_array($zapytanie)){
  6. $email = htmlspecialchars($dane['email']);
  7. }
  8. ?>
  9. <form action="add.php" method="POST">
  10. <input type="text" name="email" value="<?php echo $email; ?>">
  11. <input type="submit" value="zmien dane">
  12. </form>



LOL musze wiecej spać. Nie aktualizowało bo nie miało połączenia z bazą. Ale się wygłupiłem. Wstyd mi za siebie. Chociaż może usprawiedliwi mnie to, że od rańca jeszcze browara nie piłem. Teraz działa. usunąłem troche tagów html zeby było czytelniej.

Ten post edytował xbigos 10.01.2008, 23:22:02
Go to the top of the page
+Quote Post

Posty w temacie
- pijanyadmin   [php/mysql] logowanie a sesja i połączenie z mysql   9.01.2008, 20:13:39
- - xbigos   nie znalazlem nigdzie session_start();   9.01.2008, 20:15:15
- - pijanyadmin   już poprawiłem   9.01.2008, 20:19:55
- - xbigos   session_start() dajesz wszędzie gdzie u...   9.01.2008, 20:21:07
- - pijanyadmin   ok, tylko sęk w tym iż nadal jest problem z logowa...   9.01.2008, 20:27:39
- - xbigos   nazwe użytkownika też szyfrujesz przez m...   9.01.2008, 20:33:15
- - pijanyadmin   a racja, zmieniłem juz to md5 i jest dobrze tabel...   9.01.2008, 21:13:39
- - xbigos   Czyli działa czy nie bo nie zrozumiałem:)   9.01.2008, 21:30:37
- - pijanyadmin   nie działa, jest zły odczyt z bazy, z tym jest pro...   9.01.2008, 22:47:13
- - dadexix   ale po co używasz tak w ogóle mysql_results? ...   10.01.2008, 02:13:40
- - pijanyadmin   poprawiłem i teraz mam coś takiego: Kod$hasl...   10.01.2008, 12:38:15
- - dadexix   no tak jest dobrze.... Przedtem sprawdzałeś hasło...   10.01.2008, 13:50:27
- - pijanyadmin   pojawił się jeszcze jeden problem edycj...   10.01.2008, 15:26:22
- - xbigos   @pijanyadmin. Ja czegoś tu nie rozumiem. [PHP...   10.01.2008, 16:11:30
- - dadexix   [PHP] pobierz, plaintext <? session_start...   10.01.2008, 16:26:47
- - pijanyadmin   po zmianie: [PHP] pobierz, plaintext <?phpsess...   10.01.2008, 19:31:15
- - Lion_87   to usuń : Kod$idzapytania2 = mysql_fetch...   10.01.2008, 19:46:39
- - pijanyadmin   wpadłem na to, ale wtedy i tak nic się nie zmienia...   10.01.2008, 19:50:07
- - Lion_87   to jeszcze zmien to Kod$email = mysql_real_e...   10.01.2008, 19:54:34
- - pijanyadmin   [PHP] pobierz, plaintext <?phpsession_start...   10.01.2008, 19:59:47
- - xbigos   zrób var_dump($zalogowany); i var_dump(...   10.01.2008, 20:03:57
- - pijanyadmin   KodWarning: mysql_fetch_array(): s...   10.01.2008, 20:07:16
- - Lion_87   a czy wyskakuje któryś z warunków "blad...   10.01.2008, 20:30:39
- - pijanyadmin   tak, podawałem wcześniej, wyskakuje "błąd...   10.01.2008, 21:13:17
- - xbigos   może po prostu żaden rekord w Twojej bazie nie spe...   10.01.2008, 21:48:09
- - pijanyadmin   zabardzo nie rozumiem jak może nie spełniać warunk...   10.01.2008, 21:51:59
- - xbigos   Daj zrzut z bazy danych ale wczesniej sprawdz czy ...   10.01.2008, 21:56:25
- - pijanyadmin   KodINSERT INTO `userdata` (`id...   10.01.2008, 22:05:53
- - xbigos   [PHP] pobierz, plaintext <?phpsession_start...   10.01.2008, 22:08:47
- - pijanyadmin   i nic... ehhh   10.01.2008, 22:20:20
- - xbigos   Podaj cały plik który Ci aktualizuje rekord i...   10.01.2008, 22:21:56
- - pijanyadmin   Ty tracisz cierpliwość? a co ja mam powiedzieć jak...   10.01.2008, 22:26:22
- - xbigos   [PHP] pobierz, plaintext <?phpsession_start...   10.01.2008, 22:35:02
- - pijanyadmin   i... nadal nic.. teraz to się nawet nie wczytuje ...   10.01.2008, 22:49:17
- - xbigos   Wiesz co dziasiaj już nie mam cierpliwo...   10.01.2008, 23:08:37
- - Lion_87   no może teraz i wpisz tak jak napisałem jeśli dz...   10.01.2008, 23:15:04
- - pijanyadmin   u mnie to wygląda tak: formularz: [PHP] pobierz,...   10.01.2008, 23:20:00
- - xbigos   HAHAHAHA A mi zmienia:) weź wypier*** narazie to b...   10.01.2008, 23:25:10
- - pijanyadmin   zaskocze Cie... zrobiłem już nawet osobne pliki, b...   10.01.2008, 23:34:04
- - xbigos   To ja Ci już nie pomogę. Mi zmienia. I to jest dzi...   10.01.2008, 23:35:58
- - pijanyadmin   a może jest coś z sesją nie tak: [PHP] pobierz, p...   10.01.2008, 23:39:29
- - xbigos   po co przechowujesz w sesji hasło? [PHP] pobierz, ...   11.01.2008, 10:26:31
- - pijanyadmin   wybaczcie za odgrzewanie starego kotleta ale może ...   14.01.2008, 14:04:02


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 - 12:19