Newsletter: formulaire d'inscription et envoi. htmlarea et source 22457

Soyez le premier à donner votre avis sur cette source.

Vue 20 880 fois - Téléchargée 2 885 fois

Description

Inscription et désinscription à la newsletter.
avec affichage du nombre d'inscrits, partie admin.
vérification des champs, et des doublons,
et verification champ mail, et email de confirmation en option.
Personnalisation et envoi de newsletter avec htmlarea.
presque complete, j'attend vos suggestions.

merci aux auteurs des sources :
www.phpcs.com/code.aspx?id=22457 de romalafrite
www.phpcs.com/code.aspx?ID=22503 de minta
www.phpcs.com/code.aspx?ID=26383 de redfo1
et mavounet.

bientot gestion de pieces jointes...

Source / Exemple :


bouts de code :

// desinscription
if (isset($_GET['maildes']) && isset($_GET['pseudes']) ) {//en cas de clic dans la newsletter
	$maildes=$_GET['maildes'];
	$pseudes=$_GET['pseudes'];
	mysql_select_db($sql_bdd, $dbprotect) or die("Unable to select database");
	$resultat = mysql_query("SELECT * FROM newsletter2 WHERE courriel = '$maildes' AND pseud = '$pseudes'"); 
	if(false!=($ligne = mysql_fetch_array ($resultat))){// Si l'e-mail est dans la base
		$query = "UPDATE `newsletter2` SET `privilege`='desinsc' WHERE courriel='$maildes' AND pseud='$pseudes' LIMIT 1";
		mysql_query($query);
		header("Location:inscription.php?delete=ok");
	}	
}

// ------ AFFICHAGE DU NOMBRE D'INSCRINTS --------
$nb=0;
mysql_select_db($sql_bdd, $dbprotect);
$query_users = "SELECT * FROM newsletter2 WHERE `privilege` = 'user' ORDER BY id ASC"; // renvoi les données triées(par id croissant)
$users = mysql_query($query_users, $dbprotect) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);
do { $nb++; }
while ($row_users = mysql_fetch_assoc($users));
  ?>
<p align="center"> <?php echo "$nb"; ?> inscrit<?php if ( $nb!=0 && $nb!=1 ) echo 's'; ?> à la newsletter </p>

// finalement on definit la fonction de l'analyse de base de donnéés
function administration($pseudov,$email)
	{
	require("configuration/config[1].inc.php");
	mysql_select_db($sql_bdd, $dbprotect);
	$verif_query=sprintf("SELECT * FROM newsletter2 WHERE courriel='$email' AND pseud='$pseudov'"); // requête
	$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
	$row_verif = mysql_fetch_assoc($verif);
	$utilisateur = mysql_num_rows($verif);
	if ($utilisateur) {	// On test s'il y a un utilisateur correspondant
	    session_register("authentification"); // enregistrement de la session
		
		// déclaration des variables de session
		$_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur
		$_SESSION['pseud'] = $row_verif['pseud'];
		$_SESSION['courriel'] = $row_verif['courriel'];
		return TRUE;
	}
	else {
	return FALSE;
	}
	}

Conclusion :


donnez vos commentaires et aussi une note. merci.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

lorenzo16000
Messages postés
24
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
29 septembre 2011

Je souhaiterais par ailleurs afficher uniquement les inscrit avec le ['privilege'] = 'user'
pour envoyer une newsletter uniquement au inscris car par exemple j'ai désinscris la seule adresse mail que j'avais rentrer dans la BDD en temps que "user" et elle était quand-même afficher dans la liste des <option> des inscris, résultat quand j'ai voulu envoyer une newsletter, j'ai eu l'erreur suivante:

Warning: Division by zero in /homez.361/nom_du_domaine/www/prive/newsletters/edition.php on line 785

Warning: Division by zero in /homez.361/nom_du_domaine/www/prive/newsletters/edition.php on line 786

les lignes corresponds à :

*******************************************************************
(785) $succes_pourc= ($succes_nb / $i ) * 100;
(786) $echec_pourc= ($nope_nb / $i ) * 100;
*******************************************************************

La ligne de code pour que je puisse afficher uniquement les inscrit de ma newsletter, serais de modifier ce code :

*******************************************************************
<select name="suppr" size="10" class="textform" id="select2">
<?php
do {
?>
<option value="<?php echo $row_users['id']?>">
<?php echo $row_users['courriel']; ?>
</option>
<?php
} while ($row_users = mysql_fetch_assoc($users));
$rows = mysql_num_rows($users);
if($rows > 0) { mysql_data_seek($users, 0);
$row_users = mysql_fetch_assoc($users);
}
?>
</select>
*******************************************************************

Merci de me dire le code à modifier ou à rajouter...
lorenzo16000
Messages postés
24
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
29 septembre 2011

la ligne 72 correspond dans ce code a cette ligne :

$result=mysql_query($requete);
lorenzo16000
Messages postés
24
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
29 septembre 2011

Bonjour, j'ai un souci de warning.

Warning: mysql_query() expects parameter 1 to be string, resource given in /homez.361/nom_du_site/www/test/news2.php on line 72

le problème de la ligne ici :

$newsletter=isset($_POST['newsletter'])?$_POST['newsletter']:"";
$sujet=isset($_POST['sujet'])?$_POST['sujet']:"Newsletter";
$send=isset($_POST['send'])?$_POST['send']:"";

$query="SELECT * FROM newsletter2 WHERE `privilege` = 'user'";
$requete=mysql_db_query($sql_bdd,$query,$db_link) or die(mysql_error());
$result=mysql_query($requete);
$num_rows = mysql_num_rows($requete);
for($i=0;$i<$num_rows;$i++){
$id=mysql_result($requete,$i,"id");
$courriel=mysql_result($requete,$i,"courriel");
$date=mysql_result($requete,$i,"date");

$courriels.=$courriel.";";
cs_ReMs3007
Messages postés
4
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
9 novembre 2009

J'ai fait ce que tu m'as conseillé mais je reçois un mail contenant pleins de caractères mais pas de PDF :(
cs_ReMs3007
Messages postés
4
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
9 novembre 2009

Un grand Merci CHRIXXX,

Je vois çà et je te tiens au courant :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.