Php ma function ne test pas les valeurs

Fermé
parvn Messages postés 49 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 7 mai 2012 - 7 août 2009 à 11:27
le_joker_fou Messages postés 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 - 7 août 2009 à 15:48
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 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
7 août 2009 à 11:35
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 49 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 7 mai 2012
7 août 2009 à 14:26
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 764 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 7 août 2014 239
7 août 2009 à 15:48
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