468 votes

Affichage de toutes les erreurs et avertissements

Mise à JOUR 2:

J'ai maintenant supprimé à la suite de l' .fichier php:

<?php error_reporting( E_ALL ); ?>

J'ai mis display_erros en php.ini comme suit:

display_errors = on

les rapports d'erreurs est la suivante en php.ini

error_reporting = E_ALL | E_STRICT

Après le redémarrage d'apache, je reçois toujours pas les erreurs/avertissements.

Mise à JOUR 1:

J'ai changé la fonction error_reporting en php.ini à partir de:

error_reporting = E_ALL & ~De niveau e_deprecated à partir

pour

error_reporting = E_ALL | E_STRICT

Après j'ai redémarré apache, par exemple

/etc/init.d/apache2 restart

Mais la page ne sera toujours pas afficher les erreurs/avertissements de toute nature.

QUESTION DE DÉPART:

Le script suivant est de générer un avertissement, car l' $err étant à l'intérieur de l'instruction if. Pourquoi cet avertissement ne s'affiche pas sur la page php dans un navigateur web? J'ai regarder les logs apache pour voir l'avertissement. Aussi, si je delibarately changer le "insert into" à "supprimer", il n'affiche pas d'erreur sur la page php. Pourquoi sont les erreurs à ne pas afficher sur la page php?

<?php
    error_reporting( E_ALL );
?>

<html>
    <head>
        <title></title>
        <link rel="icon" type="image/png" href="favicon.ico">

        <?php
            if( $_SERVER['REQUEST_METHOD']=='POST' ) {
                $err = array();

                if( empty( $_POST['display_name'] ) ) $err[] = "display name field is required";
                if( empty( $_POST['email'] ) ) $err[] = "email field is required";
                if( empty( $_POST['password'] ) ) $err[] = "password field is required";

                if( !$err ) {
                    try {
                        $DBH = new PDO( "mysql:host=localhost;dbname=database1", "user", "pass" );
                        $DBH -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

                        $STH = $DBH -> prepare( "delete into table1 (display_name, email, password) values ( :display_name, :email, :password )" );

                        $STH -> bindParam( ':display_name', $_POST['display_name'], PDO::PARAM_STR, 100 );
                        $STH -> bindParam( ':email', $_POST['email'], PDO::PARAM_STR, 100 );
                        $STH -> bindParam( ':password', $_POST['password'], PDO::PARAM_STR, 100 );

                        $STH -> execute();

                        $STH = $DBH -> prepare( "delete into table2 ( username, status, users_id ) values ( :username, :status, :users_id )" );

                        $strStatus = 1;

                        $STH -> bindParam( ':username', $_POST['display_name'], PDO::PARAM_STR, 100 );
                        $STH -> bindParam( ':status', $strStatus, PDO::PARAM_INT, 1 );
                        $STH -> bindParam( ':users_id', $_POST['referer'], PDO::PARAM_INT, 1 );

                        $STH -> execute();

                        $DBH = null;
                    } catch( PDOException $e ) {
                        echo $e -> getMessage();
                    }

                    header( "Location: ".$_SERVER['PHP_SELF'] );
                    exit;
                } else {
                    foreach( $_POST as $key => $val ) {
                        $form[$key] = htmlspecialchars($val);
                    }
                }
            } else {
                $form['display_name'] = $form['email'] = $form['password'] = '';
            }
        ?>
    </head>

    <body>
        <?php foreach( $err as $line ) { ?>
        <div style="error"><?php echo $line; ?></div>
        <?php } ?>

        <h1>register</h1>

        <form method="post">
            referers id:<br />
            <input type="text" name="referer" /><br /><br />

            name:<br />
            <input type="text" name="display_name" value="<?php echo $form['display_name']; ?>" /><br /><br />

            email:<br />
            <input type="text" name="email" value="<?php echo $form['email']; ?>" /><br /><br />

            password:<br />
            <input type="text" name="password" value="<?php echo $form['password']; ?>" /><br /><br />

            <input type="submit" value="register" />
        </form>
    </body>
</html>

1306voto

txyoji Points 2760

Erreurs d’affichage pourraient être éteint la `` ou votre fichier de configuration d’Apache.

Vous pouvez l’activer dans le script :

Vous devriez voir les mêmes messages dans le journal des erreurs PHP.

42voto

John Magnolia Points 3304

Directement depuis le fichier php.ini :

Pour le développement pur : qu'aller :

N’oubliez pas de mettre display_errors à

Après cela, redémarrez votre serveur apache sur Ubuntu :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X