Page blanche apres validation de formulaire

Eléphanteau du PHP | 11 Messages

08 mai 2006, 13:41

Salut !
Bon j'ai un problème qui m'est déjà arrivait il y a pas très longtemps que j'avais résolue mais comment ? je men souviet plus :lol: (embetant)

Donc voilà j'ai un formulaire et je veut en récuperer les champs pour faire une mise a jour d'une ligne dans une table de ma base mysql.
Le probleme est que quand je valide le formulaire je tombe sur une page blanche sans rien dedans.

Voilà le code que j'ai fait. Je suis debutant alors je c'est peut etre moche :wink:
<?php
if($p=='post'){
$new_nom = $_POST['nom'];
$new_mail = $_POST['mail']; 
$new_footer = $_POST['footer'];
$new_perdu = $_POST['perdu']; 

if(empty($new_nom) OR empty($new_mail) OR empty($new_footer) OR empty($new_perdu)){echo 'Aucun champs ne doit être vide, veuillez compléter le formulaire.';}
else {
$sql = 'UPDATE `config` SET `titre` = \'$new_nom\', `mail` = \'$new_mail\', `footer` = \'$new_footer\', `perdu` = \'$new_perdu\' WHERE `cle` = 1';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo 'Modifications validées !';
}
}

else{
$req=mysql_query("select titre,mail,footer,perdu from config");
$valeur_nom=mysql_result($req,0,"titre");
$valeur_mail=mysql_result($req,0,"mail");
$valeur_footer=mysql_result($req,0,"footer");
$valeur_perdu=mysql_result($req,0,"perdu");

echo '<table align="center" cellpadding="0" cellspacing="0" border="0" width="590">
<form method="post" action="pages.php?nom=admin&p=post">
<td valign="top">Nom du site:</td>
<td valign="top"><input type="text" name="nom" size="83" maxlength="200" value="'.$valeur_nom.'"></td>
<tr>
<td valign="top">E-mail:</td>
<td valign="top"><input type="text" name="mail" size="83" maxlength="250" value="'.$valeur_mail.'"></td>
<tr>
<td valign="top">Footer:</td>
<td valign="top"><textarea rows="8" name="footer" cols="80" value="'.$valeur_footer.'"></textarea></td>
<tr>
<td valign="top">Perdu:</td>
<td valign="top"><input type="text" name="mail" size="83" maxlength="200" value="'.$valeur_perdu.'"></td>
<tr>
<td colspan="2" align="center"><input type="submit" value="Valider"></td>
</form>
</table>';
}
?>
Qu'est ce qui cloche ?

Merci :roll:
nairolf287 ...

Mammouth du PHP | 19672 Messages

08 mai 2006, 13:57

Comment récupères-tu la valeur de $p au juste ? il manque l'initialisation de cette variable, tu ne crois pas ? Tu as oublié que le register_globals est probablement à OFF :arrow: ajoute donc ceci en début de code:
$p = isset($_GET['p']) ? $_GET['p'] : "";
Après seulement tu veux vérifier si :
if($p == 'post')
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 11 Messages

08 mai 2006, 14:39

D'habitude ca les trouve tout seul les variables qui sont dans la barre d'adresse mais ca doit pas etre efficace a 100% :? .

Donc j'ai repris toutes mes sous pages ou il est question de variables comme celle ci et je les ai definies et maintenant ca me mais le message comme quoi un champs est vide. Je vais essayer de les afficher a la fin du code pour voir ou est le bleme. :arrow:
nairolf287 ...

Eléphanteau du PHP | 11 Messages

08 mai 2006, 14:44

le l'erreur venait du fait qu'il y avait 2 fois un champs nommé mail.
Maintenant ca marche, merci ! :wink:
nairolf287 ...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 16:14

D'habitude ca les trouve tout seul les variables qui sont dans la barre d'adresse mais ca doit pas etre efficace a 100% :?
ça dépend surtout de la valeur du register_globals , s'il est à ON ne permet pas de récupérer les variables comme tu l'as fait. Il faut donc passer par les super globales POST ou GET (par exemple)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

08 mai 2006, 17:34

hum hum... "S'il est à OFF" ne permet pas de récupérer etc... (et non à ON où il le permet)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 18:09

Ah mon anglais qui me fait défaut :^o

Tu fait bien de me corriger :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute