Aiuto Gestione di un form iscrizione a numero chiuso

anton

Nuovo Utente
16 Lug 2012
27
0
1
Nuovo del forum e qindi un salve a tutti.
Premetto la mia scrsissima conoscenza del codice PHP, il problema, devo realizzare un form che invia i dati immessi ad un indirizzo mail che preveda però un numero chiuso di iscritti e che quindi una volta arrivati al numero massimo la submit non spedisca la mail con i dati ma apra una pagina info con le date del nuovo inizio iscrizioni, qui nasce il problema. Il codice che utilizzo per il formmail è il seguente:
PHP:
<?php
   function ValidateEmail($email)
   {
      $pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';
      return preg_match($pattern, $email);
   }

   if($_SERVER['REQUEST_METHOD'] == 'POST')
   {
      $mailto = '[email protected]';
      $mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;
      $subject = 'Contact Information';
      $message = 'Values submitted from web site form:';
      $success_url = '';
      $error_url = '';
      $error = '';
      $autoresponder_from = '[email protected]';
      $autoresponder_subject = 'grazie';
      $autoresponder_message = 'grazie grazie';
      $eol = "\n";
      $max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000;
      $boundary = md5(uniqid(time()));

      $header  = 'From: '.$mailfrom.$eol;
      $header .= 'Reply-To: '.$mailfrom.$eol;
      $header .= 'MIME-Version: 1.0'.$eol;
      $header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;
      $header .= 'X-Mailer: PHP v'.phpversion().$eol;
      if (!ValidateEmail($mailfrom))
      {
         $error .= "The specified email address is invalid!\n<br>";
      }

      if (!empty($error))
      {
         $errorcode = file_get_contents($error_url);
         $replace = "##error##";
         $errorcode = str_replace($replace, $error, $errorcode);
         echo $errorcode;
         exit;
      }

      $internalfields = array ("submit", "reset", "send", "captcha_code");
      $message .= $eol;
      $message .= "IP Address : ";
      $message .= $_SERVER['REMOTE_ADDR'];
      $message .= $eol;
      foreach ($_POST as $key => $value)
      {
         if (!in_array(strtolower($key), $internalfields))
         {
            if (!is_array($value))
            {
               $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;
            }
            else
            {
               $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
            }
         }
      }

      $body  = 'This is a multi-part message in MIME format.'.$eol.$eol;
      $body .= '--'.$boundary.$eol;
      $body .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;
      $body .= 'Content-Transfer-Encoding: 8bit'.$eol;
      $body .= $eol.stripslashes($message).$eol;
      if (!empty($_FILES))
      {
          foreach ($_FILES as $key => $value)
          {
             if ($_FILES[$key]['error'] == 0 && $_FILES[$key]['size'] <= $max_filesize)
             {
                $body .= '--'.$boundary.$eol;
                $body .= 'Content-Type: '.$_FILES[$key]['type'].'; name='.$_FILES[$key]['name'].$eol;
                $body .= 'Content-Transfer-Encoding: base64'.$eol;
                $body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol;
                $body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol;
             }
         }
      }
      $body .= '--'.$boundary.'--'.$eol;
      mail($mailto, $subject, $body, $header);
      $autoresponder_header  = 'From: '.$autoresponder_from.$eol;
      $autoresponder_header .= 'Reply-To: '.$autoresponder_from.$eol;
      $autoresponder_header .= 'MIME-Version: 1.0'.$eol;
      $autoresponder_header .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;
      $autoresponder_header .= 'Content-Transfer-Encoding: 8bit'.$eol;
      $autoresponder_header .= 'X-Mailer: PHP v'.phpversion().$eol;
      mail($mailfrom, $autoresponder_subject, $autoresponder_message, $autoresponder_header);
      header('Location: '.$success_url);
      exit;
   }
?>

Qualcuno può suggerirmi come e dove inserire un contatore per avere il risultato di cui sopra?
Grazie
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per prima cosa: quando scrivi del codice racchiudile negli appositi tag altrimenti si lege male (seconda riga di formattazione del post ultime tre iconcine, nell'ordine CODE HTML PHP).
poi da quello che scrivi di voler fare mi sembra che tu dabba avere un db, altrimenti lo script non può ricordarsi quanti hanno scritto.
 

anton

Nuovo Utente
16 Lug 2012
27
0
1
Mi scuso per l'errore se c'è modo di rimediare ti prego di suggerirmelo, riguardo al db posso crearlo, il sito che sto realizzando per mia figlia non è ancora in linea
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Dunque, qui bisogna affrontare discorso in maniera un po' più ampia.

Innanzitutto io non mi sentirei per niente a mio agio manipolando i dati degli utenti per email: l'email per può non arrivare per problemi tecnici oppure può essere cancellata per sbaglio (e tu perderesti un utente e impediresti a quello successivo di iscriversi).

Il database, invece, ti fornisce un responso immediato (saprai subito se la registrazione è andata a buon fine), e ha potenzialità infinite: potresti creare, per esempio, un pannello di controllo da cui manipolare i dati. Inoltre, come ha detto borgo, con un database puoi facilmente limitare le iscrizioni.

Per questi e per mille altri motivi dovresti usare un database; trattandosi di un'infrastruttura semplice consiglio MySQL.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Premettendo che se il problema fosse solo il contatore potresti creare anche un file di testo e salvarti il valore per poi aggiornarlo ogni volta che c'è una nuova iscrizione.
Ti consiglio di salvarti tutti gli indirizzi e-mail degli utenti che si sono iscritti e hanno confermato l'iscrizione, quindi ti serve un db per comodità e velocità. Puoi risalire al numero di utenti che si sono iscritti facendo una semplice query.
 
Discussioni simili
Autore Titolo Forum Risposte Data
K aiuto su gestione casella select del form + php + mysql PHP 0
P [PHP] Aiuto per gestione file CSV PHP 24
M Aiuto visualizzazione e gestione dati XML XML 6
Z aiuto database gestione automezzi Database 1
M aiuto gestione file audio flash Flash 1
A Aiuto per gestione sito per ragazzi disabili [era:aiuto] Altri Annunci 1
S Scipt gestione utenti [Era: Aiuto!] Discussioni Varie 0
L **Aiuto gestione sito per associazione Classic ASP 1
E Aiuto per query PHP 8
R Aiuto ripristino sito web Presentati al Forum 0
L Aiuto con DataGridView Visual Basic 1
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
D aiuto funzioni javascript Javascript 1
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
D Aiuto CSS in ELEMENTOR - Cambiare un testo CMS (Content Management System) 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
K Aiuto con file audio in html HTML e CSS 1
G Script notifiche dekstop aiuto Javascript 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
M Un aiuto da chi ha apple Mac e Software 0
P Richiesta di aiuto Presentati al Forum 1
A Aiuto per pagina php PHP 0
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
I Aiuto php Dependent Lookup PHP 0
R Aiuto con le query MS Access 2
M AIUTO ESERCIZIO JAVA Javascript 1
G Aiuto con htaccess e rewriterule PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
M Aiuto con inserimento immagini WordPress 6
D aiuto schermata photoshop Photoshop 0
L Aiuto per programma web php/mySQL PHP 2
A Aiuto php colore diverso PHP 10
L Aiuto creazione menu mancante WordPress 0
C Aiuto compiuto scuola PHP/MySQL PHP 2
G Insert into select - Aiuto MySQL 0
I Aiuto bash linux Programmazione 1
F Aiuto java script Javascript 2
R Cerco aiuto Offerte e Richieste di Lavoro e/o Collaborazione 7
I Aiuto query MySQL 8
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
motleyrulez Aiuto con un ciclo PHP 0
R Aiuto sito html Offerte e Richieste di Lavoro e/o Collaborazione 3
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
G Mi dite come faccio? Aiuto photoshop ? Photoshop 1
C prestashop paragamento contrassegno aiuto modulo E-Commerce 0
Michelebozzo [PHP] Rimuovere pubblicazione nome pagina ... aiuto! PHP 7
Caldus richiesta aiuto Mac e Software 0
R [Javascript] Aiuto su questo script Javascript 2

Discussioni simili