Goedemorgen allemaal,

Ik ben laatst begonnen met het boek Basis Cursus PHP 5.4 van Victor Peters. Ben op het punt aangekomen dat er een login script wordt gemaakt. Echter krijg ik dit script niet aan de praat. Er worden geen foutmeldingen gegeven. Het lijkt erop dat de functies niet aangeroepen worden, omdat ik een lege pagina terug krijg.

Mijn vraag is of iemand mij erop kan wijzen wat er fout gaat of pointers kan geven. :)

index.php

<?php

session_start();
// IDENTIFICATIE
if( isset($_SESSION['sid']) || ($_COOKIE['PHPSESSID']) != $_SESSION['sid'] ):
    header('location: ./login.php');
endif;                                   

// VIEW
?>
<div>Gebruiker: <?php echo $_SESSION['naam'] ?></div>
<div id="afmeldformulier">
    <form name="signup" action="login.php" method="POST">
    <input type="submit" name="signout" value="Sign Out Now" />
    </form>
</div>

<?php
// ==========
include('../sessie/toonsessie.inc.php');
echo toon_sessie();

?>



login.php

<?php
// CONTROLLER
session_start();
$sessie = false;
$form = '';

if( isset($_POST['signout']) ):
    vernietig_sessie();
endif;

if( isset($_SESSION['sid']) && $_COOKIE['PHPSESSID'] == $_SESSION['sid']):
    $sessie =true;
    header('location: ./index.php');
else:    
    if( isset($_POST['in']) ):
        $controleer = signin($fouten);
        if( $controleer === false ):
            $form = form_in($fouten);
        else:
            maak_sessie($controleer);
            $sessie = true;           
            header('location: ./index.php');            
        endif;
    elseif( isset($_POST['up']) ):
        if( !signup($fouten) ):
            $form = form_up($fouten);
        else:
            maak_sessie($_POST['naam']);
            $sessie = true;
            header('location: ./index.php');       
        endif;
    elseif( isset($_GET['signin']) ):
        $form = form_in();
    elseif( isset($_GET['signup']) ):
        $form = form_up();
    else:
        $form = form_inup();
    endif;
endif;  

// FUNCTIES
function signin(&$terug) {
    $ok = true;
    if( $_POST['mail'] == '' ):
        $terug['error_mail'] = 'Vul uw e-mailaders in.';
        $ok &= false;
    endif;
    if( $_POST['pass'] == ''):
        $terug['error_pass'] = 'Vul uw wachtwoord in.';
        $ok &= false;
    endif;
    
    if( $ok ):
        // Controleer gegevens in de database
        // haal NAAM uit database
        if( true ):
            return "NAAM";
        else:
            $terug['error_mail'] = 'Gegevens niet correct.';
            return false;
        endif;
    else:
        return false;
    endif;
}

function signup(&$terug) {
    $ok = true;
    if( $_POST['naam'] == '' ):
        $terug['error_naam'] = 'Vul uw naam in.';
        $ok &= false;
    endif;
    if($_POST['mail'] == ''):
        $terug['error_mail'] = 'Vul uw e-mail in.';
        $ok &= false;
    endif;
    if( $_POST['pass1'] == '' || $_POST['pass1'] != $_POST['pass2'] ):
        $terug['error_pass'] = 'Vul tweemaal hetzelfde wachtwoord in.';
        $ok &= false;
    endif;
    
    if( $ok ):
        // Controleer in database of e-mail nog niet in gebruik is
        if( true ):
        // Maak nieuw record in database
            return true;
        else: 
            $terug['error_mail'] = 'E-mailadres al in gebruik.';
            return false;
        endif;
    else:
        return false;
    endif;
}

function maak_sessie($naam) {
    $_SESSION['sid'] = session_id();
    $_SESSION['naam'] = $naam;
}

function vernietig_sessie() {
    session_unset();
    session_destroy();
    setcookie('PHPSESSID', '', time()-3600, './');
}

function form_inup() {
    return '
        <h1>Sign Up & In</h1>
        <a href ="'.$_SERVER['SCRIPT_NAME'].'?signin">Sign In</a> of
        <a href ="'.$_SERVER['SCRIPT_NAME'].'?signup">Sign Up</a>
        ';
}

function form_in( $gegevens = array() ) {
    $regels = '<h1>Sign In</h1>';
    $regels .= '<form name="signin" action="" method="POST">';
    if( isset($gegevens['error_mail']) ):
        $regels .= $gegevens['error_mail'].'<br />';
    endif;
    $regels .= '
        E-mailadres:
        <input type="text" name="mail" value="'.$_POST['mail'].'" /><br />
        ';
    if( isset($gegevens['error_pass']) ):
        $regels .= $gegevens['error_pass'].'<br />';
    endif;
    $regels .= '
        Wachtwoord:
        <input type="password" name="pass" value="" /><br />
        <input type="submit" name="in" value="Sign In Now" /><br />
        ';
    $regels .= '</form>';
    return $regels;
}

function form_up( $gegevens = array() ) {
    $regels = '<h3>Sign Up</h3>';
    $regels .= '
        <form name="signup" action="" method="POST">
        ';
    if( isset($gegevens['error_mail']) ):
        $regels .= $gegevens['error_mail'].'<br />';
    endif;
    $regels .= '
        E-Mailaders:
        <input type="text" name="mail" value="'.$_POST['mail'].'" /><br />
        ';
    if( isset($gegevens['error_naam']) ):
        $regels .= $gegevens['error_naam'].'<br />';
    endif;
    $regels .= '
        Naam:
        <input type="text name="naam" value="'.$_POST['naam'].'" /><br />
        ';
    if( isset($gegevens['error_pass']) ):
        $regels .= $gegevens['error_pass'].'<br />';
    endif;
    $regels .= '
        Wachtwoord:
        <input type="password" name="pass1" value="" /><br />
        Herhaal wachtwoord:
        <input type="password" name="pass2" value="" /><br />
        <input type="submit"name="up" value="Sign Up Now" /><br />
        ';
    $regels .= '</form';
    return $regels;
}

function form_out() {
    return '
        <div><form name="signup" action="./" method="POST">
        <input type="submit" name="signout" value="Sign Out Now" />
        </form></div>
        ';
}
?>

Klopt idd! Nu wordt de melding niet meer gegeven. Echter blijft login.php helemaal leeg, snap er niks van haha.

Als ik alle cookies verwijder, wordt er wel een nieuwe cookie aangemaakt ( PHPSESSID ).

Als ik de debugger gebruik van PhpED, krijg ik deze melding:

SRV Server:

Document Contains no data.

Reageren