Page 1 sur 1

script inscription à une Newsletter (Pb en local)

Posté : 10 avr. 2008, 21:34
par stakanof
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>




Posté : 18 mai 2008, 15:55
par stakanof
Le principal c'est que ça marche sur le site;

Posté : 18 mai 2008, 23:45
par Sékiltoyai
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.

Posté : 19 mai 2008, 07:38
par orgerix
regarde ce qui se passe si tu enlève le @ devant le file_get _content()

Peut être que ca affichera une erreur.

Posté : 19 mai 2008, 08:35
par Sékiltoyai
Je pense que justement le problème est qu'une erreur s'affiche déjà en fait…