Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie
Forum PHP.pl > Forum > Przedszkole
KasztanPL
Witam mam taki mały problem z moim scriptem niby nie pokazuje zadnego błedu ale nie moge sie zalogować lub wylogowac wogole nic sie nie dzieje :/ register_globals mam "On"

Link do strony www.kasztan.cal.pl/nsquad

Testowe konto:
login: Fido
pass: 1234


  1. <?php
  2.  
  3. include("config.inc");  
  4.  
  5.  
  6.  
  7.  
  8. if($action=="login" && empty($_SESSION['login']) && empty($_SESSION['pass'])){
  9. if (!$_POST['login']) {
  10. echo "Wypełnij pole z loginem! (<a href=index.php>Odśwież</a>)";
  11. } elseif (!$_POST['pass']) {
  12. echo "Wypełnij pole z hasłem! (<a href=index.php>Odśwież</a>)";
  13. } else {
  14. $_POST[login]=addslashes($_POST[login]);
  15. $_POST[pass]=addslashes($_POST[pass]);
  16. $logres = mysql_num_rows(mysql_query("select * from user where login='$_POST[login]' and pass='$_POST[pass]'"));
  17. if ($logres <= 0) {
  18. echo "Logowanie nieudane. Sprawdź pisownie loginu oraz hasła. (<a href=index.php>Odśwież</a>)<br>";
  19. } else {
  20. $ban = mysql_fetch_array(mysql_query("select * from user order by login desc limit 1"));
  21. if ($ban[ban]==1) {
  22. print ("Twoje konto zostało zoblokowane! Cos narozrabiales ;)");
  23. print"<br><b>Powód:</b>";
  24. print ("$ban[powod]");
  25. print "<br><a href=index.php>Powrót</a>";
  26. }else{
  27. $_SESSION['login'] = $_POST['login'];
  28. $_SESSION['pass'] = $_POST['pass']; 
  29.  
  30. echo"Zalogowany (<a href=index.php>Odśwież</a>)";
  31.  
  32. }
  33. }
  34. }
  35. }
  36. elseif($_SESSION['login'] && $_SESSION['pass']){
  37. ?>
  38. Witaj <? echo"$_SESSION[login]"; ?> 
  39.  
  40.  
  41.  
  42. <form action="index.php?action=login" method="post"><input type="submit" value="Wyloguj">
  43.  
  44. <?
  45. }elseif($_GET['action']=="login" && !empty($_SESSION['login']) && !empty($_SESSION['pass'])){
  46.  
  47. unset($_SESSION['login']);  
  48. unset($_SESSION['pass']);  
  49.  
  50.  
  51. }else{
  52.  
  53.  
  54. ?>
  55.  
  56.  
  57. <form action="index.php?action=login" method="POST">
  58. login <input type="text" name="login" /> <br/>
  59. pass <input type="password" name="pass" /> 
  60. <input type="submit" value="zaloguj" /></form>
  61.  
  62. <?php
  63. }
  64.  
  65. ?>



Z góry dzieki za pomoc :-) i Wesołych Świąt
hondek
- napewno tablic uzywamy w ten sposob : $tablica['index'], a nie $tablica[index], czyli $_POST[login] jest niepoprawnie.
- masz na poczatku skryptu session_start(); ?
- nie zamykasz znacznika <form> i <br>
bardzo pomieszane masz w tym kodzie winksmiley.jpg
KasztanPL
session_start(); mam w innym pliku
<from> zamknąłem
tablice poprawilem
troche jest a nawet bardzo namieszane przyznam


niestety problem dalej jest z wylogowaniem teraz
hondek
a czy przepisujesz $_POST['action'] do $action? : $action = $_POST['action']? przed sprawdzeniem go w warunku?

37 linijka zmien na:
  1. <?php
  2. elseif($_SESSION['login'] && $_SESSION['pass'] && $action != 'wyloguj' )
  3. ?>
KasztanPL
zmieniłem niestety to nie po skutkowało
marcio
Jak narazie kodu nie moge przeanalizowac ale zamiast uzywac sesje uzyj cookie bo przy 50 user'ach padnie server tongue.gif
KasztanPL
Heh mi właśnie zależy na sesjach biggrin.gif
marcio
a Jaka to roznica??TEz chcialem cms'a na sesjach tylko potem musialem wszystko na nowo pisac tongue.gif

P.S widze ze logowanie dziala a wylogowywanie niee??
l0ud
yy? A cóż takiego złego jest w stosowaniu sesji?
KasztanPL
Tak wylogowanie nie działą
marcio
@loud zlego jest to ze moze zawalic server

@autor linia 47 zamiast
  1. <?php
  2. }elseif($action="wyloguj" && !empty($_SESSION['login']) && !empty($_SESSION['pass'])){
  3. ?>

Daj
  1. <?php
  2. }elseif($_GET['action']=="wyloguj" && !empty($_SESSION['login']) && !empty($_SESSION['pass'])){
  3. ?>

Nie masz przypisywac a sprawdzac reszty nie spradzalem
l0ud
Cytat
@loud zlego jest to ze moze zawalic server


Owszem, ale przy kilku tysiącach userów.
KasztanPL
Juz raz tak miałem i też nie działa sad.gif
marcio
Taka mala idea jak to powinno wygladac pisalem w 5min wiec beda error'y etc nawet logiczne potem to tylko dostosuj do twoich potrzeb etc tongue.gif
  1. <?php
  2.  
  3. include("config.inc");  
  4.  
  5. echo('<form action="post" action="'.$_SERVER['PHP_SELF'].'">
  6. <input type="text" name="login" value="login"><Br>
  7. <input type="password" name="haslo" value="haslo"><Br>
  8. <input type="submit" name="loguj" value="loguj"></form>');
  9.  
  10. if($db = mysql_connect('host', 'login', 'haslo')) {
  11.  
  12. if(!empty($_POST['login']) && !empty($_POST['haslo']) && isset($_POST['loguj'])) {
  13.  
  14.  
  15. $login = addslashes($_POST['login']);
  16. $haslo = addslashes($_POST['haslo']);
  17. $logres = ('select * from user where login="'.$login.'" and pass="'.$haslo.'"');
  18. $wynik = mysql_query($lorges, $db) or die(mysql_error());
  19. $tab = mysql_fetch_assoc($wynik);
  20. $zap = ('select * from user');
  21. $wynik1 = mysql_query($zap, $db);
  22. $dane = mysql_fetch_assoc($wynik1);
  23.  
  24. if($dane['ban'] != $login) {
  25.  
  26.  if($tab['login'] == $login && $tab['pass'] == $haslo) {
  27.  
  28. $_SESSION['nick'] = $login;
  29. $_SESSION['password'] = $haslo;
  30. echo('Zalogowano (<a href=index.php>Odswiez</a>)');
  31. }
  32.  
  33. else { 
  34. echo('Haslo i/lub login jest bledny');
  35. }
  36. }
  37. else {
  38. echo('Zostales zbanowany');
  39. }
  40. }
  41. else {
  42. echo('prosze wypelnic formularz');
  43. }
  44. }
  45. else {
  46. echo('Nie mozna polaczyc z baza');
  47. }
  48.  
  49.  
  50. //teraz wylogowywanie
  51.  
  52. //na stronie sprawdzasz czy ma sesje
  53.  
  54. if($_SESSION['nick'] && $_SESSION['password']) {
  55.  
  56. echo('<form action="post" action="'.$_SERVER['PHP_SELF'].'">
  57. <input type="submit" name="wyloguj" value="wyloguj"></form>'); // jak nie mozesz zrobic link do osobnego pliku ja tak zawsze robie nie wiem czemu
     tak napisalem
  58.  
  59. if(isset($_POST['wyloguj'])) {
  60.  
  61. unset($_SESSION['nick']);
  62. unset($_SESSION['password']);
  63. echo('Wylogowano (<a href=index.php>strona glowna</a>)');
  64.  
  65. }
  66. }
  67. ?>
KasztanPL
Dzięki wielkie napewno skorzystam =)
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.