bonjour a tous
comme vous el savez je ne suis pas un champion de la programmation
je souhaiterais ajouter un petit plus a mon site
c'est donc un bouton pour une newsletter
Pour l'instant j'ai un code fonctionnel avec une pop up
Lorsque l'utilisateur arrive sur mon site la pop up s'ouvre et il peux s'inscrire a la newsletter
il y a des messages de prévu
par exemple si l email existe déjà entre autre
Je remarque que pas mal d'utilisateur par reflexe ferme ce pop up par habitude
j'ai donc décide d'utiliser et modifier un peu le code existant pour ajouter une case sur ma page d accueil ou l'utilisateur pourra s'abonner
Le bouton s 'affiche bien mais la la gestion des erreurs ne s effectue pas
c'est surement une bêtise de code , le détail du détail
voici donc le morceau de code pour afficher la boite afin de rentrer l adresse mail
et l'affichage des erreurs (a mon avis l affichage des erreurs ne devraient pas ce trouver la ...)
voici donc index-test.php
Code : Tout sélectionner
<div class="card-defaut text-center" style="height:100%; ">
<div class="card-block">
<div class="card h-100">
<div class="login-form">
<?php
if(isset($_GET['reg_err'])) {
$err = htmlspecialchars($_GET['reg_err']);
switch($err) {
case 'success':
?>
<div class="alert alert-success">
<strong>Succès</strong> inscription réussie !
<strong>
<a href="connexion-site.php" target="_blank">A présent connectes toi ici</a>
</strong>
</div>
<?php
break;
case 'email':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Email non valide
</div>
<?php
break;
case 'email_length':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Email trop long
</div>
<?php
break;
case 'pseudo_length':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Compte déjà existant
</div>
<?php
}
}
?>
<div class="container">
<form action="traitement-neuw-page-index.php" method="post">
<div class="row">
<div class="col-sm">
<p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" >
Bonjour
</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<input type="email" name="email" class="form-control" placeholder="Email" value="<?php echo $_SESSION['email'];?>" autocomplete="off" style="text-align:center;margin-bottom:10px;">
</div>
</div>
<div class="row">
<div class="col-sm">
<p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" >
Abonne-toi pour ne rater aucun nouvel évènement
</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<button type="submit" class="button" style= "font-size: 40px;text-align:center;" >Inscription</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
et ma page traitement-neuw-page-index.php
Code : Tout sélectionner
session_start();
?>
<?php
require_once 'base.php';
if (!empty($_POST['email']))
{
$email = htmlspecialchars($_POST['email']);
$check = $bdd->prepare('SELECT email FROM neuw WHERE email = ?');
$check->execute(array(
$email
));
$data = $check->fetch();
$row = $check->rowCount();
if ($row == 0)
{
if (strlen($email) <= 100)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
$cost = ['cost' => 12];
$ip = $_SERVER['REMOTE_ADDR'];
$insert = $bdd->prepare('INSERT INTO neuw( email) VALUES(:email)');
$insert->execute(array(
'email' => $email,
));
//traitement de l envois par mail
setlocale (LC_TIME, 'fr_FR.utf8','fra');
date_default_timezone_set('Europe/Brussels');
$date1 = date('d-m-Y H:i:s'); // Date du jour
// on entre un ou Plusieurs destinataires
$to = '[email protected]'; // notez la virgule
// Sujet
$subject= "NOUVEL ABONNE NEUWSLLETER ";
// message
$message =
'
<html>
<head>
<title>un nouveau membre vient de s inscrire </title>
</head>
<body>
<table>
<tr>
<td>son pseudo est </td><td>'.$email .'</td></br>
</tr>
<tr>
<td>date</td><td>'.$date1 .'</td></br>
</tr>
</table>
</body>
</html> ';
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'content-type: text/html; charset=utf-8';
// En-têtes additionnels
//$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n";
$headers[] = 'From: '.$email."\r\n".
'Reply-To: '.$name."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Envoi
//var_dump($headers);
if(mail($to, $subject, $message, implode("\r\n", $headers))){
// success message
//echo "Success!<br />";
}else{
// error message
//echo "Fail<br />";
}
header('Location:redirection-inscription-neuw.php?reg_err=success');
die();
}
else
{
header('Location: https://phil.pecheperle.be/index-test.php?reg_err=email');
die();
}
}
else
{
header('Location: https://phil.pecheperle.be/index-test.php?reg_err=email_length');
die();
}
}
else
{
header('Location: https://phil.pecheperle.be/index-test.php?reg_err=already');
die();
}
}
bonjour a tous
comme vous el savez je ne suis pas un champion de la programmation
je souhaiterais ajouter un petit plus a mon site
c'est donc un bouton pour une newsletter
Pour l'instant j'ai un code fonctionnel avec une pop up
Lorsque l'utilisateur arrive sur mon site la pop up s'ouvre et il peux s'inscrire a la newsletter
il y a des messages de prévu
par exemple si l email existe déjà entre autre
Je remarque que pas mal d'utilisateur par reflexe ferme ce pop up par habitude
j'ai donc décide d'utiliser et modifier un peu le code existant pour ajouter une case sur ma page d accueil ou l'utilisateur pourra s'abonner
Le bouton s 'affiche bien mais la la gestion des erreurs ne s effectue pas
c'est surement une bêtise de code , le détail du détail
voici donc le morceau de code pour afficher la boite afin de rentrer l adresse mail
et l'affichage des erreurs (a mon avis l affichage des erreurs ne devraient pas ce trouver la ...)
voici donc index-test.php
[code]<div class="card-defaut text-center" style="height:100%; ">
<div class="card-block">
<div class="card h-100">
<div class="login-form">
<?php
if(isset($_GET['reg_err'])) {
$err = htmlspecialchars($_GET['reg_err']);
switch($err) {
case 'success':
?>
<div class="alert alert-success">
<strong>Succès</strong> inscription réussie !
<strong>
<a href="connexion-site.php" target="_blank">A présent connectes toi ici</a>
</strong>
</div>
<?php
break;
case 'email':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Email non valide
</div>
<?php
break;
case 'email_length':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Email trop long
</div>
<?php
break;
case 'pseudo_length':
?>
<div class="alert alert-danger">
<strong>Erreur</strong> Compte déjà existant
</div>
<?php
}
}
?>
<div class="container">
<form action="traitement-neuw-page-index.php" method="post">
<div class="row">
<div class="col-sm">
<p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" >
Bonjour
</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<input type="email" name="email" class="form-control" placeholder="Email" value="<?php echo $_SESSION['email'];?>" autocomplete="off" style="text-align:center;margin-bottom:10px;">
</div>
</div>
<div class="row">
<div class="col-sm">
<p class="card-text" style ="font-size: 20px;text-align:center;margin-bottom:10px;" >
Abonne-toi pour ne rater aucun nouvel évènement
</p>
</div>
</div>
<div class="row">
<div class="col-sm">
<button type="submit" class="button" style= "font-size: 40px;text-align:center;" >Inscription</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>[/code]
et ma page traitement-neuw-page-index.php
[code]
session_start();
?>
<?php
require_once 'base.php';
if (!empty($_POST['email']))
{
$email = htmlspecialchars($_POST['email']);
$check = $bdd->prepare('SELECT email FROM neuw WHERE email = ?');
$check->execute(array(
$email
));
$data = $check->fetch();
$row = $check->rowCount();
if ($row == 0)
{
if (strlen($email) <= 100)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
$cost = ['cost' => 12];
$ip = $_SERVER['REMOTE_ADDR'];
$insert = $bdd->prepare('INSERT INTO neuw( email) VALUES(:email)');
$insert->execute(array(
'email' => $email,
));
//traitement de l envois par mail
setlocale (LC_TIME, 'fr_FR.utf8','fra');
date_default_timezone_set('Europe/Brussels');
$date1 = date('d-m-Y H:i:s'); // Date du jour
// on entre un ou Plusieurs destinataires
$to = '
[email protected]'; // notez la virgule
// Sujet
$subject= "NOUVEL ABONNE NEUWSLLETER ";
// message
$message =
'
<html>
<head>
<title>un nouveau membre vient de s inscrire </title>
</head>
<body>
<table>
<tr>
<td>son pseudo est </td><td>'.$email .'</td></br>
</tr>
<tr>
<td>date</td><td>'.$date1 .'</td></br>
</tr>
</table>
</body>
</html> ';
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'content-type: text/html; charset=utf-8';
// En-têtes additionnels
//$headers[] = "From: " . $name . "<". $_POST["email"] .">\r\n";
$headers[] = 'From: '.$email."\r\n".
'Reply-To: '.$name."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Envoi
//var_dump($headers);
if(mail($to, $subject, $message, implode("\r\n", $headers))){
// success message
//echo "Success!<br />";
}else{
// error message
//echo "Fail<br />";
}
header('Location:redirection-inscription-neuw.php?reg_err=success');
die();
}
else
{
header('Location: https://phil.pecheperle.be/index-test.php?reg_err=email');
die();
}
}
else
{
header('Location: https://phil.pecheperle.be/index-test.php?reg_err=email_length');
die();
}
}
else
{
header('Location: https://phil.pecheperle.be/index-test.php?reg_err=already');
die();
}
}[/code]