elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Error formulario POST PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Error formulario POST PHP  (Leído 3,808 veces)
victorsnk

Desconectado Desconectado

Mensajes: 200



Ver Perfil WWW
Error formulario POST PHP
« en: 16 Septiembre 2018, 21:00 pm »

Buenos días.

Recientemente he configurado el  formulario de mi web. También he configurado el archivo PHP. No obstante es curioso, envio el mensaje y no me parece ningún error, me devuelve que se envía correctamente pero no llega al correo. ¿Donde puede estar el fallo?

Código:
Aunque tenga puesto el texto de temporalmente no disponible si que debería de funcionar. Lo tengo hecho para que la gente no lo use hasta que funcione

La web es la siguiente: http://waterdrop.ga

Muchas gracias por la ayuda.


En línea

Victor Asensio | @victorsnk
http://victorsnk.synology.me
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #1 en: 16 Septiembre 2018, 21:38 pm »

Sin código, no se puede ayudar.

Saludos


En línea

victorsnk

Desconectado Desconectado

Mensajes: 200



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #2 en: 16 Septiembre 2018, 22:00 pm »

Sin código, no se puede ayudar.

Saludos

Perdón, pensé que se podía ver desde el inspector de código y que os sería más fácil, en un rato os lo pego. Mil gracias!
En línea

Victor Asensio | @victorsnk
http://victorsnk.synology.me
srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #3 en: 16 Septiembre 2018, 22:17 pm »

Perdón, pensé que se podía ver desde el inspector de código y que os sería más fácil, en un rato os lo pego. Mil gracias!

Y desde cuando con el "inspector de código" puedes ver el código del servidor?

No necesitas subir todo el código del servidor pero es interesante que muestres el código que indica el formulario, el FormToEmail.php.

PD https://formtoemail.com/developersupport/installing_script.php
« Última modificación: 16 Septiembre 2018, 22:20 pm por srWhiteSkull » En línea

victorsnk

Desconectado Desconectado

Mensajes: 200



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #4 en: 16 Septiembre 2018, 22:26 pm »

Y desde cuando con el "inspector de código" puedes ver el código del servidor?

No necesitas subir todo el código del servidor pero es interesante que muestres el código que indica el formulario, el FormToEmail.php.

PD https://formtoemail.com/developersupport/installing_script.php

Gracias, es este:

Código
  1. <?php
  2.  
  3.  
  4.  
  5. /*
  6.  
  7.  
  8.  
  9. Thank you for choosing FormToEmail by FormToEmail.com
  10.  
  11.  
  12.  
  13. Version 2.4 June 21st 2008
  14.  
  15.  
  16.  
  17. COPYRIGHT FormToEmail.com 2003 - 2008
  18.  
  19.  
  20.  
  21. You are not permitted to sell this script, but you can use it, copy it or distribute it, providing that you do not delete this copyright notice, and you do not remove any reference or links to FormToEmail.com
  22.  
  23.  
  24.  
  25. For support, please visit: http://formtoemail.com/support/
  26.  
  27.  
  28.  
  29. You can get the Pro version of this script here: http://formtoemail.com/formtoemail_pro_version.php
  30.  
  31. ---------------------------------------------------------------------------------------------------
  32.  
  33.  
  34.  
  35. FormToEmail-Pro (Pro version) Features:
  36.  
  37.  
  38.  
  39. Check for required fields.
  40.  
  41. Attach file uploads.
  42.  
  43. Upload files to the server.
  44.  
  45. reCAPTCHA support.
  46.  
  47. Check for a set cookie.
  48.  
  49. HTML output option.
  50.  
  51. CSV output to attachment or file.
  52.  
  53. Autoresponder (with file attachment).
  54.  
  55. Show sender's IP address.
  56.  
  57. Block IP addresses.
  58.  
  59. Block web addresses or rude words.
  60.  
  61. Block gibberish (MldMtrPAgZq etc).
  62.  
  63. Block gobbledegook characters (Å ð ç etc).
  64.  
  65. Set encoding (utf-8 etc).
  66.  
  67. Ignore fields.
  68.  
  69. Sort fields.
  70.  
  71. Auto redirect to "Thank You" page.
  72.  
  73. No branding.
  74.  
  75. Free upgrades for life.
  76.  
  77.  
  78.  
  79. ---------------------------------------------------------------------------------------------------
  80.  
  81.  
  82.  
  83. FormToEmail DESCRIPTION
  84.  
  85.  
  86.  
  87. FormToEmail is a contact-form processing script written in PHP. It allows you to place a form on your website which your visitors can fill out and send to you.  The contents of the form are sent to the email address (or addresses) which you specify below.  The form allows your visitors to enter their name, email address and comments.  The script will not allow a blank form to be sent.
  88.  
  89.  
  90.  
  91. Your visitors (and nasty spambots!) cannot see your email address.  The script cannot be hijacked by spammers.
  92.  
  93.  
  94.  
  95. When the form is sent, your visitor will get a confirmation of this on the screen, and will be given a link to continue to your homepage, or other page if you specify it.
  96.  
  97.  
  98.  
  99. Should you need the facility, you can add additional fields to your form, which this script will also process without making any additional changes to the script.  You can also use it to process other forms.  The script will handle the "POST" or "GET" methods.  It will also handle multiple select inputs and multiple check box inputs.  If using these, you must name the field as an array using square brackets, like so: <select name="fruit[]" multiple>.  The same goes for check boxes if you are using more than one with the same name, like so: <input type="checkbox" name="fruit[]" value="apple">Apple<input type="checkbox" name="fruit[]" value="orange">Orange<input type="checkbox" name="fruit[]" value="banana">Banana
  100.  
  101.  
  102.  
  103. ** PLEASE NOTE **  If you are using the script to process your own forms (or older FormToEmail forms) you must ensure that the email field is named correctly in your form, thus: <input type="text" name="email" etc>.  Note the lower case "email".  If you don't do this, you won't be able to see who the email is from and the script won't be able to check the validity of the email.  If you are using the form code below, you don't need to check for this.
  104.  
  105.  
  106.  
  107. This is a PHP script.  In order for it to run, you must have PHP (version 4.1.0 or later) on your webhosting account, and have the PHP mail() function enabled and working.  If you are not sure about this, please ask your webhost about it.
  108.  
  109.  
  110.  
  111. SETUP INSTRUCTIONS
  112.  
  113.  
  114.  
  115. Step 1: Put the form on your webpage
  116.  
  117. Step 2: Enter your email address and (optional) continue link below
  118.  
  119. Step 3: Upload the files to your webspace
  120.  
  121.  
  122.  
  123. Step 1:
  124.  
  125.  
  126.  
  127. To put the form on your webpage, copy the code below as it is, and paste it into your webpage:
  128.  
  129.  
  130.  
  131. <form action="FormToEmail.php" method="post">
  132.  
  133. <table border="0" bgcolor="#ececec" cellspacing="5">
  134.  
  135. <tr><td>Name</td><td><input type="text" size="30" name="name"></td></tr>
  136.  
  137. <tr><td>Email address</td><td><input type="text" size="30" name="email"></td></tr>
  138.  
  139. <tr><td valign="top">Comments</td><td><textarea name="comments" rows="6" cols="30"></textarea></td></tr>
  140.  
  141. <tr><td> </td><td><input type="submit" value="Send"><font face="arial" size="1">  <a href="http://FormToEmail.com">Form Mail</a> by FormToEmail.com</font></td></tr>
  142.  
  143. </table>
  144.  
  145. </form>
  146.  
  147.  
  148.  
  149. Step 2:
  150.  
  151.  
  152.  
  153. Enter your email address.
  154.  
  155.  
  156.  
  157. Enter the email address below to send the contents of the form to.  You can enter more than one email address separated by commas, like so: $my_email = "info@example.com"; or $my_email = "bob@example.com,sales@example.co.uk,jane@example.com";
  158.  
  159.  
  160.  
  161. */
  162.  
  163.  
  164.  
  165. $my_email = "waterdrophydroprint@gmail.com";
  166.  
  167.  
  168.  
  169. /*
  170.  
  171.  
  172.  
  173. Enter the continue link to offer the user after the form is sent.  If you do not change this, your visitor will be given a continue link to your homepage.
  174.  
  175.  
  176.  
  177. If you do change it, remove the "/" symbol below and replace with the name of the page to link to, eg: "mypage.htm" or "http://www.elsewhere.com/page.htm"
  178.  
  179.  
  180.  
  181. */
  182.  
  183.  
  184.  
  185. $continue = "http://waterdrop.ga";
  186.  
  187.  
  188.  
  189. /*
  190.  
  191.  
  192.  
  193. Step 3:
  194.  
  195.  
  196.  
  197. Save this file (FormToEmail.php) and upload it together with your webpage containing the form to your webspace.  IMPORTANT - The file name is case sensitive!  You must save it exactly as it is named above!
  198.  
  199.  
  200.  
  201. THAT'S IT, FINISHED!
  202.  
  203.  
  204.  
  205. You do not need to make any changes below this line.
  206.  
  207.  
  208.  
  209. */
  210.  
  211.  
  212.  
  213. $errors = array();
  214.  
  215.  
  216.  
  217. // Remove $_COOKIE elements from $_REQUEST.
  218.  
  219.  
  220.  
  221. if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}
  222.  
  223.  
  224.  
  225. // Validate email field.
  226.  
  227.  
  228.  
  229. if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
  230.  
  231. {
  232.  
  233.  
  234.  
  235. $_REQUEST['email'] = trim($_REQUEST['email']);
  236.  
  237.  
  238.  
  239. if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Email address is invalid";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Email address is invalid";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Email address is invalid";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Email address is invalid";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Email address is invalid"; break;}}}}}}
  240.  
  241.  
  242.  
  243. }
  244.  
  245.  
  246.  
  247. // Check referrer is from same site.
  248.  
  249.  
  250.  
  251. if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";}
  252.  
  253.  
  254.  
  255. // Check for a blank form.
  256.  
  257.  
  258.  
  259. function recursive_array_check_blank($element_value)
  260.  
  261. {
  262.  
  263.  
  264.  
  265. global $set;
  266.  
  267.  
  268.  
  269. if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}
  270.  
  271. else
  272.  
  273. {
  274.  
  275.  
  276.  
  277. foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}
  278.  
  279.  
  280.  
  281. }
  282.  
  283.  
  284.  
  285. }
  286.  
  287.  
  288.  
  289. recursive_array_check_blank($_REQUEST);
  290.  
  291.  
  292.  
  293. if(!$set){$errors[] = "You cannot send a blank form";}
  294.  
  295.  
  296.  
  297. unset($set);
  298.  
  299.  
  300.  
  301. // Display any errors and exit if errors exist.
  302.  
  303.  
  304.  
  305. if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}
  306.  
  307.  
  308.  
  309. if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}
  310.  
  311.  
  312.  
  313. // Build message.
  314.  
  315.  
  316.  
  317. function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");}
  318.  
  319.  
  320.  
  321. $message = build_message($_REQUEST);
  322.  
  323.  
  324.  
  325. $message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL."Thank you for using FormToEmail from http://FormToEmail.com";
  326.  
  327.  
  328.  
  329. $message = stripslashes($message);
  330.  
  331.  
  332.  
  333. $subject = "FormToEmail Comments";
  334.  
  335.  
  336.  
  337. $subject = stripslashes($subject);
  338.  
  339.  
  340.  
  341. $from_name = "";
  342.  
  343.  
  344.  
  345. if(isset($_REQUEST['name']) && !empty($_REQUEST['name'])){$from_name = stripslashes($_REQUEST['name']);}
  346.  
  347.  
  348.  
  349. $headers = "From: {$from_name} <{$_REQUEST['email']}>";
  350.  
  351.  
  352.  
  353. mail($my_email,$subject,$message,$headers);
  354.  
  355.  
  356.  
  357. ?>
  358.  
  359.  
  360.  
  361. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  362.  
  363.  
  364.  
  365. <html>
  366.  
  367.  
  368.  
  369. <head>
  370.  
  371. <title>FORMULARIO ENVIADO</title>
  372.  
  373. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  374.  
  375. </head>
  376.  
  377.  
  378.  
  379. <body bgcolor="#ffffff" text="#000000">
  380.  
  381.  
  382.  
  383. <div>
  384.  
  385. <center>
  386.  
  387. <b>Muchas gracias: <?php if(isset($_REQUEST['name'])){print stripslashes($_REQUEST['name']);} ?></b>
  388.  
  389. <br>Su mensaje se ha enviado correctamente. Responderemos con la máxima celeridad posible.
  390.  
  391. <p><a href="<?php print $continue; ?>">Click aqui para continuar</a></p>
  392.  
  393.  
  394. </center>
  395.  
  396. </div>
  397.  
  398.  
  399.  
  400. </body>
  401.  
  402. </html>


Mod: Obligatorio el uso de etiquetas GeSHi para códigos.
« Última modificación: 16 Septiembre 2018, 23:00 pm por #!drvy » En línea

Victor Asensio | @victorsnk
http://victorsnk.synology.me
srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #5 en: 16 Septiembre 2018, 23:11 pm »

Eché un vistazo al código pero me ha tomado tiempo ya que no está tabulado y ahora me urge salir. Mientras me gustaría que probaras depurar en ese código, comprobando que los argumentos los está tomando, podrías hacerlo? Me imagino que sabes programar PHP.

Ya mañana continuamos si te parece,
saludos.
En línea

victorsnk

Desconectado Desconectado

Mensajes: 200



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #6 en: 16 Septiembre 2018, 23:17 pm »

Eché un vistazo al código pero me ha tomado tiempo ya que no está tabulado y ahora me urge salir. Mientras me gustaría que probaras depurar en ese código, comprobando que los argumentos los está tomando, podrías hacerlo? Me imagino que sabes programar PHP.

Ya mañana continuamos si te parece,
saludos.

Gracias por tu ayuda. La verdad es que no se de .php ahí mi problema :( pero te agradezco enormemente la atención.

Gracias de todas formas. Un saludo.
En línea

Victor Asensio | @victorsnk
http://victorsnk.synology.me
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #7 en: 17 Septiembre 2018, 01:57 am »

Ese código es horrible.. no se de donde lo has sacado, pero es horrible en todos los sentidos, puede que funcione, pero es horrible en todos los aspectos. Veo que buscas una solución más o menos personalizada pero mencionas que no sabes mucho de PHP.. eso suele ser un problema a no ser que quieras aprender.

Yo empezaría por hacer algo de debug, sabes si host tiene SMTP, sabes si PHP envia el correo? Cambia esta linea:

Código
  1. mail($my_email,$subject,$message,$headers);

por

Código
  1. if (!mail($my_email,$subject,$message,$headers)) {
  2.    die('Error al enviar el correo.');
  3. }

Si te salta "Error al enviar el correo", lo más probable es que no tengas un servidor SMTP o bien que PHP no este configurado para usarlo.

Saludos
En línea

victorsnk

Desconectado Desconectado

Mensajes: 200



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #8 en: 17 Septiembre 2018, 07:54 am »

Está alojado en mi NAS, por lo que puede ser que SMTP no esté activado. Este servicio ¿lo da PHP 7.0? Por otro lado, ¿podríais ayudarme a elaborar un PHP nuevo que consigue hacer funcionar el formulario?




Modificado tal y como me comentas, si, me da error al enviar el correo.


Mod: Prohibido el doble o triple post. Usa el botón "Modificar".
« Última modificación: 17 Septiembre 2018, 16:48 pm por #!drvy » En línea

Victor Asensio | @victorsnk
http://victorsnk.synology.me
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Error formulario POST PHP
« Respuesta #9 en: 17 Septiembre 2018, 16:53 pm »

Citar
Modificado tal y como me comentas, si, me da error al enviar el correo.

Entonces lo más probable es que no tengas SMTP instalado/configurado.

Citar
Está alojado en mi NAS, por lo que puede ser que SMTP no esté activado. Este servicio ¿lo da PHP 7.0?

PHP no da SMTP... a lo sumo, podrías utilizar alguna librería como PHPMailer para enviar correos desde otro servidor smtp como gmail (por ejemplo) y así evitarte tu instalar uno.

Aquí decides tu, instalas un servidor SMTP o usas servicios de terceros.

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Enviar formulario de una web con el metodo POST
Programación Visual Basic
Mr.Chispa 8 3,174 Último mensaje 3 Noviembre 2006, 04:09 am
por Mr.Chispa
explotar xss en formulario post
Nivel Web
wizache 7 6,617 Último mensaje 12 Febrero 2008, 20:30 pm
por nobuK
Enviar Formulario POST a script
Java
cyberserver 3 4,534 Último mensaje 19 Febrero 2009, 17:14 pm
por -Ramc-
Problema al recibir POST de formulario PHP
PHP
Carlosnuel 3 3,575 Último mensaje 16 Noviembre 2009, 23:35 pm
por Carlosnuel
Post en un formulario Select
Nivel Web
[>NeRiO<] 0 2,042 Último mensaje 14 Mayo 2010, 14:32 pm
por [>NeRiO<]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines