{"id":170,"date":"2011-06-09T21:43:11","date_gmt":"2011-06-09T21:43:11","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=170"},"modified":"2012-04-29T09:04:04","modified_gmt":"2012-04-29T09:04:04","slug":"validar-email-php","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/","title":{"rendered":"Validar campo email de un formulario con PHP"},"content":{"rendered":"<p>En cualquier aplicaci\u00f3n Web que se requiera interactuar con el usuario, a menudo es necesario crear un formulario de registro o entrada al sistema en el cual se requiere la introducci\u00f3n de un email.<\/p>\n<p>Por norma, hay que pensar que los usuarios puden introducir en dichos campos de formulario datos que no se corresponden en formato con lo que se debe introducir. Uno de esos campos vulnerables son los campos de emails.<\/p>\n<p>Para validar estos campos lo que debemos hacer es crear una funci\u00f3n que se encargue de verificar si el texto introducido en el campo de email es correcto o no.<\/p>\n<pre id=\"line\">&lt;?php\r\nfunction comprobar_email($email){\r\n   $mail_correcto = 0;\r\n   \/\/compruebo unas cosas primeras\r\n   if ((strlen($email) &gt;= 6) &amp;&amp; (substr_count($email,\"@\") == 1) &amp;&amp; (substr($email,0,1) != \"@\") &amp;&amp; (substr($email,strlen($email)-1,1) != \"@\")){\r\n      if ((!strstr($email,\"'\")) &amp;&amp; (!strstr($email,\"\\\"\")) &amp;&amp; (!strstr($email,\"\\\\\")) &amp;&amp; (!strstr($email,\"\\$\")) &amp;&amp; (!strstr($email,\" \"))) {\r\n         \/\/miro si tiene caracter .\r\n         if (substr_count($email,\".\")&gt;= 1){\r\n            \/\/obtengo la terminacion del dominio\r\n            $term_dom = substr(strrchr ($email, '.'),1);\r\n            \/\/compruebo que la terminaci\u00f3n del dominio sea correcta\r\n            if (strlen($term_dom)&gt;1 &amp;&amp; strlen($term_dom)&lt;5 &amp;&amp; (!strstr($term_dom,\"@\")) ){\r\n               \/\/compruebo que lo de antes del dominio sea correcto\r\n               $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);\r\n               $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);\r\n               if ($caracter_ult != \"@\" &amp;&amp; $caracter_ult != \".\"){\r\n                  $mail_correcto = 1;\r\n               }\r\n            }\r\n         }\r\n      }\r\n   }\r\n   if ($mail_correcto)\r\n      return 1;\r\n   else\r\n      return 0;\r\n}\r\n?&gt;<\/pre>\n<p>En la funci\u00f3n que hemos creado nos encargamos de revisar si la cadena introducida tiene los car\u00e1cteres especiales que contienen los emails: @,, ., y que contenga un m\u00ednimo de 6 car\u00e1cteres.<\/p>\n<p>Esta funci\u00f3n podr\u00eda ser m\u00e1s sotisficada y por ejmplo podr\u00eda comprobar tambi\u00e9n el dominio: com, es, net.<\/p>\n<p>Nos podr\u00edamos ahorrar todo el c\u00f3digo anterior reemplazando por la funci\u00f3n siguiente:<\/p>\n<pre>function comprobar_email($email) {\r\n\u00a0\u00a0 \u00a0return (filter_var($email, FILTER_VALIDATE_EMAIL)) ? 1 : 0;\r\n}<\/pre>\n<p>Para recibir lo que se ha escrito en el campo email del formulario lo podemos hacer de la siguiente forma:<\/p>\n<pre id=\"line\">&lt;?php\r\nif (isset($_POST['enviar'])) {\r\n   if (comprobar_email($_POST['email']))\r\n      echo 'El email introducido es correcto!';\r\n   else\r\n      echo 'El email introducido NO es correcto!';\r\n}\r\n?&gt;<\/pre>\n<p>En el c\u00f3digo anterior, si se pulsa el bot\u00f3n de enviar, comprobamos mediante la funci\u00f3n anterior si el texto introducido en el campo con name=\u00bbemail\u00bb es un email o no.<\/p>\n<p>Finalmente, solo falta mostrar mediante HTML el formulario de la siguiente forma:<\/p>\n<pre id=\"line\">&lt;form action=\"index.php\" method=\"post\"&gt;\r\nEmail:&lt;input type=\"text\" name=\"email\" value=\"&lt;?php echo $_POST['email']; ?&gt;\"&gt;\r\n&lt;input type=\"submit\" name=\"enviar\" value=\"Enviar\"\/&gt;\r\n&lt;\/form&gt;<\/pre>\n<p><a href=\"..\/..\/scripts\/php\/validaemail\/index.php\">Ver ejemplo en funcionamiento<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En cualquier aplicaci\u00f3n Web que se requiera interactuar con el usuario, a menudo es necesario crear un formulario de registro o entrada al sistema en el cual se requiere la introducci\u00f3n de un email. Por norma, hay que pensar que los usuarios puden introducir en dichos campos de formulario datos que no se corresponden en [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[99,84,77],"class_list":["post-170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-emails","tag-formularios","tag-validaciones"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Validar campo email de un formulario con PHP - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Validar campo email de un formulario con PHP - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"En cualquier aplicaci\u00f3n Web que se requiera interactuar con el usuario, a menudo es necesario crear un formulario de registro o entrada al sistema en el cual se requiere la introducci\u00f3n de un email. Por norma, hay que pensar que los usuarios puden introducir en dichos campos de formulario datos que no se corresponden en [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2011-06-09T21:43:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-04-29T09:04:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\" \/>\n\t<meta property=\"og:image:width\" content=\"282\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/\",\"name\":\"Validar campo email de un formulario con PHP - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"datePublished\":\"2011-06-09T21:43:11+00:00\",\"dateModified\":\"2012-04-29T09:04:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png\",\"width\":282,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validar campo email de un formulario con PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Validar campo email de un formulario con PHP - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Validar campo email de un formulario con PHP - Jose Aguilar Blog","og_description":"En cualquier aplicaci\u00f3n Web que se requiera interactuar con el usuario, a menudo es necesario crear un formulario de registro o entrada al sistema en el cual se requiere la introducci\u00f3n de un email. Por norma, hay que pensar que los usuarios puden introducir en dichos campos de formulario datos que no se corresponden en [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2011-06-09T21:43:11+00:00","article_modified_time":"2012-04-29T09:04:04+00:00","og_image":[{"width":282,"height":300,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/","url":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/","name":"Validar campo email de un formulario con PHP - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","datePublished":"2011-06-09T21:43:11+00:00","dateModified":"2012-04-29T09:04:04+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/10\/Imagen-no-disponible-282x300.png","width":282,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/validar-email-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Validar campo email de un formulario con PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/6469"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}