[RESOLU] Fonction dynamique et formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Fonction dynamique et formulaire

Re: Fonction dynamique et formulaire

par ionesco » 30 août 2013, 20:22

Merci Moogli.
Trop la loose. Et oui. Je n'ai pas tilté du tout!
Shame on me.
J'ai réussi à créer l'e-mail. J'aurais pu tourner en rond longtemps encore!
J'ai gagné un temps précieux.
J'ai modifié ma condition aussi
if($nom && $prenom) au lieu de  if(function_exists($nom))
J'ai déplacé le echo.
Cdlt,
Ionesco

Re: Fonction dynamique et formulaire

par moogli » 30 août 2013, 20:09

salut,


j'ai même pas regardé ton code :)

mail est une fonction native php et donc tu ne peux coder une fonction avec ce nom, pas plus qu'une fonction echo ou htmlentites ;)

dans ton bonheur si tu utilise php 5.3 ou plus il existe les espaces de noms ( ou namespaces) http://fr2.php.net/namespace

@+

Fonction dynamique et formulaire

par ionesco » 30 août 2013, 19:17

Bonjour,
J'essaie de rédiger une fonction qui me permettra de créer un e-mail à partir des champs d'un formulaire.
Ladite fonction a trois paramètres et doit retourner l'e-mail: function mail($nom,$prenom,$domain).
J'ai écrit ce code mais j'ai une erreur à laquelle je ne comprends absolument rien : Fatal error: Cannot redeclare mail()
J'éprouve quelques difficultés avec les fonctions, je commence tout juste.
A partir des champs, je souhaiterais générer automatiquement une adresse e-mail avec un nom de domaine particulier (pour un institut par ex).
Je ne sais pas où mettre le echo mail() et quels paramètres. J'ai besoin de récupérer les informations de l'utilisateur.
Mon code php qui se trouve sur la même page que mon form:
<?php 
function mail($nom,$prenom,$domain){
	if((isset($_POST['nom']) && $_POST['nom']!='') && $_POST['prenom']!=''){
		$nom=$_POST['nom'];
		$prenom=$_POST['prenom']; 
		$domain='nomInstitut.fr'; 
		if(function_exists($nom)){
			$email=$nom.'.'.$prenom.'@'.$domain; 
			return $email; 
		} else {
			echo "Remplissez les champs"; 
		}
	}
}
echo mail("nom","prenom","nomInstitut.fr");
?>
Mon formulaire :
<!DOCTYPE>
<html>
<body>
<form method="post" action="functionCreerMail.php">
Nom <input type="text" name="nom" value="<?=isset($_POST['nom']) ? $_POST['nom']:''?>"/><br>
Prénom <input type="text" name="prenom" value="<?=isset($_POST['prenom']) ? $_POST['prenom']:''?>"/><br>
<input type="submit" value="CreerMail">
</form>
</body>
</html>
Si quelqu'un a une petite idée de ce qui cloche, ce serait super.
Cdlt,
Ionesco