Salut à tous,
Tout d'abord bonne année à tous !
Je créé un site internet en html/css (mais alors que viens tu faire ici !!) me direz vous. La raison est que je souhaite créer deux pages faisant appel à du php, une page avec un formulaire de contact et une page avec un livre d'or.
J'ai suivi le tutoriel formulaire de graphikart et pourtant lorsque je veux charger la page, elle s'affiche entièrement blanche.
(lorsque je suis sur le site en ligne).

Quelqun aurait il une idée ?
Je mets le code de la page ci-dessous:

<?php
    session_start();
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>Audrey et Gauvain</title>
    </head>
    <body>
        <div class="bloc_page">
            <div id="header"></div>
            <div class="menu">
                <div class="nav">
                    <ul>
                        <li><a href="index.html">Accueil</a></li>
                        <li><a href="lemariage.html">Le mariage</a></li>
                        <li><a href="seloger.html">Se loger</a></li>
                        <li><a href="contact.php">Contact</a></li>
                        <li><a href="livreor.php">Un mot</a></li>
                    </ul>
                </div>
            </div>
            <div class="wrap">
                <div class="content_head"></div>
                <div class="page">
                    <div class="article">
                        <div class="vignette">
                            <a href="#" class="photo"><img src="img/photo2.jpg" alt="saint estève"/></a>
                        </div>
                            <h1 align="center">Une question? un problème?</h1>
                            <h2 align="center"> Vous pouvez contacter Mme.  qui se fera un plaisir de répondre à vos interrogations</h2>
                        <div class="orgafete">
                            <ul>
                                <li><a href="mailto:orgafete.naessens@gmail.com">mail</a></li>
                                <li><a href="http://www/">site web</a></li>
                                <li>N° : 06 ########</li>
                            </ul>
                        <div class="separateur"><img src="img/separateur.png" alt="separateur"></div>
                            <h2>Ou utliser le formulaire de contact ci-dessous et nous tâcherons de vous répondre au plus vite !</h2>
                        <div class="mae"><img src="img/contact.png" alt="mae"></div>

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

                            <?php if(array_key_exists('success', $_SESSION)):?>
                                <div class="alert alert-success">
                                    Votre message nous est bien parvenu !
                                    <?= implode('<br>', $_SESSION['success']); ?>
                                </div>

                            <form method="post" action="traitement.php">
                                <div class="row">
                                    <div class="col-xs-6">
                                        <div class="form_group">
                                            <label for="nom">Votre Nom</label>
                                            <input type="text" name="nom" class="form-control" id="nom" value="<?= isset($_SESSION['inputs']['nom']) ? $_SESSION['inputs']['nom'] : '';?>" />
                                        </div>
                                    </div>
                                    <div class="col-xs-6">
                                        <div class="form_group">
                                            <label for="prénom">Votre prénom</label>
                                            <input type="text" name="prénom" class="form-control" id="prénom" value="<?= isset($_SESSION['inputs']['prénom']) ? $_SESSION['inputs']['prénom'] : '';?>" />
                                        </div>
                                    </div>
                                    <div class="col-xs-6">
                                        <div class="form_group">
                                            <label for="email">Votre email</label>
                                            <input type="text" name="email" class="form-control" id="email" value="<?= isset($_SESSION['inputs']['email']) ? $_SESSION['inputs']['email'] : '';?>" />
                                        </div>
                                    </div>
                                    <div class="col-xs-12">
                                        <div class="form_group">
                                            <label for="message">Votre message</label>
                                            <textarea id="message" name="message" class="form-control"><?= isset($_SESSION['inputs']['message']) ? $_SESSION['inputs']['message'] : '';?> </textarea>
                                        </div>
                                        <button type="submit" class="envoyer"></button>
                                    </div>
                                </div>
                            </form>
                            <h2> Debug:</h2>
                            <?= var_dump($_SESSION); ?>

                           <p align="justify">Directement sur le lieu du mariage ! <a href="http://www.dsemillau.com/fr-fr/votres%C3%A9jour/chaletsh%C3%B4teliers.aspx" target="blank">Le domaine Saint Estève</a> propose des hébergements de tout ordre et de toute taille, vous serez sur place !</p>

                        <div class="separateur"><img src="img/separateur.png" alt="separateur"></div>

                           <p align="justify">Le long du Tarn, entre 2 et 10 minutes à pied du lieu du mariage, il existe des campings de classe et de prix divers regardez la   <a href="https://www.google.com/maps/search/camping+millau/@44.1041711,3.0922686,14z" target="blank">carte</a> pour vous repérez près du domaine !</p>

                        <div class="separateur"><img src="img/separateur.png" alt="separateur"></div>

                            <p align="justify">Pour de plus amples informations sur les logements, prenez  <a href="contact.html">contact</a> avec nous ou consultez le <a href="http://www.millau-viaduc-tourisme.fr/votre-sejour/ou-dormir" target="blank">site web</a> de l'office de tourisme de Millau pour vous repérez près du domaine !</p>

                        <div class="carte">
                            <p align="center">vous ne savez pas où se situe Le domaine Saint Estève ? cliquez ici ! <a href="https://www.google.com/maps/place/Domaine+Saint+Est%C3%A8ve/@44.114129,3.088639,17z/data=!3m1!4b1!4m2!3m1!1s0x12b24b488ec0fc73:0x449570070b182d94" target="blank"><img src="img/carte.png"></a></p>
                        </div>
                            <p></p>
                    </div> 
                </div>
                <div class="content_foot"></div>
            </div>           
                <div class="footer_content">
                    <ul>
                        <li>&#169; les Gauvrey's 2014</li>
                        <li><img src="img/tandem.png" /></li>
                        <li>Réalisé sous Sublime</li>
                    </ul>
                </div>
        </div>
    </body>
</html>

<?php
unset($_SESSION['inputs']);
unset($_SESSION['errors']);
unset($_SESSION['success']);
?>

Ensuite je mets aussi le code de la page traitement.php au cas ou vous en auriez besoin.

<?php
$errors=[];
$emails = ['gauvain.meulle@gmail.com'];

if(!array_key_exists('nom', $_POST) || $_post['name'] == ''){
    $errors['name'] = "vous n'avez pas renseigné votre Nom";
}
if(!array_key_exists('prénom', $_POST) || $_post['prénom'] == ''){
    $errors['prénom'] = "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('message', $_POST) || $_post['message'] == ''){
    $errors['message'] = "vous n'avez pas renseigné votre message";
}
session_start();

if(empty($errors)){
    header('location: contact.php');
    session_start();
    $_SESSION['errors'] = $errors;
    $_SESSION['inputs'] = $_POST;
}else{
$_SESSION['success'] = 1;
$message=$_post['message'];
$headers = 'FROM:site mariage'
mail('gauvain.meulle@gmail.com', 'formulaire de contact', $messag, $headers);
header('location: contact.php');
}

var_dump($errors);
die();

var_dump($_post);

Je m'excuse d'avance des erreurs de noob que j'ai pu faire j'apprends sur le tas...

Merci à vous !

10 réponses


Carouge10
Réponse acceptée

Attention aussi à la version de php sur l'hébergement en ligne. Certaine syntaxe ne sont pas acceptée.

$errors = [];           //PHP récent
$errors = array(); //PHP ancien

salut,
deja essaye d'enlever ton deuxieme

<?php
session_start();
?>

Bonjour,

1/ Un seul session_start(); par page php
2/ Celui-ci doit toujours être mis avant du code html
3/ Un hedear('Lacation...'); est une instructio à mettre en dernier sinon, le code qui le suit ne sera pas exécuté.

Modif de la page traitement.php

<?php
session_start();

if(empty($errors)){
    $_SESSION['errors'] = $errors;
    $_SESSION['inputs'] = $_POST;
     header('location: contact.php');

}else{
$_SESSION['success'] = 1;
$message = $_post['message'];
$headers = 'FROM:site mariage'
mail('gauvain.meulle@gmail.com', 'formulaire de contact', $message, $headers);
header('location: contact.php');
}

// Sert à rien, puisque vous êtes redirigé avant
var_dump($errors);
die();

var_dump($_post);

Pour avoir les erreurs affichier il faut aller dans la config apache pour regler le error_log.
Je n'ai pas la valeur exacte en tete mais google doit pouvoir te guider asser rapidement.

Resalut à tous !
D'abord merci d'avoir répondu à mon interrogation.
Je ne comprends pas ta réponse arnich....
Malheureusement, malgré les modifications que vous m'avez demandé d'apporter, aucun changement n'est apparu !
Je reste toujours sur une page blanche...
Ce que je ne comprends pas d'ailleurs car, même si le php est mal codé, le html l'est correctement lui et donc je devrais au moins voir mon html ?

Lors de la config pr defaut de ton serveur php les erreur ne sont pas affichée.
Recherche dans google : afficher les erreurs php

Bonjour
Autres que le session_start et le fait que les erreurs ne s'affichent pas,
il faudrait peut-être fermer les if ? :)

<?php if(array_key_exists('errors', $_SESSION)):?>

// Mais où est mon endif ? :)

Pour info pour afficher les erreur php il faut modifier ton fichier php.ini. Il faut positionner la variable error_reporting = e_all

Rajoute ceci en haut de t'es pages faisant appel à du php, cela va te permettre d'afficher les éventuelles erreurs .

<?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
?>

Bonsoir a tous !
Merci j'ai réussi en prenant en compte toutes vos réponses, aparement c'était bien mon hébergeur qui n'avait pas envie avec l'ancien !
merci à tous pour vos réponses !