page blanche après envoi de formulaire

Répondre
LA GLOBULE
le 14/09/2009 à 12:54
LA GLOBULE
Qu as tu mis exactement dans ton fichier ?

<?php  1. <?php
2. echo 'pom';
3. exit;
4. ?>
?>


Ca ?

<?php
echo 'pom';
exit;
?>


Ou ca ?

Seule la seconde version fonctionne.

En fait, je suis presque sur que tu as tout copier coller comme un bourrin et que les numéros de ligne sont restés dans tes fichiers PHP, ce qui crée des erreurs de syntaxe.

PHP doit claquer une erreur, et comme par défaut elles ne s'affichent pas chez ton hebergeur, et bien tu as une page blanche (ce comportement peut se modifier en faisant un init_set de la propriété display_errors et en la passant à On, tu peux aussi modifier la propriété error_reporting en lui donnant la valeur E_ALL pendant la phase de développement. Parce que sans rapport d'erreur, c'est impossible de développer).
alexandryne
le 14/09/2009 à 16:21
alexandryne
Pour ce qui est de l'affichage, effectivement, il ne fallait pas de chiffres du tout dans le fichier php. Donc, ça m'affiche pom et dans l'inscription, (puisque j'avais mis la fonction "echo"), ça m'affiche le login, mot de passe, et confirmez votre mot de passe sur la page blanche.

Dans "inscription.php", je n'ai rien mis pour le champ vide, car avec l'index.html, ça met "login requis" ou "mot de passe requis" si le champ est vide. Par contre, pour les mots de passe différents, aucun message ne s'affiche et aucun enregistrement dans la base de données. Donc, ça coince encore, même s'il y a une amélioration. Je pense que je dois faire ce que tu m'as dit plus haut pour les messages d'erreur. Je ne sais pas du tout comment faire. Je te mets le code pour voir si c'est juste :
<?php    <?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

// on teste les deux mots de passe
if ($_POST['motdepasse'] != $_POST['confirmezvotremotdepasse']) {
$erreur = 'Les 2 mots de passe sont diff&eacute;rents.';
}
else {
$base = mysql_connect ('localhost', 'user', 'motdepasse');
mysql_select_db ('*_form', $base);

// on recherche si ce login est d&eacute;j&agrave; utilis&eacute; par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.(mysql_escape_string($_POST['motdepasse'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre poss&&egrave;de d&eacute;j&agrave; ce login.';
}
?>
<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
<?php if (isset($_POST['motdepasse'])) echo htmlentities(trim($_POST['motdepasse'])); ?>"><br />
<?php if (isset($_POST['confirmezvotremotdepasse'])) echo htmlentities(trim($_POST['confirmezvotremotdepasse'])); ?>"><br />
<?php
if (isset($erreur)) echo '<br />',$erreur;
?> ?>
LA GLOBULE
le 15/09/2009 à 20:48
LA GLOBULE
Je pense que je dois faire ce que tu m'as dit plus haut pour les messages d'erreur.


Je pense aussi que c'est une bonne idée.

Tu dis ne pas savoir le faire, mais je t'ai expliqué comment le faire, avec la fonction ini_set.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours