loginscript user_id in header

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Domi oconnor

domi oconnor

06/01/2016 19:47:48
Quote Anchor link
:( bijna alles wat ik over php weet heb ik o.a. uit dit boek :( dus ik hoop dat dat allemaal niet voor niets is geweest !

ik heb het login script veranderd ik heb de isset functie alleen gebruikt voor de user_id een username is niet nodig mee te nemen in een session werd eerder verteld.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
require_once 'scripts/connect.php';
require_once 'scripts/app_config.php';

error_reporting(E_ALL);
ini_set('display_errors',1);

if (!isset($_SESSION['user_id']))
{

    // user is not logged in.
    if (isset($_POST['cmdlogin']))
    {

        // retrieve the username and password sent from login form
        // First we remove all HTML-tags and PHP-tags, then we create a md5-hash
        // This step will make sure the script is not vurnable to sql injections.

        
        $u = strip_tags($_POST['username']);
        $p = strip_tags($_POST['password']);
        //Now let us look for the user in the database.
        $query = sprintf("SELECT user_id FROM users WHERE username = '$u' AND password = '$p' LIMIT 1;",
            mysql_real_escape_string($u), mysql_real_escape_string($p));
        $result = mysql_query($query);
        // If the database returns a 0 as result we know the login information is incorrect.
        // If the database returns a 1 as result we know  the login was correct and we proceed.
        // If the database returns a result > 1 there are multple users
        // with the same username and password, so the login will fail.

        if (mysql_num_rows($result) != 1)
        {

            // invalid login information
            echo "Wrong username or password!";
            //show the loginform again.
            include "index.php";
        }
else {
            // Login was successfull
            $row = mysql_fetch_array($result);
            // Save the user ID for use later
            $_SESSION['user_id'] = $row['user_id'];
              // Save the username for use later
            $_SESSION['username'] = $u;
              // Now we show the user
            header("Location:profile.php");
        }
        
    }
else {
         // User is not logged in and has not pressed the login button
         // so we show him the loginform

        include "index.php";
    }
 
}
else {
     // The user is already loggedin, so we show the user
    include "profile.php";
}

?>


de profile.php pagina waar je vervolgens op terecht komt ziet er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
require_once 'scripts/connect.php';
require_once 'scripts/app_config.php';

error_reporting(E_ALL);
ini_set('display_errors',1);

session_start();
if (!isset($_SESSION['user_id']))
 {

 die ("Access Denied");
 }

?>

<html>
<head>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>    
<div id="header" class="center">
<h1><img src="images/SW_banner.jpg" alt="StarWars"></h1>
</div>
<br>
<div id="container">    
<div id="left">
<div id="users">
<h5 align="center">Geregistreerde Spelers:
<br><br><br>
<?php include 'show_users.php';?>
</h5>
</div>
</div>
<div id="middle">
<div id="menu">
<?php include 'menu.php';?>
</div>
<h4 align="center">Profiel pagina van: <?php echo $username; ?></h4>
<table align="center">    
<tr>
<td>Naam: </td>
<td><?php echo $first_name . " " . $last_name; ?></td>
</tr>
<tr>
<td>Gebruikersnaam: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td><?php echo $username; ?></td>
</tr>
<tr>
<td>Email adres: </td>
<td><?php echo $email; ?></td>
</tr>
<tr>
<td>Profiel: </td>
<td><?php echo $bio; ?></td>
</tr>
<tr>
<td>Faction: </td>
<td><?php echo $faction; ?></td>
</tr>
<tr>
<td>Bank: </td>
<td>$&nbsp;<?php echo $bank; ?></td>
</tr>
<tr>
<td>Cash: </td>
<td>$&nbsp;<?php echo $cash; ?></td>
</tr>
</table>
<h5 align="center">
Profiel Foto:
</h5>
<h5 align="center">
<img height="250" width="250" src="<?php echo $user_image; ?>" >
</h5>
<h5 align="center">
<a href="        <?php echo $facebook_url; ?>">Jou facebook pagina!            </a>
<br />
<a href="        <?php echo $twitter_url; ?>">Check je Twitter feed!    </a>
<br />
</h5>        
</div>
<div id="right">
<div id="login">
<form action="scripts/login.php" method="POST">
<h5 align="center">
Gebruikersnaam: <br><input type="text" name="username"><br><br>
Wachtwoord: <br><input type="password" name="password"><br><br>
<input type="submit" value="Log in" />
<input type="reset" value="Reset" />
</h5>
</form>    
</div>
</div>
</div>
<br>
<div id="footer" class="center">
<h1><img src="images/SW_banner.jpg" alt="StarWars"></h1>    
</div>
</body>
</html>


en ik krijg nu de acces denied melding.
 
PHP hulp

PHP hulp

27/12/2024 02:19:12
 
- Ariën  -
Beheerder

- Ariën -

06/01/2016 19:51:57
Quote Anchor link
Dan bestaat je sessie niet en ben je niet inlogd.
Verder horen scripts niet te stoppen met die(), je scripts stoppen direct en dat is onnodig.
 
Ben van Velzen

Ben van Velzen

06/01/2016 20:18:25
Quote Anchor link
Laten we hier eens beginnen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$query
= sprintf("SELECT user_id FROM users WHERE username = '$u' AND password = '$p' LIMIT 1;",
            mysql_real_escape_string($u), mysql_real_escape_string($p));
?>


Je sprintf is hierdoor loos, zie http://www.php.net/sprintf voor hoe het wel moet.
Ten tweede: waaron include je profile.php etc terwijl je waarschijnlijk een redirect bedoelt?
En natuurlijk wat Ariën zegt.
 
Tortuga web

tortuga web

06/01/2016 21:41:33
Quote Anchor link
De profile pagina is de enige waar ik zie dat je de sessie start.
 
Thomas van den Heuvel

Thomas van den Heuvel

06/01/2016 21:58:25
Quote Anchor link
Ik zou ook de verschillende acties (het weergeven van een formulier, het verwerken van een formulier etc.) ook echt opslitsen in aparte acties in plaats van zo'n if-statement-from-hell.

Na een header('Location: ...'); hoort doorgaans ook altijd een exit; te staan.
Gewijzigd op 06/01/2016 21:58:56 door Thomas van den Heuvel
 
Domi oconnor

domi oconnor

07/01/2016 18:20:11
Quote Anchor link
ja het is allemaal nog minimaal i know, en zoals ik al eerder zij ik ben echt nog een brookie met php plus alles wat ik tot nu toe geleerd hebt is blijkbaar een verouderde methode dus daar baal ik ook echt van. Ik ben nog steeds bezig met de sprintf functie maar... ik denk dat ik beter het hele inlog script kan herschrijven zoals eerder al werd genoemd. eerst maar ff goed researche ! en opzoek naar een nieuw php boek waar een simpel cms systeem word uitgelegd uiteraard met de nieuwe methodes.
 
- Ariën  -
Beheerder

- Ariën -

07/01/2016 18:27:11
Quote Anchor link
Ik denk dat er niet zomaar een heel CMS-systeem zal worden uitgelegd. Maar met alle geleerde kennis zou je zelf al een CMS-systeem dan moeten kunnen bouwen.

Boeken zijn vaak verouderd. Je kan ook op www.codeacademy.com een cursus PHP doen. Ik raad wel aan om de basis van websites, het online publiceren (hosten) onder de knie, en HTML + CSS onder de knie te hebben. Ook deze kan je daar op Codeacademy leren.
 
Domi oconnor

domi oconnor

07/01/2016 23:00:34
Quote Anchor link
html en css heb ik zowiezo wel onder de knie, en het hosten etc zit ook wel goed, als ik het hier niet voor elkaar had gekregen heb ik altijd nog bij een officiele hoster wat ruimte over. codeacademy.com ziet er zeker wel goed uit ja, ben er al gelijk mee bezig ;)

Toevoeging op 08/01/2016 15:27:36:

Kijk is aan, het is gelukt ! http://163.158.253.94/cms of nouja het begin is er haha :P je kan nu inloggen waarbij de username meegenomen word in de sessie.... nu de rest nog zoals achternaam profiel foto etc. Ik hou jullie op de hoogte ! bedankt voor alle tips !

Toevoeging op 08/01/2016 16:07:39:

Ben van Velzen op 06/01/2016 19:31:18:
Wat ik erg vind is dat het een boek uit 2013 is, en zo achterhaald is. Zo wordt het gebruik van $_REQUEST zelfs aangeraden zo te zien, en worden joins op de verkeerde manier uitgelegd. Fijn boek, gewoon weg ermee. Verbazingwekkend dat dit een O'Reilly boek is.


Wat is er tegenwordig beter dan ? inplaats van $_REQUEST ?
 
L deB

L deB

08/01/2016 16:30:47
Quote Anchor link
Ik zal wel blind zijn, maar er staat in de comments dat er een md5hash plaatsvindt maar die zie ik nergens.. bij regel 14 en 15 staat dat.


Jou facebook pagina! is trouwens jouw
 
- Ariën  -
Beheerder

- Ariën -

08/01/2016 16:34:43
Quote Anchor link
In plaats van $_REQUEST kan je $_GET of $_POST gebruiken. Net welke je nodig hebt.
 
Domi oconnor

domi oconnor

08/01/2016 16:34:56
Quote Anchor link
Dat is allemaal gefixt in het nieuwe login script :D
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.