script inscription à une Newsletter (Pb en local)

Eléphant du PHP | 86 Messages

10 avr. 2008, 21:34

Bonsoir,

Voici le code d'un script que j'avais étudié lors d'une formation PHP, qui permet de s'inscrire à une newsletter, le nom et l'email est alors ajouté à un fichier texte.

En local j'utilise MAMP donc sur mac (je suis en php5)
dans les formulaires s'affiche <br />, alors que lorsque j'essaie le script sur free.fr, il n'y a pas ses
<br /> Quelqu'un a t'il une explication ?

<?php
//pour n'avoir qu'un seul endroit où modifier le fichier
define('NEWSLETTER_FILE', 'newsletter.txt');
$message='';
/* *******************
inscription
********************* */
    if(isset($_POST['inscri']))
    {
			if ($_POST['nom'] != '' AND $_POST['email'] != '')
			{
					$nom = stripslashes($_POST['nom']);
					$email = stripslashes($_POST['email']);
					
					/*verification des doublons*/
					$newsletter = @file_get_contents(NEWSLETTER_FILE);
					
					//Recherche de l'adresse e-mail dans la chaîne du fichier
					if (ereg($email,$newsletter) == 1)
					{
							$message = 'cette adresse existe déja';
							unset($_POST['email']);//pour ne pas la réafficher dans le form
						   
					}
					else
					{
							//écriture dans le fichier
							$ligne = $nom.'|'.$email."\r\n";
							file_put_contents(NEWSLETTER_FILE,$ligne,FILE_APPEND);
							$message = 'inscription effectuée';
							//pour empêcher le réaffichage des champs
							unset($_POST);
					}
			}
			else
			{
			$message = 'merci de remplir tous les champs';
			}
	}
	
?>

<body>
<h1>Inscription</h1>

	<form method="post"  action="?" >
	<label>Nom : </label><input type="text" name="nom" value="<?php echo $_POST['nom']; ?>" />
	<br>
	<label>e-mail : </label><input type="text" name="email" value="<?php echo $_POST['email']; ?>" />
	<br>
	<input type="submit" name="inscri" value="Je m'inscris à la Newsletter" />
	</form>

<?php echo $message; ?>

</body>
</html>




Eléphant du PHP | 86 Messages

18 mai 2008, 15:55

Le principal c'est que ça marche sur le site;

ViPHP
ViPHP | 5924 Messages

18 mai 2008, 23:45

Ah, j'ai zappé ta question. On peut peut être apporter une explication, il faut savoir que free a une configuration de loin plus permissive que la config de base sur OS X. Il est fort probable que tu aies une erreur dans le script qui ne pose pas de problèmes sur free.
Pour identifier le problème et donc améliorer le script (de manière à ce qu'il soit plus propre et plus sûr), je t'invite pour commencer à poster le code HTML (c'est à dire après exécution, tu peux avoir ce code en visionnant la source HTML du site) généré sur free et sur ton serveur local pour pouvoir comparer. Personnellement je pense que tu as des erreurs notice à cause de la manière dont tu utilises les $_POST dans ton formulaire.

Mammouth du PHP | 693 Messages

19 mai 2008, 07:38

regarde ce qui se passe si tu enlève le @ devant le file_get _content()

Peut être que ca affichera une erreur.

ViPHP
ViPHP | 5924 Messages

19 mai 2008, 08:35

Je pense que justement le problème est qu'une erreur s'affiche déjà en fait…