Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Błąd logowania, PHP + MySQL
Karmazyn.Katija
post 1.04.2007, 11:23:42
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 1.04.2007

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


Na PHP i MySQL znam się już na tyle, aby zrobić własny projekt bez zaglądania do książek..., ale teraz mam problem i nawet ona mi w tym nie pomoże.

Wykonałem następujący kod logowania na stronie oparty na bazie MySQL:
  1. // plik "katija.php"
  2.  
  3. <?php
  4.  mysql_connect("127.0.0.1", "root", "krasnal") or die ("Nie uzyskano dostępu do bazy.");
  5.  mysql_select_db("katija");
  6.  if (!isset($_SESSION['autoryzacja'])) $_SESSION['autoryzacja'] = 'false';
  7.  if ($_GET['logout'] == 'sayonara') $_SESSION['autoryzacja'] = 'false';
  8.  
  9.  
  10.  // zmienne
  11.  $x = 100; //szerokosc lewej komorki
  12.  $y = 650; //szerokosc prawej komorki
  13.  
  14.  echo('
  15.  <html>
  16.  <head>
  17.  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  18.  <link rel="stylesheet" type="text/css" href="styl.css">
  19.  </head>
  20.  <body>
  21.  <table width="750px" align="center">
  22. <tbody>
  23.  <tr>
  24.  <td width="'.$x.'px" align="center" valign="top">
  25.  '); if ($_SESSION['autoryzacja'] == 'true') include('menu.php');
  26.  else
  27.  echo('<a href="katija.php?konto=new">Nowe konto.</a>'); echo('
  28.  </td>
  29.  <td width="'.$y.'px" align="center" valign="top">
  30.  '); if ($_GET['konto'] == 'new') include('konto.php');
  31.  else
  32.  if ($_SESSION['autoryzacja'] == 'true')
  33.  {
  34. $allow=array('start');
  35. if (isset($_GET['move'])) $move=$_GET['move']; else $move=$allow[0];
  36. if (isset($_POST['move'])) $move=$_POST['move'];
  37. if (strpos($move,'.')!==false) $move=$allow[0];
  38. if (file_exists($move.'.php') && in_array($move,$allow)) $move.='.php';
  39.  else $move='html/'.$move.'.htm';
  40. if (file_exists($move)) include($move);
  41. else echo('Nie znaleziono pliku.');
  42.  }
  43.  else include('login.php'); echo('
  44.  </td>
  45.  </tr>
  46. </tbody>
  47.  </table>
  48.  </body>
  49.  </html>');
  50. ?>


Plus jeszcze jeden potrzebny do tego plik:
  1. // plik "login.php"
  2. <?php
  3.  if (isset($_POST['login']))
  4.  {
  5. $query='SELECT * FROM users ORDER BY login DESC';
  6. $result = mysql_query ($query);
  7. while ($search = mysql_fetch_array($result))
  8. {
  9.  if (($_POST['login'] == $search['login']) && ($_POST['passwd'] == $search['passwd']))
  10.  {
  11. $_SESSION['user_id'] = $search['id'];
  12. $_SESSION['user_login'] = $search['login'];
  13. $_SESSION['user_passwd'] = $search['passwd'];
  14. $_SESSION['autoryzacja'] = 'true';
  15.  }
  16. }
  17.  }
  18.  
  19.  echo('
  20.  <form action="katija.php" method="POST">
  21.  <table>
  22. <tbody>
  23.  <tr>
  24.  <td>
  25.  Login:
  26.  </td>
  27.  <td>
  28.  <input size="12" name="login" value="">
  29.  </td
  30.  </tr>
  31.  <tr>
  32.  <td>
  33.  Passwd:
  34.  </td>
  35.  <td>
  36.  <input size="12" type="password" name="passwd" value="">
  37.  </td>
  38.  </tr>
  39.  <tr>
  40.  <td>
  41.  </td>
  42.  <td>
  43.  <input type="submit" value="Active">
  44.  </td>
  45.  </tr>
  46. </tbody>
  47.  </table>
  48.  </form>');
  49. ?>


A oto sedno sprawy, przy logowaniu jakimkolwiek loginem, potrzebuje to wykonać 2x zanim zostanę zalogowany. Brak błędów przy logowaniu. Prosze o pomoc...
Go to the top of the page
+Quote Post
conip
post 2.04.2007, 13:11:22
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 31.03.2007
Skąd: Gdańsk

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


mogę się mylić ale tak się dzieje dlatego że :

1. ładujesz katia.php (autoryzacja = false)
2. dołaczasz login.php z formularzem do katia.php
3. wypelniasz formularz (submit->przeladowanie katia.php) (nadal autoryzacja = false bo nie sprawdzone ze baza)
4. a wiec znow dolaczasz login php - gdzie sprawdzasz posty z baza i dopiero ustawiasz autoryzacje=true

to jest chyba przyczyzna że 2 razy musisz to robic

sprawdzanie z baza powinno chyba być na poczatku pliku katia.php

pozdrawiam

Ten post edytował conip 2.04.2007, 13:47:03
Go to the top of the page
+Quote Post
uli
post 2.04.2007, 13:29:14
Post #3





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


W login.php wstaw na początku:

  1. <?php
  2. ?>


Powinno działać smile.gif
Nie możesz ustawiać sesji nie mając jej zdefiniowanej smile.gif

Ten post edytował uli 2.04.2007, 13:30:03


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
Karmazyn.Katija
post 5.04.2007, 10:27:40
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 1.04.2007

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


Cytat(conip @ 2.04.2007, 14:11:22 ) *
4. a wiec znow dolaczasz login php - gdzie sprawdzasz posty z baza i dopiero ustawiasz autoryzacje=true


poprawione baza sprawdzana teraz na poczatku i wszytko ok smile.gif

to teraz maly OFFTOPIC: czy podoba wam sie mój styl pisania? co powinienem zmienić?
Go to the top of the page
+Quote Post
strife
post 5.04.2007, 10:57:54
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(Karmazyn.Katija @ 5.04.2007, 11:27:40 ) *
poprawione baza sprawdzana teraz na poczatku i wszytko ok smile.gif

to teraz maly OFFTOPIC: czy podoba wam sie mój styl pisania? co powinienem zmienić?


Nie, masz za mało wcięć i klamer przez co kod staje się nieczytelny. Zobacz:

» PHPedia :: Styl kodowania
» PHP.PL :: Styl kodowania PEAR
» PHP.PL :: Standardy kodowania

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:47