[PHP] Iblogscript, jullie mening graag

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

  • Isengrim
  • Registratie: Februari 2004
  • Laatst online: 09:48
Hallo, voor mijn stage project ben ik een inlog script aan het schrijven, en ik wou graag van jullie horen of het goed of slecht is en wat er allemaal verbeter kan worden.

login.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<? 
ob_start(); 
//error_reporting(E_ALL); 
session_start(); 
if($_GET['do'] == 'login') 
{ 
   if($_SERVER['REQUEST_METHOD'] == 'POST'); 
   { 

                   if($_POST['username']== '') 
            { 
            echo'Vul een username in'; 
        exit; 
            } 

            if($_POST['password']== '') 
            { 
            echo'Vul een een wachtwoord in'; 
        exit; 
            } 



                mysql_connect('localhost', '', ''); 
                mysql_select_db('project'); 

                $username = $_POST['username']; 
                $password = $_POST['password']; 

                $inlog = "SELECT*FROM members WHERE username = '".$username."' AND password = '".$password."'"; 
                $check = mysql_query($inlog) or die(mysql_error()); 
                $count = mysql_num_rows($check); 
                $gegevens = mysql_fetch_assoc($check); 

                      $userid = $gegevens['id']; 
                      $naam   = $gegevens['naam']; 
                      $ip     = $_SERVER['REMOTE_ADDR']; 



              if($count == 1) 
                   { 
                $hash = md5(rand(0,99999). $gegevens->id. $_SERVER['REMOTE_ADDR']); 

                if(isset($_POST['autologin'])) 
                    { 

                         $sql = 'SELECT * FROM `loggedin` WHERE userid ='.$userid.''; 
                         $kijkna = mysql_query($sql); 
                         $aantal = mysql_num_rows($kijkna) ; 

                       //niet eerder ingelogd? dan ff toevoegen aan de databse 

                                             if($aantal != 1) 
                                             { 
                                                 $input = "INSERT INTO loggedin (id, userid, Naam, tijd, hash, ip) VALUES ('', '$userid','$naam',NOW(),'$hash','$ip')"; 
                                                 $voerin = mysql_query($input) or die("Er is is fout gegaan tijdens registreren van de sessie"); 

                                                 setcookie('test_hash',$hash,time()+300); 
                                                 setcookie('test_user_id',$userid,time()+300); 

                                                 header('Location: test_cookie.php'); 
                                             } 

                                     // wel eeder in gelogd maar cookie was verlopen dus ff updaten 
                                             else 
                                             { 

                                            $login = "UPDATE loggedin SET hash = '$hash', ip = '$ip', tijd= NOW() WHERE userid = ".$userid."" ; //(id, userid, Naam, tijd, hash, ip) VALUES ('', '$userid','$naam','time()','$hash','$ip')"; 
                                            $update = mysql_query($login) or die (mysql_error ()); 

                                            setcookie('test_hash',$hash,time()+60); 
                                            setcookie('test_user_id',$userid,time()+60); 

                                             header('Location: index.php'); 
                                            } 

                            } 



                                    else 
                                    { 
                                       $_SESSION['user_id'] = $userid; 
                                       $_SESSION['hash'] = $hash; 
                                       header('Location: index.php'); 
                                    } 

                } 


        else 
                 { 
                  echo" Je hebt een verkeerde username of password ingevuld"; 
                  } 


        ob_end_flush(); 
   } 


} 
else 
{ 
echo"<form  action='".$_SERVER['PHP_SELF']."?do=login' method='POST'>"; 
  ?> 
   <br> 
   login: 
   <br> 
   <input name="username" type="text" > 
   <br> 
   wachtwoord: 
   <br> 
   <input name="password" type="password" > 
   <br> 
   <input type='submit' value='login' method='POST' name='inlog'> 
   <br> 
   <br> 
   Automatisch ingelogd blijven? &nbsp; 
   <input type='checkbox' name='autologin'> 
   </form> 
<? 
} 

?> 

*************************************

controle.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php 
session_start(); 

mysql_connect('localhost','',''); 
mysql_select_db('project'); 

$query = "SELECT*FROM loggedin WHERE userid = '".$_COOKIE['test_user_id']."' AND ip = '".$_SERVER['REMOTE_ADDR']."'"; 
$result = mysql_query($query) or die (mysql_error()); 
$check = mysql_num_rows($result); 

if (($check == 1 && isset($_COOKIE['test_hash']) && isset($_COOKIE['test_user_id'])) || 
    (isset($_SESSION['hash']) && isset($_SESSION['user_id'])) ) 
    { 

  echo"You are in :D"; 
}



?>  

[ Voor 13% gewijzigd door Isengrim op 19-05-2004 19:08 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:57

gorgi_19

Kruimeltjes zijn weer op :9

Hoi,

Programming & Webscripting gaat over het zelf programmeren, niet over het nakijken van je code. :) Als je concrete vragen hebt, kan je hier een topic over openen; code review doen we niet aan. :)

Of het goed werkt kan je zelf over oordelen door een goede testprocedure te gebruiken; kijk verder in de PW-FAQ het gedeelte over netjes coden door (geschreven door curry684) en kijk in hoeverre je het hebt toegepast.

Lees trouwens ook eens wat over beveiliging; Cross Site Scripting Attacks en SQL Injection Attacks. Daar ben je redelijk gevoelig voor.

[ Voor 48% gewijzigd door gorgi_19 op 19-05-2004 19:13 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Dit topic is gesloten.