Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Błąd logowania
Forum PHP.pl > Forum > Przedszkole
Karmazyn.Katija
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...
conip
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
uli
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
Karmazyn.Katija
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ć?
strife
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.