Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] sesja + logowanie
Forum PHP.pl > Forum > Przedszkole
gebp
Potrzebuje wskazówki pomocy. Mam plik index.html. Jest to prosty formularz (login i hasło) który przesyła postem dane do pliku index2.php. No i mam problem po wpisaniu loginu i hasła wywala mnie że nie poprawny login lub hasło (tak jak bym podał je źle). Login i hasło na pewno są poprawne. Do tabeli wprowadzilem je recznie. Pole 'pass" jest polem tekstowym tak jak i 'nazwa'.

  1. <?php
  2. $_SESSION['user'] = $_POST['login'];
  3. $_SESSION['pass'] = $_POST['pass'];
  4. $_SESSION['authuser'] = 0;
  5. $l=$_POST['login']; //przypisanie do porównań
  6. $p=$_POST['pass']; //przypisanie do porównań
  7.  
  8. mysql_connect("localhost","root","");
  9. //wybieram z tabeli sklepy do porównania
  10. $s1 = "SELECT nazwa, pass FROM sklepy WHERE (nazwa like '$l')AND (pass like '$p')";
  11. $w= mysql_query($s1);
  12. $pnazwa= $w1['nazwa']; // przypisuje 'nazwe' zmiennej
  13. $ppass=$w1['pass']; // przypisuje 'pass' zmiennej
  14.  
  15. // porównuje; jezeli zgadza się 'authuser'=1 wyswietla link; jeżeli nie - link do logowania
  16. if (($SESSION['user'] ===$pnazwa) and ($_SESSION['pass'] === $ppass))
  17. { $_SESSION['authuser']=1;
  18. echo ("Zalogowany:".$l1);
  19. }
  20.  else {
  21.  echo ('
  22.  <TABLE>
  23.  <TR><TD>Niepoprawny login i hasło</TD></TR>
  24.  <TR><TD><a href="index.html">Strona główna</a></TD></TR>
  25.  </TABLE>)');
  26.  exit();}
  27.  
  28. ?>
  29. <HTML>
  30. <a href="dsklepy.html">Dodanie Sklepów.</a>
  31. </HTML>


Jakieś wskazówki a może moje myślenie i to co powyżej jest błedne albo jakieś błedy popełniłem proszę o pomoc.
revyag
chyba nie tak:
  1. <?php
  2. $p=$_POST['login'];
  3. ?>


tylko tak:
  1. <?php
  2. $p=$_POST['pass'];
  3. ?>


smile.gif
gebp
Raczej z tym sie nie zgodze
Idex.html
  1. <FORM ACTION="index2.php" method="post">
  2. <TR>
  3. <TD> Login: </TD>
  4. <TD><INPUT type="TEXT" name=login  ></TD>
  5. </TR>
  6. <TR>
  7. <TD> Hasło: </TD>
  8. <TD><INPUT type="PASSWORD" name=pass ></TD>
  9. </TR>
  10. <TR>
  11. <TD></TD>
  12. <TD><INPUT type="SUBMIT"  VALUE="zapisz"></TD>
  13. </TR>
  14. </FORM>
  15. </BODY>



A przepraszam racja już poprawiam.
Mój błąd. Tak to jest jak sie pisze po nocach. Sprawdze w domu bo niestety tam wszystko mam.
A tak poaz tym to wszystko OK questionmark.gif
arioner
Sprawdz ta literowke, zamiast

  1. <?php
  2. if (($SESSION['user']
  3. ?>


zrob

  1. <?php
  2. if (($_SESSION['user']
  3. ?>


Ja u siebie odpalilem ten kod i dziala.
gebp
Racja należy mi sie nagana.
Kurde takie glupoty a ja pół paczki wczoraj wypaliłem bo nie chciało działać. Kurde.



Edit:

Mam jeszcze jedno pytanko.

Zmienna $_SESSION[] jest zmienną superglobalną tzn. że dopuki nie zakończy sie sesji przechowuje ona dane (login, pasword ect.).
Rozumując dalej na kolejnych stronach aby zidentyfikować czy np. dany user ma dostęp do tej strony wystarczy:
  1. <?php
  2.  
  3.  
  4. If (($_SESSION['user'] === $login) AND ($_SESSION['pass'] === $password))
  5.  {....}
  6. else {echo ("Zły login lub hasło");
  7. exit();
  8. }
  9.  
  10. ?>


Czy dobrze myslę questionmark.gif?
TomASS
Primo:
Brakuje Ci średnika na końcu session_start();

Secundo: Tak wystarczy, że tak zrobisz, ale ja raczej bym zrobił:
  1. <?php
  2. if(isset($_SESSION['flaga_czy_zalogowany'])){
  3.  echo 'Zalogowany';
  4. }
  5. else{
  6.  echo 'Niezalogwany';
  7. }
  8. ?>
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.