Php ma function ne test pas les valeurs

parvn Messages postés 58 Statut Membre -  
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Il y 'a un autre probleme qui m'embette, j'ai lempression que ma function create_entry que voici:

function create_entry($name,$location,$email,$url,$comments){
$errmsg = "";
if(empty($name)){
$errmsg .= "<li>you have to put in a name!n";
}
if (empty($email)){
$errmsg .="<li>insert an email pleasen";
}
else {
$query = "select * from guestbook where email = '$email'";
$result = safe_query($query);
if(mysql_num_rows($result) > 0) {
$errmsg .="<li>this email has already sign this guestbook.n";
}
}
if (empty($errmsg)){
$query = "insert into guestbook"
."(name,location,email,url,comments) values "
."('$name','$location','$email','$url','$comments')";
$result = mysql_query($query);

?>
<h2>Thanks!!</h2>
<h2><a href="view.php">View Arly's Guest Book!!!</a></h2>
<?php

}
else{
echo "operation failedn";
}

}
?>

quand j'utilise $errmsg="<li>you have.......n" et if(empty($errmsg)){.....

une fois que les valeures sont submit... via le code sign.php, n'execute pas les operations de verification si le
$name a bien etait introduite ou si le $email existe deja il sort directement et viens a else pour m'aficher operation failed.
aucune errore ne m'est affiche.

voici sign.php
<?php
include "connection.php";
include ("usefulfunc.php");
$page_title = "Sign My Guest Book!!";
include "start_pag.php";

if(!empty($_POST['test'])){
$errmsg = create_entry($_POST['name'], $_POST['location'], $_POST['email'] , $_POST['url'] , $_POST['comments']);
if (empty($errmsg))
{
include "end_pag.php";
exit;
}
}
?>

<form method=POST>
<table>
<?php

print_input_fields("name","location","email","url");
?>
<tr>
<td valign=top align=rigth><b>Comments:</b></td>
<td valign=top align=left><textarea name=comments cols=40 rows=4></textarea></td>
</tr>

</table>
<input type=submit name=submit value="Sign!">
<input type=reset name=reset value="Start Over">
<input type='hidden' name='test' value="ok" />
</form>


Merci d'avance pour l'aide
A voir également:

3 réponses

le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Si ta fonction "fonctionne" je me t des guillemet pourquoi?

Car tu appelles biens ta focntion, fait bien les test dessus, mais c'est ton formulaire qui na vas pas. tu ne lui met aucune action rajout la propriété action="sign.php" et vois ce que cela donne.

Autre chose aussi, qui risque de te posé problème, dans ta page sign.php tu appelles ta fonction create en mettant $errmsg= create..., PHP va donc attendre un retour d'information se qui peut posé problème vu que ta fonction ne renvois rien.

Et encore autre chose, je vais peut être dire une bétise mais es-tu sur que l'on puisse mettre du code HTML dans une fonction en php comme tu la fais?
0
parvn Messages postés 58 Statut Membre
 
Je ne suis qu'un debutant mais Oui je croie que on peux mettre du code HTML dans une fonction en php, le code se trouve dans le livre que j'utilise intitule: Mysql/Php Database application . et la preuve apres avoir ajoute un return $errmsg; comme tu me l'a suggere et fais quelque retouche dans mon code cela marche parfaitement.
Merci.
0
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Mais de rien, tu viens même de m'apprendre quelque chose car je ne savait pas qu'on pouvait mettre du code html brut dans une fonction php.
0