Probleem met sessions!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John De Zon

John De Zon

01/07/2014 12:19:02
Quote Anchor link
Beste, ik probeer sessie's aan te maken maar het lukt niet hieronder mijn code's. Ik krijg steeds een error melding je bent niet ingelogd klik hier om in te loggen.

check.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?PHP
session_start();
if($_SESSION['login'] != 'yes') die('Je bent niet ingelogd, <a href="http://www.teamcrafted.tk/browsergame/index.php">klik hier</a> om in te loggen.');
?>


funcs.php
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
99
100
101
102
103
104
105
106
107
<?php
error_reporting('NOTICE');

require 'config/mysql.php';

function
login() {
    session_start();
    $email = $_POST['email'];
    $password = $_POST['password'];
    
    $query = mysql_query("SELECT * FROM `logins` WHERE `email`='$email' AND `password`='$password'");
    
    $errors = array();
    
    if (empty($email)) {
        $errors[] = 'The email textbox cannot be blank/has to be valid.';
    }

    
    if (empty($password)) {
        $errors[] = 'The password textbox cannot be blank.';
    }
    

    if (strlen($password) > 20) {
        $errors[] = 'The password textbox cannot have characters longer than 20.';
    }


    if ($errors==true) {
        foreach ($errors as $error) {
            echo $error.'<br />';
        }
    }
else {
        if (mysql_num_rows($query)==true) {
            echo 'Ingelogd! We sturen u zometeen door naar de game pagina.';
            $_SESSION['login'] = 'yes';
            header('location: game.php');
        }
else {
            echo 'Login mislukt';
        }
    }

}

function
signup() {
    $userName = $_POST['userName'];
    $firstName = $_POST['firstName'];
    $lastName = $_POST['lastName'];
    $email = $_POST['email'];
    $day = $_POST['day'];
    $month = $_POST['month'];
    $year = $_POST['year'];
    $password = $_POST['password'];
    
    $query = mysql_query("INSERT INTO logins VALUES('','$email','$password','','$userName','$firstName','$lastName','$day','$month','$year')") or die(mysql_error());
    
    $errors = array();
    
    if (empty($userName)) {
        $errors[] = 'Je gebruikersnaam moet volledig.';
    }

    
    if (empty($firstName)) {
        $errors[] = 'Je voornaam moet volledig zijn.';
    }

    
    if (empty($lastName)) {
        $errors[] = 'Je achternaam moet volledig zijn.';
    }

    
    if (empty($email)) {
        $errors[] = 'Je email moet volledig zijn.';
    }

    
    if (empty($day)) {
        $errors[] = 'Je moet een dag ingeven.';
    }

    
    if (empty($month)) {
        $errors[] = 'Je moet een maand ingeven.';
    }

    
    if (empty($year)) {
        $errors[] = 'Je moet een jaar ingeven.';
    }

    
    if (empty($password)) {
        $errors[] = 'Je wachtwoord moet volledig zijn.';
    }


    if (strlen($pass) > 20) {
        $errors[] = 'Je wachtwoord kan niet langer dan 20 tekens zijn.';
    }


    if ($errors==true) {
        foreach ($errors as $error) {
            echo $error.'<br />';
        }
    }
else {
        if (mysql_num_rows($query)==true) {
            echo 'Oooooeeeps! Er is iets fout gelopen bij de registratie waardoor je niet bent geregistreerd! Gebeurt dit meermaals neem dan contact op.';
        }
else {
            echo 'Je bent Succesvol gerigistreerd! Je kan nu inloggen.';
        }
    }

}


?>


game.php
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
<?php
//Hierbij kijken we of de user is ingelogd.
include('check.php');
?>


<!DOCTYPE html>
<html>
    <head>
        <title>TeamCrafted: Kies je game!</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="http://www.teamcrafted.tk/browsergame/css/game.css">
    </head>
    <body>
        <?php include_once("header.php"); ?>
    <div class="content">
            <h1>Kies je game:</h1>
            <div>
              <p>Welkom op onze browsergame website!</p>
              <p>Hieronder kan je een browsergame naar keuze uikiezen.</p>
            </div>
    </div>
    </body>
</html>


Ik denk dat deze files voldoende zijn.

Christophe

Edit: Ik ben nog bezig met het invoegen van lege velden in database uit te schakelen.
Gewijzigd op 01/07/2014 12:19:55 door John De Zon
 
PHP hulp

PHP hulp

20/04/2024 08:57:09
 
Ozzie PHP

Ozzie PHP

01/07/2014 14:21:57
Quote Anchor link
Volgens mij heeft Aar je al meerdere malen aangegeven dat je de controle anders moet doen.

Daarnaast zie ik geen controle of er iets gepost is.
 
Christian k

christian k

01/07/2014 15:47:12
Quote Anchor link
allereerst moet je session_start(); in funcs.php zetten

maar hoe moet de functies login() en signup() ooit werken? je voert ze namelijk niet uit
dus dan is het best logies dat je niet kan inloggen
Gewijzigd op 01/07/2014 15:47:59 door christian k
 
John De Zon

John De Zon

01/07/2014 15:48:26
Quote Anchor link
Nee nee ze worden wel uitgevoerd het probleem is dat ik de melding soms krijg als ik al ingelogd ben.

Toevoeging op 01/07/2014 15:50:35:

En dit logout script werkt ook niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if($_SESSION['login'] == 'yes') {  
    #delete the value of $_SESSION['login']
    unset($_SESSION['login']);  
}

else
{

    echo '<p class="error">Je kan niet uitgelogd worden als je ingelogd bent.</p>';
    
}

?>
 
Nick Dijkstra

Nick Dijkstra

01/07/2014 20:18:54
Quote Anchor link
Waar kan je niet uitgelogd worden wanneer je ingelogd bent?
Dat is toch juist de bedoeling van uitloggen?

Bovenaan je uitlogscript moet ook nog session_start() staan, heb je dat?
 
- Ariën  -
Beheerder

- Ariën -

01/07/2014 20:42:53
Quote Anchor link
Ik zie een hoop fouten in het script, waarvan ik je al eerder goede adviezen heb gegeven.

SQL-injection mogelijkheid, validatie bij je variabelen, onnodig variabelen kopiëren, mysqli gebruiken etc....
 



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.