Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL] Prosty panel logowania
sleedz
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 15.01.2008

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


Witam.
Stworzyłem prosty panel logowania. Może komuś się przyda. Piszcie co w nim można zmienić...

index.php
  1. <?php
  2.  
  3.    session_start();
  4.    
  5.    include "config.php";
  6.    
  7.    if (isset($_SESSION['user_id'])) {
  8.        echo "zalogowałeś się jako <b>".$user_name."</b><br />";
  9.        echo "E-mail: ".$user_email."<br>
  10.                Data dołączenia: ".$user_date."<br>";
  11.        echo "<a href=\"logout.php\">[LOGOUT]</a>";
  12.    }
  13.    else {
  14.        
  15.        echo "<form method=\"GET\" action=\"login.php\">
  16.                <input type=\"text\" name=\"login\"><br>
  17.                <input type=\"password\" name=\"pass\"><br>
  18.                <input type=\"submit\" name=\"log\" value=\"Login\">
  19.              </form>";
  20.            
  21.    }
  22.            
  23. ?>


config.php
  1. <?php
  2.  
  3.    session_start();
  4.  
  5.    $db_host = "localhost";
  6.    $db_user = "root";
  7.    $db_pass = "root";
  8.    $db_base = "baza";
  9.    
  10.    $db = mysql_connect($db_host, $db_user, $db_pass);
  11.    mysql_select_db($db_base, $db);
  12.    
  13.    if (isset($_SESSION['user_id'])) {
  14.        $user_id     = $_SESSION['user_id'];
  15.        $user_name   = $_SESSION['user_name'];
  16.        $user_email  = $_SESSION['user_email'];
  17.        $user_rights = $_SESSION['user_rights'];
  18.        $user_date   = $_SESSION['user_date'];
  19.    }
  20.  
  21. ?>


login.php
  1. <?php
  2.  
  3.    session_start();
  4.    
  5.    include "config.php";
  6.  
  7.    $user_login = $_GET['login'];
  8.    $user_pass  = $_GET['pass'];
  9.    
  10.    $sql = "SELECT * FROM user WHERE user_name = '".$user_login."' AND user_pass = '".$user_pass."';";
  11.    $result = mysql_query($sql)
  12.        or die("Podałeś błędny login lub hasło");
  13.        
  14.    $rows = mysql_num_rows($result);
  15.    
  16.    if ($rows == 1) {
  17.        
  18.        $r = mysql_fetch_assoc($result);
  19.        session_register("user_id");
  20.        session_register("user_name");
  21.        session_register("user_email");
  22.        session_register("user_rights");
  23.        session_register("user_date");
  24.        
  25.        $_SESSION['user_id']     = $r['user_id'];
  26.        $_SESSION['user_name']   = $r['user_name'];
  27.        $_SESSION['user_email']  = $r['user_email'];
  28.        $_SESSION['user_rights'] = $r['user_rights'];
  29.        $_SESSION['user_date']   = $r['user_date'];
  30.        
  31.        header("Location: index.php");
  32.    }
  33.    else {
  34.        echo "Podałeś błędny login lub hasło... <br> <a href=\"index.php\">Powrót</a>";
  35.    }
  36.  
  37. ?>


logout.php
  1. <?php
  2.  
  3.    session_start();
  4.    
  5.    header("Location: index.php");
  6.  
  7. ?>


No i oczywiście trzeba stworzyć odpowiednią tabelę w bazie:
  1. CREATE TABLE `user` (
  2. `user_id` int(30) NOT NULL AUTO_INCREMENT,
  3. `user_name` varchar(50) collate latin2_bin DEFAULT NULL,
  4. `user_pass` varchar(50) collate latin2_bin DEFAULT NULL,
  5. `user_email` varchar(50) collate latin2_bin DEFAULT NULL,
  6. `user_date` date DEFAULT NULL,
  7. PRIMARY KEY (`user_id`)
  8. );
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
echo "<form method=\"GET\" action=\"login.php\">

Via GET? :| A jak ktoś Ci się gapi przez ramię na pasek adresu przeglądarki, to co wtedy?

Cytat
  1. <?php
  2. $sql = "SELECT * FROM user WHERE user_name = '".$user_login."' AND user_pass = '".
  3. ?>

Podatne na SQL Injection.

Taka dygresja:
  1. <?php
  2. if (isset($_SESSION['user_id'])) {
  3.       $user_id     = $_SESSION['user_id'];
  4.       $user_name   = $_SESSION['user_name'];
  5.       $user_email  = $_SESSION['user_email'];
  6.       $user_rights = $_SESSION['user_rights'];
  7.       $user_date   = $_SESSION['user_date'];
  8.   }
  9. ?>


Po co powielać parę razy to samo?
Go to the top of the page
+Quote Post
Norbit_24
post
Post #3





Grupa: Zarejestrowani
Postów: 163
Pomógł: 2
Dołączył: 7.03.2009

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


Cytat(erix @ 3.12.2008, 23:02:12 ) *
  1. <?php
  2. $sql = "SELECT * FROM user WHERE user_name = '".$user_login."' AND user_pass = '".
  3. ?>


Podatne na SQL Injection.


Co zrobic aby nie było poddatne na sql injection...?
Go to the top of the page
+Quote Post

Posty w temacie
- sleedz   [PHP/MySQL] Prosty panel logowania   3.12.2008, 21:48:03
- - erix   Cytatecho "<form method=\"GET...   3.12.2008, 22:02:12
|- - Norbit_24   Cytat(erix @ 3.12.2008, 23:02:12 ) [P...   18.06.2010, 11:26:12
|- - darko   Cytat(Norbit_24 @ 18.06.2010, 12:26:1...   18.06.2010, 11:40:37
- - sleedz   Oj sorki. Zapomniałem zmienić z GET na POST... A ...   3.12.2008, 22:05:22
- - erix   Tak też może być przejrzyście. Albo chociaż rób re...   3.12.2008, 22:13:33
- - pyro   takie dwie dygresje: 1. w polu login mozna podac n...   3.12.2008, 22:58:11
- - harleyzbro   witajcie, ten kod jest jak dla mnie czymś idealnym...   9.01.2009, 18:05:04
- - erix   Użyj np. phpMyAdmina i dodaj sobie odpowiedni reko...   9.01.2009, 21:23:19
- - harleyzbro   Powiem tak dodaje rekordy: user_name: Funkcja USER...   10.01.2009, 12:35:01
- - erix   Jaka funkcja? :| Jakiego zapytania używasz w celu...   10.01.2009, 12:39:54
- - harleyzbro   Ja chce żeby było tak że tylko ja jako admin moge ...   10.01.2009, 12:55:03
- - KomputeromaniaK   A rejestracja?   10.01.2009, 14:01:38
- - harleyzbro   hmm...racja.Jestem początkujący...macie może jakiś...   10.01.2009, 15:24:17
- - debian   Cytat(erix @ 3.12.2008, 22:02:12 ) Vi...   24.01.2009, 15:11:32
- - vaverix   Mam pytanie... Znam sie troche na jezyku HTML ale...   14.02.2009, 22:43:27
- - Otto   Temat trochę stary ale skoro ja go znalazłem szuka...   17.04.2010, 13:28:05
- - Potar   Dorobiłem sobie kilka tabeli podczas rejestracji t...   6.05.2010, 18:23:02
- - haahh   Wrzuć chociaż mysql_real_escape_string() do tych d...   8.06.2010, 17:48:52
- - krzysztof_kf   mysql_real_escape_string() między innymi dodajesz ...   18.06.2010, 11:33:44
- - erix   A najlepiej, to przeczytać przyklejony wątek na te...   18.06.2010, 16:01:23
- - jacekpom   u mnie wyskakuje błąd CytatWarning: session_star...   8.10.2012, 15:25:45


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

 



RSS Aktualny czas: 5.04.2026 - 16:17