Newsletter ::: encore une fois

3 posts in this topic

Posted · Report post

Bonjour a tous et toutes

Je vous rassure tout de suite j'ai bien parcouru le forum pour avoir des infos sur l'exploitation de la newsletter...

Je suis sous Peel shopping et j'ai installé Wanewsletter.

J'ai fait les modifs préconisées par Patrice Ruault et par Attila

Resultat, j'ai bien les adresse mail qui s'enregistrent dans la base WAnewsletter (WA_abonnés)

J'ai bien crée les 2 listes....

Dans la partie admin de la news par contre je n'ai aucun enregistrement par rapport aux listes que ca soit default-list, newsletter, ou commercial....

il semble que je ne puisse recuperer les adresses lorsque j'appele une liste...

Alors j'ai du louper qq chose... mais quoi?

Merci a vous de jeter un oeil sur mon prob.

Cordialement

Share this post


: post
Share on other sites

Posted · Report post

Bonjour a tous et toutes

Je vous rassure tout de suite j'ai bien parcouru le forum pour avoir des infos sur l'exploitation de la newsletter...

Je suis sous Peel shopping et j'ai installé Wanewsletter.

J'ai fait les modifs préconisées par Patrice Ruault et par Attila

Resultat, j'ai bien les adresse mail qui s'enregistrent dans la base WAnewsletter (WA_abonnés)

J'ai bien crée les 2 listes....

Dans la partie admin de la news par contre je n'ai aucun enregistrement par rapport aux listes que ca soit default-list, newsletter, ou commercial....

il semble que je ne puisse recuperer les adresses lorsque j'appele une liste...

Alors j'ai du louper qq chose... mais quoi?

Merci a vous de jeter un oeil sur mon prob.

Cordialement

Et si vous publiez vos codes sources, ce serait peut être plus facile de vous répondre

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Patrice

ca risque de faire une sacré page....

donc en premier, la page lib/fonctions/fonctions.php

Le changement préconisé par...Vous meme...J'ai pas tout mis le code, il y a 2245 lignes... mais le changement je l'ai mis en tete de page

<?php

function generate_key($num_char = 32, $use_uniqid = true)

{

if( $use_uniqid == true )

{

srand((double) microtime() * 1000000);

$rand_str = md5(uniqid(rand()));

}

else

{

$rand_str = md5(microtime());

}


return ( $num_char >= 32 ) ? $rand_str : substr($rand_str, 0, $num_char);

}


function server_info($name)

{

	$name = strtoupper($name);


	return ( !empty($_SERVER[$name]) ) ? $_SERVER[$name] : ( ( !empty($_ENV[$name]) ) ? $_ENV[$name] : '' );

}


function est_identifie() {

/* Retourne true si l'utilisateur des identifie */


	return isset($_SESSION)

		&& isset($_SESSION['utilisateur'])

		&& !empty($_SESSION['utilisateur']['email'])

		&& vb($_SESSION['url']) == $_SERVER['HTTP_HOST'];


}




function necessite_identification() {


global $repertoire_modele;


	global $wwwroot;


	if (!est_identifie()) {


		?>


		<html>

		<head>

		<title>Privil&egrave;ges Non accord&eacute;s</title>

		</head>

		<style>

		h1 { font-family: Tahoma, Arial, sans-serif; font-size: 13px; font-weight: bold; color: #CC0000; }

		</style>


		<body bgcolor=#ffffff link=#0000ff vlink=#000099 alink=#ff0000>


		<h1 align=center>Vous n'avez pas les autorisations n&eacute;cessaires pour acc&eacute;der &agrave; l'administration du site.

		<p></p>Ins&eacute;rer votre identifiant et votre mot de passe.

		<a href="<?=$wwwroot?>/index.php">Cliquez ici pour revenir &agrave; la boutique</a>
Ensuite j'ai fait la modification dans la page utilisateurs/enregistrement.php (page complete)
<?


include ("../configuration.inc.php");


if (sizeof($_POST) > 0) {


	$frm = $_POST;


	$message_erreur = valide_form($frm, $erreurs);


	if (empty($message_erreur)) {


		insere_utilisateur($frm);


		$DOC_TITLE = "[PEEL.FR]";


		if ($_SESSION['caddie']->compte_elements() > 0)  {


				if (empty($_SESSION['caddie']->zone) || empty($_SESSION['caddie']->type)) {


					header("Location:$wwwroot/achat/caddie_affichage.php");


				} else {


					header("Location:$wwwroot/achat/achat_maintenant.php");


				}


			} else {


			include($repertoire_modele."/haut.php");


				afficher_enregistrement_succes();


			include($repertoire_modele."/bas.php");


			}




		die;

	}

}


$DOC_TITLE = "[PEEL.FR]";


include($repertoire_modele."/haut.php");


if (!empty($message_erreur)) {


	echo "<font class='normal' style='color: #ff0000'>".MSG_ERR_FORM."</font>";


}


if (!empty($noticemsg)) {


	echo "<div class=notice>";


	echo $noticemsg;


	echo "</div>";


}


include($repertoire_modele."/enregistrement.php");


include($repertoire_modele."/bas.php");


/******************************************************************************

 * FONCTIONS

 *****************************************************************************/


function valide_form(&$frm, &$erreurs) {

/* Valide le formulaire d'inscription et renvoie &eacute;ventuellement un message d'erreur */


	$erreurs = array();

	$msg = array();


	if (empty($frm['mot_passe'])) {

		$erreurs['mot_passe'] = true;

		$msg['mot_passe'] = stripslashes(MSG_ERR_PASSWORD);


	} 


	if (empty($frm['prenom'])) {

		$erreurs['prenom'] = true;

		$msg['prenom'] = stripslashes(MSG_ERR_FIRSTNAME);


	} 


	if (empty($frm['nom_famille'])) {

		$erreurs['nom_famille'] = true;

		$msg['nom_famille'] = stripslashes(MSG_ERR_NAME);


	} 


	if (empty($frm['email'])) {

		$erreurs['email'] = true;

		$msg['email'] = stripslashes(MSG_ERR_EMAIL);

	}

	elseif (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$frm['email'])) {

		$erreurs['email'] = true;

		$msg['email'] = stripslashes(ERR_EMAIL_BAD);

	}


	elseif  ((mysql_num_rows(mysql_query("SELECT 1 FROM peel_utilisateurs WHERE email = '".$frm['email']."'")) > 0)

) {

		$erreurs['email'] = true;

		$msg['email'] = stripslashes(ERR_EMAIL_STILL);


	} 


	if (empty($frm['telephone'])) {

		$erreurs['telephone'] = true;

		$msg['telephone'] = stripslashes(MSG_ERR_TEL);


	} 


	if (empty($frm['adresse'])) {

		$erreurs['adresse'] = true;

		$msg['adresse'] = stripslashes(MSG_ERR_ADDRESS);


	} 


	if (empty($frm['code_postal'])) {

		$erreurs['code_postal'] = true;

		$msg['code_postal'] = stripslashes(MSG_ERR_ZIP);


	} 


	if (empty($frm['ville'])) {

		$erreurs['ville'] = true;

		$msg['ville'] = stripslashes(MSG_ERR_TOWN);


	} 


	return $msg;

}


function insere_utilisateur(&$frm) {

	global $support;

	$mot_passe_bak = trim(htmlspecialchars($_POST['mot_passe']));

	$mot_passe = md5($frm['mot_passe']);

	$newsletter = valide($frm['newsletter']);

	$commercial = valide($frm['commercial']);

	$naissance = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['naissance']);  


	$sql = "

	INSERT INTO peel_utilisateurs (

		email

		, mot_passe

		, priv

		, civilite

		, prenom

		, nom_famille

		, societe

		, naissance

		, telephone

		, portable

		, adresse

		, code_postal

		, ville

		, pays

		, date_insert

		, date_update

	) VALUES (

		'".strtolower(htmlspecialchars($frm['email'], ENT_QUOTES))."'

		,'$mot_passe'

		,'util'

		,'".vb($frm['civilite'])."'

		,'".strtoupper(htmlspecialchars($frm['prenom'], ENT_QUOTES))."'

		,'".strtoupper(htmlspecialchars($frm['nom_famille'], ENT_QUOTES))."'

		,'".strtoupper(htmlspecialchars($frm['societe'], ENT_QUOTES))."'

		,'$naissance'

		 ,'".$frm['telephone']."'

		,'".$frm['portable']."'

		,'".htmlspecialchars($frm['adresse'], ENT_QUOTES)."'

		 ,'".$frm['code_postal']."'

		,'".htmlspecialchars($frm['ville'], ENT_QUOTES)."'

		,'".htmlspecialchars($frm['pays'], ENT_QUOTES)."'

		, now()

		, now()

	)";


	/* Ajoute le nouvel utilisateur &agrave; la base */

	$qid = mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());

	if ($frm['newsletter'] == "1")

{


mysql_query("

INSERT INTO wa_abonnes (

abo_email, abo_status, abo_lang

) VALUES (

'$frm[email]'

,'1'

, 'francais'

)");


$aboid = mysql_insert_id();


$generate_key = generate_key(20, false);


$current_time = time();


mysql_query("

INSERT INTO wa_abo_liste (

abo_id, liste_id, format, send, register_key, register_date, confirmed

) VALUES (

'$aboid'

,'1'

,'1'

,'0'

, '$generate_key'

, '$current_time'

, '1'

)")

or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


}

	$clientid = mysql_insert_id();


	$code_client = "CLT".date("Y").$clientid;


	mysql_query("UPDATE peel_utilisateurs SET code_client = '".$code_client."' WHERE id_utilisateur = '".$clientid."'");


	# Envoi du mot de passe par mail

		$mailSujet = SUBJECT_ACCOUNT_EMAIL." : ".


		$mailObjet = OBJECT_ACCOUNT_EMAIL;

		$mailObjet .= IDENTIFIANT_EMAIL." : ".$frm['email'];

		$mailObjet .= IDENTIFIANT_PASSWORD." : ".$frm['mot_passe'];

		$mailObjet .= IDENTIFIANT_CLIENT." : ".$code_client;


		mail($frm['email'],$mailSujet,$mailObjet,"From:$support");


		$utilisateur = verifier_authentification(trim(htmlspecialchars(strtolower($frm['email']))), $frm['mot_passe']);


		if ($utilisateur) {


		$_SESSION['utilisateur'] = $utilisateur;


		$sqlProfil = "SELECT id FROM peel_profil WHERE priv = '".$_SESSION['utilisateur']['priv']."'";


		$resProfil = mysql_query($sqlProfil) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


		$Profil = mysql_fetch_object($resProfil);


		$profilId = $Profil->id;


		$_SESSION["ip"] = $_SERVER['REMOTE_ADDR'];		


		$_SESSION["url"] = $_SERVER['HTTP_HOST'];	


		}

}




function afficher_enregistrement_succes() {

GLOBAL $frm, $wwwroot;

?>

<h2><?php echo HELLO; ?> <?php echo html_entity_decode($frm['prenom'])?></h2>


<p><?php echo nl2br(MSG_LOGIN_OK);?></p>


<p><?php echo EMAIL;?> : <b><?=$frm['email']?></b></p>

<p><?php echo PASSWORD;?> : <b><?=stripslashes($frm['mot_passe']) ?></b></p>


<?

}

?>
et pour finir, j'ai fait la modification de la page utilisateurs/change_params.php (page complete)
<?

include("../configuration.inc.php");

necessite_identification();


/* Le formulaire a &eacute;t&eacute; soumis, v&eacute;rifie si les infos de l'utilisateur sont correctes */

if (sizeof($_POST) > 0) {


	$frm = $_POST;


	$message_erreur = valide_form($frm, $erreurs);


	if (empty($message_erreur)) {


		update_settings($frm);


		$noticemsg = MSG_CHANGE_PARAMS;

	}


} else {


	$frm = load_user_profile();


}


$DOC_TITLE = "[PEEL.FR]";


include("$repertoire_modele/haut.php");


if (empty($noticemsg)) {


		include("$repertoire_modele/change_param_form.php");


} else {


	echo "<div class=normal>";


	echo $noticemsg;


	echo "</div>";


	echo nl2br(stripslashes(MSG_CHANGE_PARAMS_OK));


}


include("$repertoire_modele/bas.php");


/******************************************************************************

 * FONCTIONS

 *****************************************************************************/


function load_user_profile() {

/* Chargement des d&eacute;tails de l'utilisateur */


	$qid = mysql_query("SELECT * FROM peel_utilisateurs WHERE id_utilisateur = '".intval($_SESSION['utilisateur']['id_utilisateur'])."'");


	return mysql_fetch_array($qid);

}


function valide_form(&$frm, &$erreurs) {

/* Valide le formulaire d'oubli de mot de passe, et renvoie &eacute;ventuellement un message 

 * d'erreur */




	$erreurs = array();

	$msg = "";


	if (empty($frm["telephone"])) {

		$erreurs["telephone"] = true;

		$msg .= nl2br(stripslashes(MSG_ERR_TEL));


	} elseif (empty($frm["prenom"])) {

		$erreurs["prenom"] = true;

		$msg .= nl2br(stripslashes(MSG_ERR_FIRSTNAME));


	} elseif (empty($frm["nom_famille"])) {

		$erreurs["nom_famille"] = true;

		$msg .= nl2br(stripslashes(MSG_ERR_NAME));


	} elseif (empty($frm["adresse"])) {

		$erreurs["adresse"] = true;

		$msg .= nl2br(stripslashes(MSG_ERR_ADDRESS));

	} 


	elseif (empty($frm["code_postal"])) {

		$erreurs["code_postal"] = true;

		$msg .= nl2br(stripslashes(MSG_ERR_ZIP));

	} 


	elseif (empty($frm["ville"])) {

		$erreurs["ville"] = true;

		$msg .= nl2br(stripslashes(MSG_ERR_TOWN));

	} 


	return $msg;


}


function update_settings(&$frm) {

/* Enregistre les nouveaux param&egrave;tres */

	$naissance = ereg_replace('^([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})$','\\3-\\2-\\1', $frm['naissance']);  

	$newsletter = valide($frm["newsletter"]);

	$commercial = valide($frm["commercial"]);

	$sql = "

	UPDATE peel_utilisateurs SET

		civilite = '".addslashes(vb($frm['civilite']))."'

		,prenom = '".strtoupper(htmlspecialchars($frm['prenom'], ENT_QUOTES))."'

		,nom_famille = '".strtoupper(htmlspecialchars($frm['nom_famille'], ENT_QUOTES))."'

		,societe = '".strtoupper(htmlspecialchars($frm['societe'], ENT_QUOTES))."'

		,telephone = '".addslashes($frm['telephone'])."'

		,fax = '".addslashes($frm['fax'])."'

		,portable = '".addslashes($frm['portable'])."'

		,adresse = '".htmlspecialchars($frm['adresse'], ENT_QUOTES)."'

		,code_postal = '".addslashes($frm['code_postal'])."'

		,ville = '".htmlspecialchars($frm['ville'], ENT_QUOTES)."'

		,pays = '".intval($frm['pays'])."'

		,naissance = '".addslashes($naissance)."'		

		,date_update = now()

	WHERE id_utilisateur = '".intval($frm['id_utilisateur'])."'

	";


	$qid = mysql_query($sql);


	//on teste si l'utilisateur existe dans wa...

$frm = load_user_profile();

$sql2="SELECT abo_id FROM wa_abonnes WHERE abo_email='$frm[email]'";

$testAbboNews=mysql_query($sql2);

$frm2=mysql_fetch_array($testAbboNews);

$AbboNews=$frm2['abo_id'];

if ($testAbboNews!='')

{

$testAbboNewsletter=mysql_fetch_array(mysql_query("SELECT abo_id FROM

wa_abo_liste WHERE abo_id='".$AbboNews."' AND liste_id='2'"));

$testAbboComm=mysql_fetch_array(mysql_query("SELECT abo_id FROM

wa_abo_liste WHERE abo_id='".$AbboNews."' AND liste_id='3'"));


//si newsletter passe à 0 alors que 1 avant..

if ($frm[newsletter]=='0' AND $testAbboNewsletter!='')

{

mysql_query("DELETE FROM wa_abo_liste WHERE abo_id='".$AbboNews."'

AND liste_id='2'");

}


//si newsletter passe à 1 alors que 0 avant..

if ($frm[newsletter]=='1' AND $testAbboNewsletter=='')

{

$generate_key = generate_key(20, false);


$current_time = time();


mysql_query("

INSERT INTO wa_abo_liste (

abo_id, liste_id, format, send, register_key, register_date, confirmed

) VALUES (

'".$AbboNews."'

,'2'

,'1'

,'0'

, '$generate_key'

, '$current_time'

, '1'

)")

or DIE('Une erreur de connexion à la base s est produite ' .

__LINE__ . '.<p>' . MYSQL_ERROR());

}


//si commercial passe à 0 alors que 1 avant..

if ($frm[commercial]=='0' AND $testAbboComm!='')

{

mysql_query("DELETE FROM wa_abo_liste WHERE abo_id='".$AbboNews."'

AND liste_id='3'");

}


//si commercial passe à 1 alors que 0 avant..

if ($frm[commercial]=='1' AND $testAbboComm=='')

{

$generate_key = generate_key(20, false);


$current_time = time();


mysql_query("

INSERT INTO wa_abo_liste (

abo_id, liste_id, format, send, register_key, register_date, confirmed

) VALUES (

'".$AbboNews."'

,'3'

,'1'

,'0'

, '$generate_key'

, '$current_time'

, '1'

)")

or DIE('Une erreur de connexion à la base s est produite ' .

__LINE__ . '.<p>' . MYSQL_ERROR());

}

}



	$_SESSION['utilisateur']['pays'] = $frm['pays']; 

}

?>

Voilà les changements que j'ai trouvé dans le forum, et qui, je le repete, fonctionnent pour la recupération des adresses mail dans WA, mais qui ne fonctionne pas à l'appel des listes crées dans WA comme si les enregistrements ne s'etaient pas fait....

Merci encore Patrice

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping