Page 1 sur 6

page blanche et base de donnée non completée

Posté : 25 mai 2012, 12:03
par florian003
Bonjour!
Je suis nouveau dans le PHP et nouveau sur ce site donc soyez indulgent.
mon but est de créer une page html capable d'enregistrer les informations tapées dans la base de donnée(easyPHP).
J'ai donc créer une page HTML simple et un formulaire.php
cependant lorsque j'envoi les informations que j'ai tapé, cela me dirige sur une page blanche sans erreurs et la base de donnée reste vide.
j'ai déjà regarder plusieurs tutoriel, forum sans trouver de réponse.
Si quelqu'un pouvait m'aider ce serait simpa! Merci d'avance.

page.HTML:

<html>
<form method="post" action="formulaire.php">
<center>
<p>
code du client <input type="text" name="CODE_CLIENT"><br>
nom du client <input type="text" name="NOM_CLIENT"><br>
code postal du client <input type="text" name="CODE_POSTAL"><br>
adresse du client <input type="text" name="ADD_CLIENT"><br>
ville du client <input type="text" name="VILLE_CLIENT"><br>
<input type="submit" value="Envoyer" name="envoyer">
</p>
</center>
</form>
</html>


formulaire.php:

<HTML><BODY>
<?php
if(isset($_POST['CODE_CLIENT']))
$CODE_CLIENT=$_POST['CODE_CLIENT'];
else
$CODE_CLIENT="";


if(isset($_POST['NOM_CLIENT']))
$NOM_CLIENT=$_POST['NOM_CLIENT'];
else
$NOM_CLIENT="";


if(isset($_POST['CODE_POSTAL']))
$CODE_POSTAL=$_POST['CODE_POSTAL'];
else
$CODE_POSTAL="";


if(isset($_POST['ADD_CLIENT']))
$ADD_CLIENT=$_POST['ADD_CLIENT'];
else
$ADD_CLIENT="";


if(isset($_POST['VILLE_CLIENT']))
$VILLE_CLIENT=$_POST['VILLE_CLIENT'];
else
$VILLE_CLIENT="";

$db = mysql_connect("localhost:3306", "root", '') or die('Erreur de connexion '.mysql_error());

mysql_select_db('db1',$db) or die('Erreur de selection '.mysql_error());

$sql = "INSERT INTO client( CODE_CLIENT, NOM_CLIENT, CODE_POSTAL, ADD_CLIENT, VILLE_CLIENT) VALUES('$CODE_CLIENT', '$NOM_CLIENT', '$CODE_POSTAL', '$ADD_CLIENT', '$VILLE_CLIENT')";

mysql_query($sql)

mysql_close();
}

?>
</BODY></HTML>

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 12:19
par xTG
Il te manque un point virgule après le mysql_query() donc erreur de syntaxe.
Actives l'affichage des erreurs dans le php.ini ou au moins regardes le fichier de log dans ces cas là. ;)

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 13:36
par florian003
Merci j'avais pas fait attention! mais a priori c'est pas ça.
comme je l'ai dit je m'y connai pas encore beaucoup en PHP. le fichier log en question c'est EasyPHP.log? il ne renseigne pas sur mon erreur apparemment. et le fichier ini est assez grand tu peux me dire ce que je dois modifier? j'ai regardé un peu et le peu que j'ai vu où était marqué "erreur" est en "ON".
et ça n'explique pas la page blanche :/

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 13:59
par Mazarini
Normal que la page soit vide, tu n'affiches rien dans ton script à part <html><body></body></html>.
Regarde le source de la page dans le navigateur, tu dois voir les balises ci-dessus.

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 14:04
par florian003
D'accord ! je n'étais pas sûr de ce que ça devait afficher donc j'ai préféré préciser ^^
Je m'y connais pas trop encore! Merci!
mais je ne comprends toujours pourquoi la base de donnée ne se remplit-elle pas..?

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 14:25
par florian003
Lorsque je lance le fichier php depuis easyphp directement, ça me rajoute une ligne vide dans ma table client. Ce qui me semble logique!
Le probleme ne viendrait donc pas du fichier php..?

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 14:27
par xTG
Pour vérifier qu'une erreur SQL ne se produit pas :
mysql_query($sql) or die(mysql_error());
Quand on injecte des variables dans une requête il faut toujours les échapper (les protéger), tu as pour cela la fonction mysq_real_escape_string().

Concernant la ligne dans le php.ini pour les erreurs c'est error_reporting et display_errors : http://fr2.php.net/manual/fr/errorfunc. ... -reporting

Concernant ta ligne vide, c'est que ton formulaire n'envoie aucune donnée. :)

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 14:54
par florian003
euh si j'ai bien compris ça donnerait ça:

mysql_query(mysql_real_escape_string($sql)) or die(mysql_error());

si j'ai bien compris ça protége ce qu'on insère dans la base de donnée..?
mon fichier php.ini a l'air bien configurer j'ai l'impression.
Donc.. je sais toujours pas ce que je dois faire :?

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 15:21
par moogli
Salut,

Non tu utilise mal cette fonction.
Il faut l'utiliser sur les variables que tu utilise dans la requête.

Donc
<?php
$truc = mysql_real_escape_string($truc);
$sql = 'select machin from chose  where truc=\''.$truc.'\';
?>
@+

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 15:36
par florian003
D'accord! Du coup.. est-ce correct à présent?
par exemple:
$CODE_CLIENT=mysql_real_escape_string($CODE_CLIENT);

Re: page blanche et base de donnée non completée

Posté : 25 mai 2012, 16:49
par xTG
Oui ton utilisation est correcte.
Pour le php.ini error_reporting doit être à E_ALL et display_errors à 1.

Re: page blanche et base de donnée non completée

Posté : 27 mai 2012, 10:22
par florian003
C'est écrit "E_ALL | E_script"
Un truc dans le genre.
et display est sur "on" par défaut.
Y a t-il une configuration spéciale pour faire des formulaires? du style une version d'EasyPHP spéciale ou quelque chose comme ça?

Re: page blanche et base de donnée non completée

Posté : 27 mai 2012, 10:45
par moogli
non.

si php fonction et que ta page est en .php y a pas de raison que tu n'y arrive pas.

ajoute un test sur le retour de mysql_query() pour voir s'il y aune erreur (si === false affiche le retour de mysql_error()).

ton code va toujours insérer une ligne même quand le formulaire n'est pas posté.

Ajout un test sur le post du formulaire avant utilisation du mysql_query().

@+

Re: page blanche et base de donnée non completée

Posté : 27 mai 2012, 14:34
par florian003
Quel genre de test je peux mettre avant mysql_query..?
Pour tester mysql_query ca devrait aller en revanche!
merci :)

Re: page blanche et base de donnée non completée

Posté : 27 mai 2012, 14:52
par xTG
On met généralement un test englobant tout le bloc de traitement du formulaire.
Et ce test c'est la réception des valeurs. :)
if( isSet($_POST['.....']) ){
  // données du formulaire reçues et à traiter
}