Vous n'êtes pas identifié(e).
[25 janvier 2021] - Publication de Wanewsletter 3.1.0
Pages : 1
Bonjour,
je souhaiterais savoir les lignes de commande pour inserer un inscrits dans la table wa_abonnes, sans passer par le formulaire. (pour qu'il ne recoive pas de mail d'inscription)
J'ai un formaulaire de contact, propre a mon site, et je souhaite enregistrer automatiquement mon champ $mail dans wanews... avec un truc du genre INSERT SQL.
merci
Alban
Hors ligne
Bon ca yé, jai réussi un intégrer le script de Padawa (sur le forum de puis quelques temps).
/*
* Génère le register_key pour l'inscription à la newsletter.
* Code de wanewsletter
*/
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);
}
/*
* Gestion de l'utilisateur dans wanewsletter.
*/
function setWaUser($pseudo, $mail, $format, $action){
// Selon l'action on manage l'utilisateur ou on le supprime.
if ( $action == "manage" ){
// On vérifie si le mail est déja dans la base.
// Au passage on en profite pour récupérer le abo_id qui sera utile pour l'update.
$query_user = "SELECT abo_id FROM wa_abonnes WHERE abo_pseudo LIKE '".$pseudo."' AND abo_email LIKE '".$mail."'";
$exe_query_user = mysql_query ( $query_user );
$row_query_user = mysql_fetch_row ( $exe_query_user );
if ( $row_query_user[0] > 0 ){
// Si l'email existe on fait un update des valeurs dans la table wa_abo_liste.
$query_up = "UPDATE wa_abo_liste SET format = ".$format.", register_date = ".time()." WHERE abo_id = ".$row_query_user[0]." LIMIT 1";
$exe_query_up = mysql_query ( $query_up );
}else{
// L'email n'existe pas donc on cré l'utilisateur.
// tout d'abord dans la table wa_abonnes.
$query_abo = "INSERT INTO wa_abonnes (abo_pseudo, abo_email, abo_status) VALUES ('".$pseudo."', '".$mail."', 1)";
$exe_query_abo = mysql_query ( $query_abo );
// Comme le champ abo_id n'est pas auto_incrementé il faut lui attribué le même manuellement.
$id_abo = mysql_insert_id ();
// et ont insert dans la base wa_abo_liste.
$query_liste = "INSERT INTO wa_abo_liste (abo_id, liste_id, format, register_key, register_date, confirmed) VALUES (".$id_abo.", 2, ".$format.", '".generate_key()."', ".time().", 1)";
$exe_query_liste = mysql_query ( $query_liste );
}
}elseif ( $action == "delete" ){
// L'utilisateur veut etre supprimer. On récupère sont abo_id.
$query_user = "SELECT abo_id FROM wa_abonnes WHERE abo_pseudo LIKE '".$pseudo."' AND abo_email LIKE '".$mail."'";
$exe_query_user = mysql_query ( $query_user );
$row_query_user = mysql_fetch_row ( $exe_query_user );
// On commence par la table wa_abo_liste.
$query_del_list = "DELETE FROM wa_abo_liste WHERE abo_id = ".$row_query_user[0]." LIMIT 1";
$exe_query_del_list = mysql_query ( $query_del_list );
// Et on termine par la table wa_abonnes.
$query_del_abo = "DELETE FROM wa_abonnes WHERE abo_id = ".$row_query_user[0]." LIMIT 1";
$exe_query_del_abo = mysql_query ( $query_del_abo );
}
}
En revanche, dans mon formulaire, j'ai un champ email (qui s'inscrit correctement), et un menu déroulant $champ13 qui renvoi 1 pour une inscription en liste 1 ou qui renvoi 3 pour une inscription en liste 3.
J'ai donc tenter un truc du genre
if ($champ13 == "3"){
$query_liste = "INSERT INTO wa_abo_liste (abo_id, liste_id, format, register_key, register_date, confirmed) VALUES (".$id_abo.", 3, ".$format.", '".generate_key(20)."', ".time().", 1)";
}elseif ($champ13 == "1"){
$query_liste = "INSERT INTO wa_abo_liste (abo_id, liste_id, format, register_key, register_date, confirmed) VALUES (".$id_abo.", 1, ".$format.", '".generate_key(20)."', ".time().", 1)";
}
$exe_query_liste = mysql_query ( $query_liste );
}
sur la ligne de code de padawa correspondant à la table LIST...
... et ca ne fonctionne pas... comment faire, estce possible? estce une faute de frappe? de code ?
Merci de m'éclairer.
Alban
Hors ligne
Pages : 1