Get it on Google Play

PHP: formulari per registrar mails.

26-05-2006
 

Acabo de fer un sistema de registre per a capturar mails des d’un miniformulari. Aquest petit script fa servir tècniques de AJAX i valida una direcció de mail.

Per un cantó tenim el codi que va a la pàgina:

<script language=”JavaScript” type=”text/JavaScript”>
                            
    function sendRegister() {
        var ob=document.getElementById(“registre”);
        var s=ob.value;
        var filter=/^[A-Za-z][A-Za-z0-9_]*@
[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
                                
        if (!filter.test(s) || s.length == 0) {
                alert(“Mail incorrecto / Incorrect mail: “+s);
            } else {
   cDoc(“saveRegistre.php”mail=”+escape(s),”cuadreRegistre”);
            }
        }
</script>                    
                        
<DIV ID='cuadreRegistre'>
  REGISTRIS
  <BR/><BR/>
  <INPUT TYPE=TEXT ID='registre' NAME='registre'>
  <BR/><BR/>
  <INPUT TYPE=SUBMIT NAME='registre' VALUE='Submit' ONCLICK='javascript:sendRegister();'>
</DIV>
    

Després tenim l’arxiu que grava les dades a la BBDD (saveRegistre.php):
<“php
 mysql_query(“INSERT INTO buscador.registre (mail,pagina,alta) VALUES ('”.$_GET[“mail”].”' , '”.getenv(“HTTP_HOST”).”' , NOW());”,$conn);

 echo “Les dades s'han actualitzat amb exit.”;
“>

I finalment la BBDD:

CREATE TABLE `registre` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `mail` varchar(90) NOT NULL default '',
  `pagina` varchar(45) NOT NULL default '',
  `alta` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

D’aquest script remarcar l’ús de la funció escape() de javascript que hi ha un munt de webs i exemples corrent per internet que no validen el format de les URL cridades i llavors hi ha errors que no se sap d’on venen!!!.

escape() converteix una cadena passada com a parametre al format de les URL. Amb unescape() es fa la operació inversa.

Leave a Reply

© Albert Coronado Calzada