Foros del Web » Programando para Internet » PHP »

Error formulario en el móvil

Estas en el tema de Error formulario en el móvil en el foro de PHP en Foros del Web. Hola, he añadido un formulario en mi página siguiendo este ejemplo: [URL]https://github.com/pinceladasdaweb/Simple-PHP-Contact-Form/tree/master/jquery[/URL] El código es este: Código: <?php $subjectPrefix = '[Contato via Site]'; $emailTo = ...
  #1 (permalink)  
Antiguo 14/05/2015, 10:49
 
Fecha de Ingreso: mayo-2015
Mensajes: 26
Antigüedad: 8 años, 11 meses
Puntos: 0
Error formulario en el móvil

Hola, he añadido un formulario en mi página siguiendo este ejemplo:

[URL]https://github.com/pinceladasdaweb/Simple-PHP-Contact-Form/tree/master/jquery[/URL]

El código es este:
Código:
<?php
$subjectPrefix = '[Contato via Site]';
$emailTo = '<YOUR_EMAIL_HERE>';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name     = stripslashes(trim($_POST['form-name']));
    $email    = stripslashes(trim($_POST['form-email']));
    $phone    = stripslashes(trim($_POST['form-tel']));
    $subject  = stripslashes(trim($_POST['form-assunto']));
    $message  = stripslashes(trim($_POST['form-mensagem']));
    $pattern  = '/[\r\n]|Content-Type:|Bcc:|Cc:/i';
    if (preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $subject)) {
        die("Header injection detected");
    }
    $emailIsValid = preg_match('/^[^0-9][A-z0-9._%+-]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $email);
    if($name && $email && $emailIsValid && $subject && $message){
        $subject = "$subjectPrefix $subject";
        $body = "Nome: $name <br /> Email: $email <br /> Telefone: $phone <br /> Mensagem: $message";
        $headers  = 'MIME-Version: 1.1' . PHP_EOL;
        $headers .= 'Content-type: text/html; charset=utf-8' . PHP_EOL;
        $headers .= "From: $name <$email>" . PHP_EOL;
        $headers .= "Return-Path: $emailTo" . PHP_EOL;
        $headers .= "Reply-To: $email" . PHP_EOL;
        $headers .= "X-Mailer: PHP/". phpversion() . PHP_EOL;
        mail($emailTo, $subject, $body, $headers);
        $emailSent = true;
    } else {
        $hasError = true;
    }
}
?><!DOCTYPE html>
<html>
<head>
    <title>Simple PHP Contact Form</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
    <div class="jumbotron">
        <h1>Simple PHP Contact Form</h1>
        <p>A Simple Contact Form developed in PHP with HTML5 Form validation. Has a fallback in jQuery for browsers that do not support HTML5 form validation.</p>
    </div>
    <?php if(!empty($emailSent)): ?>
        <div class="col-md-6 col-md-offset-3">
            <div class="alert alert-success text-center">Sua mensagem foi enviada com sucesso.</div>
        </div>
    <?php else: ?>
        <?php if(!empty($hasError)): ?>
        <div class="col-md-5 col-md-offset-4">
            <div class="alert alert-danger text-center">Houve um erro no envio, tente novamente mais tarde.</div>
        </div>
        <?php endif; ?>

    <div class="col-md-6 col-md-offset-3">
        <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" id="contact-form" class="form-horizontal" role="form" method="post">
            <div class="form-group">
                <label for="name" class="col-lg-2 control-label">Nome</label>
                <div class="col-lg-10">
                    <input type="text" class="form-control" id="form-name" name="form-name" placeholder="Nome" required>
                </div>
            </div>
            <div class="form-group">
                <label for="email" class="col-lg-2 control-label">Email</label>
                <div class="col-lg-10">
                    <input type="email" class="form-control" id="form-email" name="form-email" placeholder="Email" required>
                </div>
            </div>
            <div class="form-group">
                <label for="tel" class="col-lg-2 control-label">Telefone</label>
                <div class="col-lg-10">
                    <input type="tel" class="form-control" id="form-tel" name="form-tel" placeholder="Telefone">
                </div>
            </div>
            <div class="form-group">
                <label for="assunto" class="col-lg-2 control-label">Assunto</label>
                <div class="col-lg-10">
                    <input type="text" class="form-control" id="form-assunto" name="form-assunto" placeholder="Assunto" required>
                </div>
            </div>
            <div class="form-group">
                <label for="mensagem" class="col-lg-2 control-label">Mensagem</label>
                <div class="col-lg-10">
                    <textarea class="form-control" rows="3" id="form-mensagem" name="form-mensagem" placeholder="Mensagem" required></textarea>
                </div>
            </div>
            <div class="form-group">
                <div class="col-lg-offset-2 col-lg-10">
                    <button type="submit" class="btn btn-default">Enviar</button>
                </div>
            </div>
        </form>
    </div>
    <?php endif; ?>

    <!--[if lt IE 9]>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <![endif]-->
    <!--[if gte IE 9]><!-->
        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <!--<![endif]-->
    <script type="text/javascript" src="assets/js/contact-form.js"></script>
</body>
</html>
Lo he probado en el ordenador y funciona correctamente pero lo pruebo en el móvil y me da error:
Código:
<div class="alert alert-danger text-center">Houve um erro no envio, tente novamente mais tarde.</div>
Por qué en el ordenador funciona bien y en el móvil no? cómo podría solucionarlo???

gràcies/gracias
  #2 (permalink)  
Antiguo 14/05/2015, 12:28
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Error formulario en el móvil

estas probando con los mismos datos?

es un error de novato poner cualquier cosa en el sender:

$headers .= "From: $name <$email>" . PHP_EOL;

el sender $email debe ser un email fijo, no debe ser lo que ingresa el usuario
por eso aveces funciona o avaces no
  #3 (permalink)  
Antiguo 14/05/2015, 12:37
 
Fecha de Ingreso: mayo-2015
Mensajes: 26
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Error formulario en el móvil

entonces tengo que cambiar esto:

$headers .= "From: $name <$email>" . PHP_EOL;

y donde poner e-mail poner el mío, no???
  #4 (permalink)  
Antiguo 15/05/2015, 02:37
 
Fecha de Ingreso: mayo-2015
Mensajes: 26
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Error formulario en el móvil

Hola, sigue sin funcionar, he probado sustituyendo $email con o sin el signo $ por mi e-mail pero no funcionar.
  #5 (permalink)  
Antiguo 15/05/2015, 10:20
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Error formulario en el móvil

si estas trabajando en local dificilmente te funcione, es por eso que te digo
sigues sin entender que este metodo mail() de php funciona perfectamente si tienes un servidor de correo como MailChimp por ejemplo para hacer campañas newsletter , que lo dudo

lo mas facil es que uses PHPMailer con smtp, y no te compliques la vida

Etiquetas: formulario, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:21.