Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: piccola newsletter

  1. #1

    piccola newsletter

    Ragazzi mi potete dire perche quando arriva l'email mi arriva solo
    Newsletter!!! Oggetto: Messaggio: e quello che scrivo non lo visualizza
    praticamente non visualizza il messaggiotxt e oggettotxt
    come posso risolvere




    Codice PHP:

    <? 
    // mi collego al database 
    $host 'sql.xxxx.com'
    $dbuser 'xxxx'
    $dbpass 'xxxx'
    $dbname 'xxxx'
    $table 'news'
    $db = @mysql_connect($host,$dbuser,$dbpass) or die("error=could not connect to $host"); 
    $db mysql_select_db($dbname); 
    ?>
    <html>
    <head>
    <title>Newsletter</title>
    </head>
    <body bgcolor="#FFFFFF">
    <h1>Invia la newsletter</h1>
    <form action="" method="POST">



    <input name="oggettotxt" type="text" id="oggettotxt" style="background-color: white;" size="20" />
    oggetto
    </p>




    <textarea name="messaggiotxt" cols="50" rows="5" id="messaggiotxt" style="background-color: white;"></textarea>
    messaggio </p>





    <input name="submit" type="submit" style="background-color: cyan;" value="Invia" />
    </p>
    </form>



    <hr>

    <?
    $msg 
    .= "Oggetto: $oggettotxt\n\n";
    $msg .= "Messaggio: $messaggiotxt\n\n";
    //////////////////////////////
    $query "SELECT * FROM news WHERE email != ''";
    $result mysql_query($query);
    # ho usato != '' cioè diverso da vuoto
    # ora cicliamo i risultati trovati con while
    while($m mysql_fetch_array($result)){
    echo 
    $m['email'].'
    '
    ;
    mail($m['email'], $subject$msg"Newsletter!!!");


    ?>

  2. #2
    devi recuperare i dati tramite POST.....ex $_POST['variabile']
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  3. #3
    Ciao mr.click, e grazie per l'aiuto. Ho provato cosi ma mi escono sempre quelle 3 scritte.
    $_POST['$email']; oppure $_POST['$msg']; e anche $_POST['$messaggiotxt'];

    come dovrei risolvere, mi dai una mano, grazie

  4. #4
    chi mi puo aiutare

  5. #5
    prova a separare il codice del form dal codice che ti esegue lo script per l'invio della news letter....ex:
    form.php;
    invio_newsletter.php;

    e nell'action del form metti invio_newsletter.php


    poi recuperi sempre i dati tramite POST
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh ci sono alcune cose da dire

    innanzitutto controllare sempre la documentazione relativa alle funzioni usate :

    Funzione mail(...)

    Poi il messaggio lo carichi cosi0:


    $msg .= "Oggetto: $oggettotxt\n\n";
    $msg .= "Messaggio: $messaggiotxt\n\n";

    Ma non cofiguri da nessuna parte le variabili $oggettotxt ne $messaggiotxt. Per cui non contengono nulla.
    Tali variabili devi configurarle in base a dove si trovano i dati. Se li hai messi in form devi fare come ha detto mrclick ossi caricarli da $_POS/$_GET['nome_campo'].

    Inoltre non cofiguri nessn header per la mail e il messaggio arrivera' in plain text a patto che il ricevente lo accetti.

    TI consiglio vivamente di impostare un header per l'invio della mail.

    Eventualmente ti fai una funzione tipo

    Codice PHP:
    /*
    options => array delle opzioni

    addr -> destinatario
    sbj -> subject
    msg -> messaggio

    */
    function myMaileroptions )
    {
         
    $addr $options[addr];
         
    $sbj $options[sbj];
         
    $msg str_replace( array("\n") , array("
    ,  $options[msg] );

         
    /*Controllo base sintassi indirizzo mail inserito*/
         
    if( !filter_var($addrFILTER_VALIDATE_EMAIL) )
              return 
    false;

         
    // To send HTML mail, the Content-type header must be set
         
    $headers  'MIME-Version: 1.0' "\r\n";
         
    $headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

         
    // Additional headers
         
    $headers .= 'To:  $addr <$addr>' "\r\n";
         
    $headers .= 'From: NEWSLETTER <mydomain@example.com>' "\r\n";

         
    // Mail it
         
    if( @mail($addr$sbj$msg$headers))
              return 
    true;
         else
              return 
    false;


    poi puoi usare tale funzione per inviare le email a patto che carichi correttamente i dati.

    ad esempio poniamo caso che fai un form tipo

    <form name="newsletter" action="newsletter_sender.php" method="post">

    mail :<input type="text" name="mail">

    subject :<input type="text" name="sbj">

    message :<textarea name="msgl"></textarea>


    <input type="submit" value="Invia newsletter">

    </form>

    Nel php newsletter_sender.php farai

    Codice PHP:
    <?
    // mi collego al database
    $host 'sql.xxxx.com';
    $dbuser 'xxxx';
    $dbpass 'xxxx';
    $dbname 'xxxx';
    $table 'news';
    $db = @mysql_connect($host,$dbuser,$dbpass) or die("error=could not connect to $host");
    $db mysql_select_db($dbname);

    //////////////////////////////
    $query "SELECT * FROM news WHERE email != ''";
    $result mysql_query($query);

    $options =  array();
    while(
    $m mysql_fetch_array($result))
    {
         
    $options[addr] = $_POST[addr] ;
         
    $options[sbj] = $_POST[sbj]; 
         
    $options[msg] = $_POST[msg];

         echo 
    $m['email'].'
    '
    ;
         if(
    myMailer($options)) 
              echo 
    " Mail inviata ".$m[email]."
    "
    ;
         else
              echo 
    " Invio fallito ".$m[email]."
    "
    ;
    }
    ?>
    Con una cosa del genere poi inviare la mail ai avari destinatari con tanto di header etc etc

  7. #7
    Non cio capito niente, comunque grazie , mi sa che cancello tutto il sito

    comunque nel db ho una tabella news con id , nome, cognome, email, data, non ci riesco eppure sto studiando per capirci qualcosa. Purtroppo devono andare perforza in quella tabella.

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Non e' che ci sia molto da capire.

    Alla fine il codice di base lo hai la sopra devi solo metterti a provarlo.

    Alla fine ci sono 4 istruzioni da leggere e vedere come operano. Inoltre hai la gaestione a file separati che potrebbe spiazzare pero' deve diventare il tuo pane quotidiano se vuoi programmare bene in php. NOn puoi fare tutto su 1 file.

    alla fine devi fare qlke semplice operazione:

    1) Creare file html con form
    2) Creare script php per invio mail ( vedi mio post precedente )
    3) Collegare form a php tramite l'attributo "action" del form
    4) Caricare tutto in un web server
    5) Aprire la pagina e provare

  9. #9
    Ciao virus, ho rislto creando un pannello di amministrazione dove vengono agginte le email alla news ed eliminate, funziona tutto bene, a parte l'eliminazione di una singola email dalla lista, praticamente mi toglie tutte le email presenti nella tabella news del DB.

    nel db tengo la tabella news cosi' (id, nome,cognome, email, data) la tengo cosi perche la uso anche per la registrazione al sito(quindi chi si registra al sito invia i dati in due tabelle registrati e news.

    Questo e' il codice della pagina admin per le news
    Codice PHP:

    <?php
        
    require("config.php");  
      
      @
    mysql_connect($db_server,$db_user,$db_password) or die("Database server connection failed. Check variables \$db_server, \$db_user and \$db_password in config.php");
      @
    mysql_select_db($db_name) or die("Selecting database failed. Check variable \$db_name in config.php");
      
      
      echo 
    $header;
    ?>
    <h1><?php echo $title?> - Amministratore</h1>
    <hr>
    <?php 
      $pwd 
    $_GET["pwd"];

      
    //simple login
      
    if(isset($pwd) && ($pwd == $password)){
        
    $submit $_POST["submit"];
        
    $submit_newsletter $_POST["submit_newsletter"];
        
    $del $_GET["del"];
          
        
    //insert new address
        
    if(isset($submit)){
          
    $nome $_POST["nome"];
          
    $email $_POST["email"];
          
          @
    mysql_query("INSERT INTO  news (email, nome) VALUES ('$email','$nome');");
          
          
    //errore
          
    if(@mysql_error()){
            
    ?>

    Inserimento fallito: <?php echo @mysql_error(); ?></p>
        

    [url="javascript:history.back();"]Clicca qui per tornare indietro.[/url]</p><?php
          
    //successo
          
    }else{
            
    ?>

    Inserita con successo. [url="admin.php?pwd=<?php echo $pwd?>"]Clicca per continuare.[/url]</p><?php
          
    }
        
    //elimina
        
    }else if(isset($del)){
          @
    mysql_query("DELETE FROM  $news  WHERE id=$del;");
          
          
    //errore
          
    if(@mysql_error()){
            
    ?>

    Eliminazione non riuscita: <?php echo @mysql_error(); ?></p>
        

    [url="javascript:history.back();"]Clicca qui per tornare indietro.[/url]</p><?php
          
    //successo
          
    }else{
            
    ?>

    Eliminata con successo. [url="admin.php?pwd=<?php echo $pwd?>"]Clicca per continuare.[/url]</p><?php
          
    }
        
    //invia la newsletter
        
    }else if(isset($submit_newsletter)){
          
    $sent 0;
          
    $result = @mysql_query("SELECT nome,email FROM  news  ORDER BY email ASC;");
          
    $subject $_POST["subject"];
          
    $message $_POST["message"];
          
          
    ?>

    Email inviata a ...</p>
          <ul><?php
          
          
    //invia email 1 ad 1
          
    while($row=@mysql_fetch_array($result)){
            
    $nome $row["nome"];
            
    $email $row["email"];
        
            
    ?>[*]<?php echo $nome?> (<?php echo $email?>) ... <?php

            
    if(@mail($email,$subject,$message,"From: $admin <$admin>\n")){
              
    ?>sent<?php
              $sent
    ++;
            }else{
              
    ?>failed<?php
        
    }
        
        
    ?><?php
          
    }
          
          
    ?>[/list]
          

    [b]<?php echo $sent?>Email inviata.[/b] [url="admin.php?pwd=<?php echo $pwd?>"]Clicca qui per continuare.[/url]</p><?php
        
    //print forms
        
    }else{
           
    ?><h2>Invia newsletter</h2>
           <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?pwd=<?php echo $pwd?>">
             <table>
               <tr>
                 <td>Oggetto:</td>
                 <td><input type="text" name="subject" class="fixedwidth"></td>
               </tr>
               <tr>
                 <td valign="top">Messaggio:</td>
                 <td><textarea name="message" cols="60" rows="20" class="fixedwidth"><?php echo $signature?></textarea></td>
               </tr>
               <tr>
                 <td></td>
                 <td><input type="submit" name="submit_newsletter" value="Send"></td>
               </tr>
             </table>
           </form>

           <h2>Aggiungi un email</h2>
           <form action="<?php echo $_SERVER["PHP_SELF"]; ?>?pwd=<?php echo $pwd?>" method="post">
             <table>
               <tr>
                 <td>Nome:</td>
                 <td><input type="text" name="nome" value="" maxlength="255"></td>
               </tr>
               <tr>
                 <td>Email:</td>
                 <td><input type="text" name="email" value="" maxlength="255"></td>
               </tr>
               <tr>
                 <td></td>
                 <td><input type="submit" name="submit" value="Submit"></td>
               </tr>
             </table>
           </form>

           <h2>Indirizzo email</h2>
           <table cellpadding="5" cellspacing="2">
             <tr class="header">
               <td>[b]Nome[/b]</td>
               <td>[b]indirizzo email[/b]</td>
               <td></td>
             </tr>
             <?php
               $result 
    = @mysql_query("SELECT * FROM  news  ORDER BY email ASC;");
           
    $colored false;

               while(
    $row=@mysql_fetch_array($result)){
                 
    $colored = !$colored;
                 
    ?><tr<?php if($colored){ ?> class="colored"<?php ?>>
                   <td width="200"><?php echo $row["nome"]; ?></td>
                   <td width="200"><?php echo $row["email"]; ?></td>
                   <td>[url="<?php echo $_SERVER["]?pwd=<?php echo $pwd; ?>&del=<?php echo $row["id"]; ?>">rimuovi[/url]</td>
                 </
    tr><?php
           
    }
             
    ?>
           </table>
           <?php
        
    }
      }else{
        
    //print login form
        
    echo $login;
      }
      
      
    //print link to news
      
    ?><p align="right">[url="index.php"]Newsletter[/url]</p><?php
      
      
    //print footer
      
    echo $footer;

      
    //close database connection
      
    @mysql_close();
    ?>
    dopo ti scrivo quello della index

  10. #10
    e questo e il codice per la pagina index.php

    Codice PHP:

    <?php
      
    //carico il config
      
    require("config.php");
      
      
    //stampo l'header
      
    echo $header;
    ?>

    <h1><?php echo $title?></h1>
    <hr>
    <?php  
      
    //form 
      
    if(isset($_POST["submit"])){
        
    //connessione al database
        
    @mysql_connect($db_server,$db_user,$db_password) or die("Database server connection failed. Check variables \$db_server, \$db_user and \$db_password in config.php");
        @
    mysql_select_db($db_name) or die("Selecting database failed. Check variable \$db_name in config.php");

        
    $nome $_POST["nome"];
        
    $email $_POST["email"];
        
        
    //iscrizione
        
    if($_POST["action"]=="subscribe"){
          
    //verifico la lunghezza del nome
          
    if(strlen($nome)<3){
            
    ?>
    <p align="center" class="Stile1">Il nome deve essere almeno di 3 caratteri</p>
    <?php
          
    //verifico l'email se esiste gia
          
    }else if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email)){
            
    ?><p align="center" class="Stile1">Email non valida.</p>
    <?php
          
    //l'email e gia esistente
          
    }else if(@mysql_num_rows(@mysql_query("SELECT id FROM  news  WHERE email='$email';"))){
            
    ?><p align="center" class="Stile1">Email gia' esistente.</p>
    <?php
          
    //inserisco i dati nome e email nella tabella news
          
    }else{
            @
    mysql_query("INSERT INTO  news (email, nome) VALUES ('$email','$nome');");

            
    //se mi dai errore
            
    if(@mysql_error()){
              
    ?><p align="center" class="Stile1">Errore. riprova dopo.</p>
    <?php
            
    //allora tutto bene
            
    }else{
              
    ?><p align="center" class="Stile1">Iscrizzione avvenuta.</p>
    <?php
            
    }
          }
        
    //cancello i dati dal database
        
    }else{
         
          @
    mysql_query("DELETE FROM $news WHERE email='$email';");
          
    //errore
          
    if(@mysql_error()){
            
    ?><p align="center" class="Stile1">Errore. Riprova dopo.</p>
    <?php
         
          
    }else if(@mysql_affected_rows()==0){
            
    ?><p align="center" class="Stile1">Email non inserita.</p>
    <?php
          
          
    }else{
            
    ?><p align="center" class="Stile1">Cancellata con successo!</p>
    <?php
          
    }
        }
      }
    ?>
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
      <table>
        <tr>
          <td> Nome:</td>
          <td><input type="text" name="nome" value="" maxlength="255"></td>
        </tr>
        <tr>
          <td>Email:</td>
          <td><input type="text" name="email" value="" maxlength="255"></td>
        </tr>
        <tr>
          <td></td>
          <td><input type="radio" name="action" value="subscribe" id="action_subscribe" checked> <label for="action_subscribe">Iscrivimi</label><input type="radio" name="action" value="unsubscribe" id="action_unsubscribe"> <label for="action_unsubscribe">Cancellami</label></td>
        </tr>
        <tr>
          <td></td>
          <td><input type="submit" name="submit" value="Submit"></td>
        </tr>
      </table>
    </form>
    <p align="right">[url="admin.php"]Amministratore[/url]</p>
    <?php
      
      
    echo $footer;

      
    //chiudo la connessione al database
      
    @mysql_close();
    ?>

    grazie per l'aiuto Virus

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.