Bonjour à tous !
Je suis entrain de suivre le tuto est pourtant j'ai un gros problème ^^
Mon problème ^^

Comme vous le voyez tout le code php de mon formulaire bug :/
J'ai l'impression que le problème vient du session_start() mais je n'arrive pas à le résoudre et j'ai l'impression d'avoir exactement le même code que sur le tuto.

<?php
session_start();
?>
<!DOCTYPE html>
<!-- 
 * Green IT project
 * @version 0.1
-->
<html lang="en">
    <head>

        <title>GO Green IT</title> <!-- Titre du site -->
        <meta charset="UTF-8"> <!-- Encodage du site en UTF-8 -->
        <link rel="stylesheet" href="formulaire.css">   
    </head>

    <body>

    <!-- Le formulaire du site -->
    <div class="container">

        <div class="starter-template">

            <?php if(array_key_exists('errors', $_SESSION)): ?>
                <div class="alert alert-danger">
                    <?= implode('<br>', $_SESSION'errors']); ?>
                </div>
            <?php endif; ?>

            <?php if(array_key_exists('success', $_SESSION)): ?>
                <div class="alert alert-success">
                    Votre email a bien été envoyé
                </div>
            <?php endif; ?>

            <form action="post_contact.php" method="POST">
                <div class="row">
                    <div class="col-xs-6">
                        <div class="form-group">
                            <label for="inputname">Votre nom</label>
                            <input type="text" name="name" class="form-control" id="inputname" value="<?= isset($_SESSION'inputs']'name'] ? $_SESSION'inputs']'name'] : ''; ?>">    
                        </div>
                    </div>
                    <div class="col-xs-6">
                        <div class="form-group">
                            <label for="inputfirstname">Votre prénom</label>
                            <input type="text" name="firstname" class="form-control" id="inputfirstname" value="<?= isset($_SESSION'inputs']'firstname'] ? $_SESSION'inputs']'firstname'] : ''; ?>">    
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-6">
                        <div class="form-group">
                            <label for="inputemail">Votre email</label>
                            <input type="text" name="email" class="form-control" id="inputemail" value="<?= isset($_SESSION'inputs']'email'] ? $_SESSION'inputs']'email'] : ''; ?>">    
                        </div>
                    </div>              
                    <div class="col-xs-6">
                        <div class="form-group">
                            <label for="inputsujet">Votre sujet</label>
                            <input type="text" name="sujet" class="form-control" id="inputsujet" value="<?= isset($_SESSION'inputs']'sujet'] ? $_SESSION'inputs']'sujet'] : ''; ?>">    
                        </div>
                    </div>  
                </div>
                <div class="row">
                    <div class="col-xs-12">
                        <div class="form-group">
                            <label for="inputmessage">Votre message</label>
                            <textarea id="inputmessage" name="message" class="form-control"><?= isset($_SESSION'inputs']'name'] ? $_SESSION'inputs']'name'] : ''; ?></textarea> 
                        </div>
                        <button type="submit" class="btn btn-primary">Envoyer</button>
                    </div>
                </div>
            </form>     
            <h2>Debug :</2>
            <?= var_dump($_SESSION); ?>
        </div>
    </div>
    </body>
    </html>
    <?php
    unset($_SESSION'inputs']);
    unset($_SESSION'errors']);
    unset($_SESSION'success']);
    ?>

<?php
$errors = ];
if(!array_key_exists('name', $_POST) | $_POST'name'] == ''){
    $errors'name'] = "Vous n'avez pas renseigné votre nom";
}
if(!array_key_exists('firstname', $_POST) | $_POST'firstname'] == ''){
    $errors'firstname'] = "Vous n'avez pas renseigné votre prénom";
}
if(!array_key_exists('email', $_POST) | $_POST'email'] == '' || filter_var($_POST'email'], FILTER_VALIDATE_EMAIL)){
    $errors'email'] = "Vous n'avez pas renseigné un email valide";
}
if(!array_key_exists('sujet', $_POST) | $_POST'sujet'] == ''){
    $errors'sujet'] = "Vous n'avez pas renseigné votre sujet";
}
if(!array_key_exists('message', $_POST) | $_POST'message'] == ''){
    $errors'message'] = "Vous n'avez pas renseigné votre message";
}
session_start();
if(!empty($errors)){
    $_SESSION'errors'] = $errors;
    $_SESSION'inputs'] = $_POST;
    header('location: http://localhost/greenit/contact.html');
}else{
    $_SESSION'success'] = 1;
    $message = $_POST'message'];
    $headers = 'FROM: gogogreenit@gmail.com';
    mail('gogogreenit@gmail.com', 'Formulaire de contact', $message, $headers);
    header('location: http://localhost/greenit/contact.html');
}
die();
?>

Merci d'avance pour votre aide.

7 réponses


Underscreen
Réponse acceptée

A tout hasard ton formulaire serait pas dans une page ".html" ?

Mickap
Auteur

Si pourquoi ?
Si je met un .php j'arrive pas à afficher la page

les document .html mette le php en commentaire et ne l'interprète pas ^^
Met ce fichier avec l'extention .php ça derait mieux marché ! :)

Mickap
Auteur

Ah oui j'arrivais pas à afficher le .php à cause d'un point virgule en trop.
Tout marche par miracle maintenant merci ;)

Tu travailles sous wamp ?

Si c'est pas le cas installe le ^d'urgence.
PHP est un langage côté serveur ce qui fait que ton projet doit, pour être interprété, être hébergé sur un serveur distant, soit en simulant un hébergement grace à des outils comme wamp server si tu es sous windows, xamp ou mamp sous mac et linux.

Si je peux te donner un conseil, essaye de bien comprendre ce qu'est le PHP avant même de suivre un tuto.
pour l'installation de wamp tu as ce tuto en vidéo

ok super ! :)

Mickap
Auteur

C'est bon tous marche parfaitement et si bien sur je suis sous wamp ^^
C'est juste que c'est la première fois que je fais un formulaire sur mes sites statique du coup j'ai pas trop le truc avec php :/