Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php mysql]Problem z systemem logowania
Forum PHP.pl > Forum > PHP
ghost2k8
Mam problem z tym formularzem logowania,
nie do konca mi to działa, ani nie loguje mnie , ani nie zwraca informacji o tym ze podałem zły login lub haslo, nawet gdy zostawiam puste pola.
mozecie zerknąć na to i jakoś mi pomóc.

Kod
   <?
   $conn = mysql_connect("localhost", "root", "") or die(mysql_error());
   $db = mysql_select_db("db_vote") or die(mysql_error());
  
   if (isset($_POST['submit'])) {
       $query = "SELECT email, pass FROM user_info" . "WHERE email ='" . $_POST['email'] ."' " .
       "AND pass ='" . $_POST['pass'] ."' ";
       $result = mysql_query($query) or die (mysql_error());
  
       if  (mysql_num_rows($result) == 1) {
           $_SESSION['user_logged'] = $_POST['email'];
           $_SESSION['user_password'] = $_POST['pass'];
           header("Refresh: 5; URL=" . $_POST['redirect'] . "");
  
       echo "zostakesz przekierowan na oryg strone
   ";
      
       } else {
           ?>
           <html>
           <head>
           </head>
           <body>
           <p>
            Niepoprawna nazwa użytkownika lub hasło
  
            kliknij tu aby sie zarejstrowac <a href="register.php"> TUTAJ WlaNIE</a>
  
            <form action="user_login.php" metod="post">
            <input type="hidden" name="redirect" value="<?php echo $_POST['redirect']; ?>">
            NAZWA : <input type="text" name="email">
  
            haslo: <input type="password" name="pass">
  
            <input type="submit" name="submit" value="LOGIN">
   </form>
   </p>
   </body>
   </html>
   <?php
       }
   } else {
       if (isset($_GET['redirect'])) {
           $redirect = $_GET['redirect'];
       } else  {
           $redirect = "index.php";
       }
       ?>
   <html>
           <head>
           </head>
           <body>
           <p>
           Zaloguj sie podajac login i haslo
  
            jak nie masz loginu kliknij<a href="register.php"> TUTAJ WlaNIE</a>
  
            <form action="user_login.php" metod="post">
            <input type="hidden" name="redirect" value="<?php echo $redirect; ?>">
            NAZWA : <input type="text" name="email">
  
            haslo: <input type="password" name="pass">
  
            <input type="submit" name="submit" value="LOGIN">
   </form>
   </p>
   </body>
   </html>
   <?php
       }
       ?>
ghost2k8
sesje rozpoczynam, musiałem nie podac całego kodu...

uzywam na poczatku
session_start();

, podejrzewam ze moze to byc jakiś problem z pobierniem danych bazy danych, bo wczesniej meczyłem sie z utworzeniem bazy i tabel,
bo korzystałem z moich starych skryptów php, które uzwałem z 2-3 lat temu.

no ale teraz juz tworzenie bazy i tabel, dziala ok, tylko moze jest własnie problem z wyciąganiem danych z bazy.
Strarus
Troszkę dziwnie to zrobiłeś ale ok. Ja za bardzo w ogóle nie rozumiem jak to ma działać... Wszystko dobrze podałeś? Nie wyświetlają Ci się komunikaty o błędach bo nie są zdefiniowane... Ja bym napisał skrypt od nowa haha.gif PS. wygląda na podatne na wbicia haha.gif

i daj to w php bo nie da sie czytać...


Tutaj masz mój kod, w miarę bezpieczny i prosty smile.gif
  1. <?php
  2. include ('db_connect.inc.php');
  3. if(!isset($_SESSION['zalogowany'])) {
  4. if(isset($_POST['login']) && !empty ($_POST['login']) && isset($_POST['password']) && !empty ($_POST['password'])) {
  5. $login_post = addslashes(strip_tags($_POST['login']));
  6. $pass_post = addslashes(strip_tags($_POST['password']));
  7. $dane = mysql_query("select * from `users` where `login` = '".$login_post."' and `password` = '".$pass_post."'");
  8. $row = mysql_fetch_array($dane);
  9. $v_pass = $row['password'];
  10. $v_login = $row['login'];
  11. if($v_login == $login_post AND  $v_pass == $pass_post) {
  12. $_SESSION["zalogowany"] = true;
  13. $_SESSION['login'] = $v_login;
  14.    echo 'Zalogowany jako ~'.($_SESSION['login']).'<br/> <a href="main.php">Strona główna</a>';
  15. } else {
  16.    echo 'Złe hasło!';
  17.  }
  18. } else {
  19.   echo '<form action="login.php" method="post">
  20. <table border="0">
  21. <tr>
  22.  <td>Login:</td>
  23.  <td><input type="text" name="login" maxlength="12"/></td>
  24. </tr>
  25. <tr>
  26.  <td>Hasło:</td>
  27.  <td><input type="password" name="password" maxlength="12"/></td>
  28. </tr>
  29. </table>
  30. <input type="submit" value="Zaloguj!" />
  31. </form>';
  32. }
  33. } else {
  34.  echo 'Już jesteś zalogowany.<a href="main.php">Strona główna</a>';
  35. }
  36. ?>
Do tego tylko robisz plik db_connect.inc.php, który się łączy z bazą smile.gif


i pamiętaj o logout.php z session_destroy smile.gif
ghost2k8
dzieki za twoj przyklad, przetestuje go sobie zaraz,

a moj kod jest dokladnie z ksiazki " PHP5, APACHE i MySql od podstaw" zakupiona 2 tygodnie temu, wiec ostatnie wydanie.
ale jak narazie coś mało rzeczy z niej mi chce działać.
Strarus
I jest czysto przepisany?? Bo coś dziwny jest haha.gif W moim kodzie masz tylko nick i hasło ale nie trzeba wiele wiedzieć aby dorobić maila, id, czy ostatni IP smile.gif
ghost2k8
był czysto przepisany,
skanowałem również książke potem OCR,
a i tak sprawdzałęm kazdy przecinek, srednik, kropke itd.
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.