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
<?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
<?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

<?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.
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.
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
Nee nee ze worden wel uitgevoerd het probleem is dat ik de melding soms krijg als ik al ingelogd ben.

[size=xsmall]Toevoeging op 01/07/2014 15:50:35:[/size]

En dit logout script werkt ook niet:

<?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>';
    
}
?>
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?
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....

Reageren