Annonce

#1 2007-09-22 14:55:01

alban
Membre
Inscription : 2007-09-22
Messages : 3

Re : Script d'inscription

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

#2 2007-09-24 11:24:21

alban
Membre
Inscription : 2007-09-22
Messages : 3

Re : Script d'inscription

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

Pied de page des forums