IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Page blanche suite à l'envoi d'un formulaire !


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut Page blanche suite à l'envoi d'un formulaire !
    Bonjour,

    Je fais un site de petites annonces et le site fonctionne parfaitement bien en local (sous wamp).

    Je viens de le transférer en ligne dans un sous domaine pour les tests etc.. voici l'adresse : http://demo.phpdyn.fr

    et la.. problème ! Pour les formulaires d'inscription, de connexion, et d'envoi de donnée avec méthode POST j'ai une page blanche.

    exemple pour la connexion à l'espace membre voici les infos :
    login : test
    mot de passe : demo

    et la page blanche ! alors qu'en local le site fonctionne très bien.

    même chose pour la page de petites annonces : http://demo.phpdyn.fr/progressez-en-...cert-1170.html
    page blanche si j'envoie le formulaire de contact..

    Je suis sur 1and1.

    voici mon htaccess (au cas ou..)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase /
     
    RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$   index.php?p=ad/view&title=$1&idann=$2 [L]
     
    RewriteRule ^cours/([a-zA-Z0-9\-]+)-([0-9]+)-([0-9]+).html$   index.php?p=ad/category&title=$1&page=$2&idcat=$3 [L]
    RewriteRule ^cours/([a-zA-Z0-9\-]+)-([0-9]+).html$   index.php?p=ad/category&title=$1&idcat=$2 [L]

    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu n'as pas encore appris le "débogage de base" ?
    • afficher les variables : echo ...;
    • et/ou les array : var_dump(...);
    • ...

    et activer la gestion d'erreur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php 
    error_reporting(E_ALL); 	// en TEST !!

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Bien-sûr que si mais mon code fonctionne très bien en local, je reçois mon $_POST sans aucun problème, mais sur 1and1 je me retrouve avec une page blanche apres l'envoi du formulaire.
    Je viens de mettre un var dump sur 1and1 à la page login et rien ! Page blanche !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il faut comprendre que si tu vois une page blanche, nous aussi.

    Et ça ne fournit aucune info ni message d'erreur.

    Donc : il faut que tu actives les messages d'erreurs.

    Tu as certainement une erreur de configuration ou chemin d'accès (ou... ?), mais là, on ne peut rien dire de plus.

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Je viens de placer ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting(E_ALL);
    en haut de chacune des pages avec formulaire.

    pour la page : http://demo.phpdyn.fr/cours-de-chant...ines-1174.html

    après envoi du formulaire avec succès j'ai :
    une page blanche avec une erreur :
    Warning: Cannot modify header information - headers already sent by (output started at /homepages/41/d573228679/htdocs/demo/inc/db.php:1) in /homepages/41/d573228679/htdocs/demo/controller/ad/view.php on line 47
    pour la page login j'ai également des erreurs :
    Notice: Undefined index: remember in /homepages/41/d573228679/htdocs/demo/controller/login.php on line 18
    Warning: Cannot modify header information - headers already sent by (output started at /homepages/41/d573228679/htdocs/demo/inc/db.php:1) in /homepages/41/d573228679/htdocs/demo/controller/login.php on line 23

    Je ne comprends rien a ces erreurs surtout qu'en local le site fonctionne.

    voici pour exemple le controller de ma page login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    reconnect_from_cookie();
    if (isset($_SESSION['auth'])) {
        header('Location: index.php?p=ad/account');
        exit();
    }
     
    error_reporting(E_ALL);
     
    if (!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])) {
        $req = $pdo->prepare('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL');
        $req->execute(['username' => $_POST['username']]);
        $user = $req->fetch();
        if ($user) {
            if (password_verify($_POST['password'], $user->password)) {
                $_SESSION['auth'] = $user;
                $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
                if ($_POST['remember']) {
                    $remember_token = str_random(250);
                    $pdo->prepare('UPDATE users SET remember_token = ? WHERE idmbr = ?')->execute([$remember_token, $user->idmbr]);
                    setcookie("remember", $user->idmbr . '==' . $remember_token . sha1($user->idmbr . NOM_SITE), time() + 60 * 60 * 24 * 7, "/", URL_SITE, 0, 1);
                }
                header('Location: index.php?p=ad/account');
                exit();
            } else {
                $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
            }
        } else {
            $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
        }
    }
     
    $title_page = 'Se connecter';
    $description_page = 'Connexion à votre compte';
     
    require 'view/login.php';

  6. #6
    Invité
    Invité(e)
    Par défaut
    1/ "Undefined index: remember "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                if ($_POST['remember']) {
    ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                if ( isset($_POST['remember'] ) ) {
    2/ Quant aux "header already sent", tu essais de faire des redirection alors qu'un ffichage a déjà eu lieu.

    Il peut s'agir simplement (souvent !) d'espace / passage à la ligne* HTML dans un fichier inclu.

    * c'est pourquoi on ne ferme pas la dernière balise <?php dans les fichiers inclus :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
     
    // ici la fin du fichier
    // pas de balise de fermeture (?>)
    attention aussi à ne pas faire de passage à la ligne avant le 1er <?php du fichier.

  7. #7
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    oops, merci pour le isset.

    Je viens de rectifier mais toujours page blanche avec erreur :
    Warning: Cannot modify header information - headers already sent by (output started at /homepages/41/d573228679/htdocs/demo/inc/db.php:1) in /homepages/41/d573228679/htdocs/demo/controller/login.php on line 23

    Il peut s'agir simplement (souvent !) d'espace / passage à la ligne* HTML dans un fichier inclu.

    * c'est pourquoi on ne ferme pas la dernière balise <?php dans les fichiers inclus
    Je n'ai fermé aucun fichier include. Si le fichier php comporte uniquement du php alors je ne ferme jamais la balise.

  8. #8
    Invité
    Invité(e)
    Par défaut
    headers already sent by (output started at /homepages/41/d573228679/htdocs/demo/inc/db.php:1)
    <?php error_reporting(E_ALL); à mettre sur la 1ère ligne de code.

    Vérifie tous les fichiers... à commencer par db.php.

  9. #9
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    voici mon fichier db.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    // Paramètres de connexion à MySQL
    define("DB_HOST", "xx"); // Nom du serveur hôte
    define("DB_NAME", "xx"); // Nom de la base de données
    define("DB_USER", "xx"); // Nom d'utilisateur
    define("DB_PASSWORD", "xx"); // Mot de passe (s'il y en a un)
     
    // Connexion à MySQL
    try {
        $pdo = new PDO('mysql:dbname='.DB_NAME.';host='.DB_HOST.'', DB_USER, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    } catch (PDOException $e) {
        print 'Echec lors de la connexion : ' . $e->getMessage();
        die();
    }
    donc pas d'espace, pas de retour a la ligne....

  10. #10
    Invité
    Invité(e)
    Par défaut
    Si, là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print 'Echec lors de la connexion : ' . $e->getMessage();
    Vérifie les paramètres de connexion.

    Sinon....... il faut continuer à chercher.

  11. #11
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Je viens de rajouter "//" au début de la ligne,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Connexion à MySQL
    try {
        $pdo = new PDO('mysql:dbname='.DB_NAME.';host='.DB_HOST.'', DB_USER, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    } catch (PDOException $e) {
        //print 'Echec lors de la connexion : ' . $e->getMessage();
        die();
    }
    et toujours la même erreur.

  12. #12
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    par contre.. en parlant d'espace, je vois un espace blanc avant le menu du haut http://demo.phpdyn.fr

    Nom : site.png
Affichages : 539
Taille : 21,6 Ko

    alors qu'en local je n'ai pas d'espace.. très bizarre.

  13. #13
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Résolu : hier mon client ftp à enregistré la page db.php en utf8 a la place de utf8 sans bom ! voila

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire qui n'envoie qu'une page blanche
    Par Skenja dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2012, 14h12
  2. [Flex4] Page blanche suite compilation avec maven
    Par youkoun dans le forum Flex
    Réponses: 0
    Dernier message: 27/06/2011, 17h41
  3. Page blanche suite a HTML:LINK
    Par bruno.getJava() dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/01/2011, 09h20
  4. Undefined index suite à l'envoi d'un formulaire
    Par enahpets dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 18/07/2009, 10h59
  5. Envoi d'un formulaire vers 2 pages differentes
    Par BernardT dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2005, 00h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo