page blanche après envoi de formulaire

Répondre
alexandryne
le 11/09/2009 à 22:17
alexandryne
Bonsoir,

J'ai créé mon site avec un logiciel de création de sites. J'ai donc tout ce qui formulaire html. Par contre, il a fallu que je crée des scripts PHP. J'ai donc fait comme dans "les comment faire" de ce site pour créer un espace membre. J'ai mis dans le gestionnaire de fichiers du serveur dans "inscription1" "inscription.php" et dans accueil, "connexion.php", "membre.php" et "deconnexion.php". J'ai créé une table dans la base de données qui s'appelle "membre". J'ai supprimé tout ce qui était "html" dans les scripts php, puisque je l'ai déjà dans les index.html. Mais quand je clique sur "inscription" pour envoyer le formulaire, j'ai une page blanche qui s'affiche, sans message d'erreur. Et dans la base de données, pas d'enregistrements. Je vous mets le code html du formulaire :
<html>



<form method="post" onsubmit="return validateForm_bv000002( this );" action="inscription.php">
<table border="0">
<tr>
<td align="right">login<font color="red"><sup>*</sup></font></red></td>
<td align="left"><input class="wg-formfield" type="text" name="login" value="" maxlength="50" style="width:300px;"></td>
</tr>
<tr>
<td align="right">Mot de passe<font color="red"><sup>*</sup></font></red></td>
<td align="left"><input class="wg-formfield" type="password" name="motdepasse" value="" maxlength="50" style="width:300px;"></td>
</tr>
<tr>
<td align="right">Confirmez votre mot de passe<font color="red"><sup>*</sup></font></red></td>
<td align="left"><input class="wg-formfield" type="password" name="confirmezvotremotdepasse" value="" maxlength="50" style="width:300px;"></td>
</tr>
<tr><td colspan="2"><input type="submit" value="Inscription"></td></tr></table></form></td></tr></table></td></tr></table></td></tr></table><br><hr><table width="100%" border="0" class="wg-paragraph"><tr><td width="50%"><font style="font-size:80%;">Copyright &copy; 2009. Tous droits réservés.</font></td><td width="50%" align="right"><font style="font-size:80%;">Mise à jour le vendredi 11 septembre 2009</font></td></tr></table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body></html>
<html>


Pour l'inscription.php :
<?php  

1. <?php
2. // on teste si le visiteur a soumis le formulaire
3. if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
4. // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
5. if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['motdepasse']) && !empty($_POST['motdepasse'])) && (isset($_POST['confirmezvotremotdepasse']) && !empty($_POST['confirmezvotremotdepasse']))) {
6. // on teste les deux mots de passe
7. if ($_POST['motdepasse'] != $_POST['confirmezvotremotdepasse']) {
8. $erreur = 'Les 2 mots de passe sont différents.';
9. }
10. else {
11. $base = mysql_connect ('localhost', 'user', 'mot_de_passe');
12. mysql_select_db ('nom', $base);
13.
14. // on recherche si ce login est déjà utilisé par un autre membre
15. $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
16. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
17. $data = mysql_fetch_array($req);
18.
19. if ($data[0] == 0) {
20. $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.(mysql_escape_string($_POST['motdepasse'])).'")';
21. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
22.
23. session_start();
24. $_SESSION['login'] = $_POST['login'];
25. header('Location: membre.php');
26. exit();
27. }
28. else {
29. $erreur = 'Un membre possède déjà ce login.';
30. }
31. }
32. }
33. else {
34. $erreur = 'Au moins un des champs est vide.';
35. }
36. }
37. ?>
38.<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
47.<?php if (isset($_POST['motdepasse'])) echo htmlentities(trim($_POST['motdepasse'])); ?>"><br />
48.<?php if (isset($_POST['confirmezvotremotdepasse'])) echo htmlentities(trim($_POST['confirmezvotremotdepasse'])); ?>"><br />
49.<?php
52. if (isset($erreur)) echo '<br />',$erreur;
53. ?>
?>


et pour la connexion.php :

<?php  <?php
2. // on teste si le visiteur a soumis le formulaire de connexion
3. if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
4. if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['motdepasse']) && !empty($_POST['motdepasse']))) {
5.
6. $base = mysql_connect ('localhost', 'user', 'mot_de_passe');
7. mysql_select_db ('nom', $base);
8.
9. // on teste si une entrée de la base contient ce couple login / pass
10. $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND motdepasse="'.(mysql_escape_string($_POST['motdepasse'])).'"';
11. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
12. $data = mysql_fetch_array($req);
13.
14. mysql_free_result($req);
15. mysql_close();
16.
17. // si on obtient une réponse, alors l'utilisateur est un membre
18. if ($data[0] == 1) {
19. session_start();
20. $_SESSION['login'] = $_POST['login'];
21. header('Location: membre.php');
22. exit();
23. }
24. // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
25. elseif ($data[0] == 0) {
26. $erreur = 'Compte non reconnu.';
27. }
28. // sinon, alors là, il y a un gros problème grave :)
29. else {
30. $erreur = 'Problème grave dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
31. }
32. }
33. else {
34. $erreur = 'Au moins un des champs est vide.';
35. }
36. }
37. ?>
38. <?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
47. <?php if (isset($_POST['motdepasse'])) echo htmlentities(trim($_POST['motdepasse'])); ?>"><br />
48.
50. <a href="inscription.php">Vous inscrire</a>
51. <?php
52. if (isset($erreur)) echo '<br /><br />',$erreur;
53. ?>
54.
?>


Bref, je ne sais pas pourquoi ça ne fonctionne pas. Pourriez-vous m'aider ? Je vous en remercie.
LA GLOBULE
le 12/09/2009 à 00:36
LA GLOBULE
Quand on a une page blanche, le premier truc à faire, c'est de tracer le script.
En effet, rares sont les miracles.

Ce que je veux dire, c'est que dans ce genre de cas, il faut tailler dans le lard, et personnellement, ce que je ferais à ta place, c'est que je modifierais mon inscription.php en virant tout le PHP et en y mettant juste un :

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


Si tu as toujours une page blanche, vérifie que ton serveur web gère bien le PHP comme langage.

Si oui, ben c'est tout simplement que ce n'est pas inscription.php qui se charge.
alexandryne
le 12/09/2009 à 09:17
alexandryne
Bonjour,

J'ai fait ce que tu m'as dit et en m'inscrivant et en tapant sur inscription, j'ai toujours une page blanche. Que faut-il faire ? Quand j'ai créé l'inscription.php, je suis allée dans le gestionnaire de fichiers, j'ai créé "inscription.php" et j'ai fait "modifier" et j'ai fait un copié-collé du code que j'avais dans Notepad. On peut faire comme ça ? Pour l'hébergeur, c'est "Mavenhosting" et il y a effectivement le php.Merci.
LA GLOBULE
le 12/09/2009 à 13:11
LA GLOBULE
Oublie ton formulaire.

Fais un simple fichier php avec juste un <?php phpinfo(); ?> dedans et affiche le.

Si tu as une page blanche, contacte ton hebergeur.
Sinon, ben vérifie bien que ton formulaire à l'action qui vaut bien inscription.php, vérifie que le fichier inscription.php existe bien sur le serveur, avec un bon chemin.
alexandryne
le 12/09/2009 à 13:50
alexandryne
Comme tu peux le constater dans la page html à la ligne 5, l'action est bien : inscription.php qui est dans le fichier "inscription1", et dans le gestionnaire de fichiers, dans le fichier "inscription1",donc à l'endroit où j'ai déjà "index.html", j'ai créé un fichier.php nommé "inscription.php" où j'ai copié-collé le code dedans. Je ne sais pas si j'ai mal fait. Quand je remplis le formulaire sur mon site, la page est blanche, j'ai juste le petit rectangle au-dessus avec le chemin : nom de mon site/inscription1/inscription.php. Ne faut-il pas un point d'interrogation après inscription.php ?

Hier, j'avais essayé de mettre dans inscription.php, tout le code php ainsi que le code html pour créer le formulaire, mais j'avais toujours le formulaire de l'éditeur de sites contenu dans la page index.html, mais pas de deuxième formulaire, celui que contenait ma page inscription.php. Normalement, ça aurait dû l'afficher dans mon site sur la même page, non ?

Pour faire le test, tu me dis de créer un fichier.php avec juste php info,je le crée dans ma page d'accueil du site, mais je dois mettre quelque chose entre php et php info et pour l'afficher, je fais juste un "echo" ? Je suis vraiment débutante en php et j'ai du mal à comprendre certaines choses. Désolée et merci.
LA GLOBULE
le 12/09/2009 à 13:52
LA GLOBULE
<?php
phpinfo();
?>


Juste ca.

Sinon, je n'ai pas trop compris ton dernier message. A priori, tu as l'air perdu, et tu ne comprends pas trop ce que tu fais ce qui n'est pas bon.

Il y aller progressivement dans l'apprentissage du PHP.
alexandryne
le 12/09/2009 à 15:40
alexandryne
Je suis effectivement un peu perdue, car au départ, j'ai fait tout le site par un éditeur de sites : lauyan toweb. Le problème est que lorsque j'ai fait le formulaire, ça passait par "outlook" quand je cliquais sur inscription. Chez toweb,ils m'ont dit que si je ne voulais pas que cette boîte apparaisse, il fallait que je passe par la fonction mail() de PHP ou que je fasse un script en php et d'indiquer le nom de mon script pour l'envoi de mon formulaire. Donc, j'ai décidé de me mettre au PHP pour que les données arrivent directement dans la base de données. Je me suis dit que je devais créer un fichier.php dans le gestionnaire de fichiers du Cpanel. Mais à première vue, ça ne fonctionne pas.

Pour php.info, j'ai créé le fichier.php dans la page d'accueil de mon site avec le code que tu m'as donné. Mais en fait, je ne sais pas trop ce que je dois faire après pour tester. Je sais que ça paraît idiot les questions que je pose, mais bon, quand on apprend quelque chose, ce qui paraît simple pour les uns, peut paraître difficile à comprendre pour les autres. Merci de ton aide.
LA GLOBULE
le 12/09/2009 à 16:34
LA GLOBULE
Ben lance l'url de ce fichier dans ton navigateur.

Et ce n'est pas php.info. C'est phpinfo(), une fonction de PHP.

Mais à mon avis, PHP fonctionne très bien, c'est juste que tu te emmeles les pinceaux. N'étant pas à coté de toi, je sais pas trop quoi te conseiller. En fait, je ne comprend pas ce que tu ne comprends pas et surtout je ne sais pas ce que tu ne connais pas en matière de web. Connais tu bien le fonctionnement d'un site web ? Le html, les requetes http, la réponse du serveur web, les url, etc... Si tu n'es pas familier avec tous ces termes, il est peut etre trop tot pour apprendre le PHP.
alexandryne
le 13/09/2009 à 16:10
alexandryne
Bonjour,

J'ai créé un fichier phpinfo.php dans l'accueil de mon site avec dedans le code de la fonction que tu m'as donné. Ensuite, je suis allée dans le navigateur orange où j'ai mis l'url de mon site avec le chemin à suivre pour arriver jusqu'à phpinfo.php : http://www.nomdemonsite.com/home/achat/public_html/accueil/phpinfo.php. J'espère que c'est cela qu'il fallait faire. J'ai eu une erreur 404 "not found" et c'est écrit en bas Apache at serveur + le nom de mon site et le port.
alexandryne
le 14/09/2009 à 10:55
alexandryne
Bonjour,

J'ai mis dans le navigateur http:/www.nomdemonsite.com/accueil/phpinfo.php et j'ai eu la page phpinfo. Par contre, j'ai fait la même chose avec le fichier :
<?php   1. <?php
2. echo 'pom';
3. exit;
4. ?>
?>

J'ai donc mis dans le navigateur http://www.nomdemonsite.com/accueil/fichier.php et là, j'obtiens une page blanche.

Faut-il regarder quelque chose dans le phpinfo qui pourrait indiquer pourquoi j'ai toujours des pages blanches ? Merci.
Répondre
LoadingChargement en cours