Foros del Web » Programando para Internet » PHP »

formulario register globals off

Estas en el tema de formulario register globals off en el foro de PHP en Foros del Web. hola lo que sucede es que quiero hacer un formulario, pero mi host tiene los register globals off y pues bueno no jala mi fomulario, ...
  #1 (permalink)  
Antiguo 12/05/2009, 11:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 15 años, 8 meses
Puntos: 1
formulario register globals off

hola lo que sucede es que quiero hacer un formulario, pero mi host tiene los register globals off y pues bueno no jala mi fomulario, segun creo debo cambiar el nombre a algunas variables, pero no se como, me ayudarian porfavor, el formulario es el siguiente

en contact.php
Código:
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTMLExtensible HyperText Markup Language 1.0 Strict//EN"

        "http://www.w3.org/TR/xhtml1/DTDDocument Type Definition/xhtml1-strict.dtd">

   <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">

        <head profile="http://gmpg.org/xfn/1">

                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                <title>Formulario de Contacto</title>

                <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

                <script type="text/javascript">

                function stoperror(){

                        return true

                }

                window.onerror=stoperror

                </script>

                <link rel="stylesheet" type="text/css" href="style.css" media="screen" />

                </head>

                <body>
                

        <div id="contactform">
        

                <h1>Formulario de Contacto</h1>

                <form id="contact-form" method="post" onsubmit="return emailCheck(this.email.value);" action="email.php">

                                <fieldset>

                                <legend>Datos Personales &raquo;</legend>

                        <div>

                                <label for="visitorname">

                                        <span style="color:c00;">*</span>Nombre:

                                </label>

                                        <input type="text" name="name" id="visitorname" title="Tu Nombre" />

                                </div>

                                <div>

                                        <label for="visitorsurname">

                                                <span style="color:c00;">*</span>Apellidos:

                                        </label>

                                        <input type="text" name="surname" id="visitorsurname" title="Tu Apellido" />

                                </div>

                                <div>

                                        <label for="visitormail">

                                                <span style="color:c00;">*</span>Direcci&oacute;n de correo:

                                        </label>

                                <input type="text" name="email" id="visitormail" value="<?php echo $email; ?>" title="Tu dirección de correo" />

                        </div>

                        <div>

                                <label for="url">Página Web:</label>

                                        <input type="text" name="url" id="url" class="text" title="Tu página web" />

                                </div>

                           <div>

                                   <label for="phone">Teléfono:</label>

                                        <input type="text" name="phone" id="phone" class="text" title="Tu número de telefono" />

                                </div>

                        <div>

                                <label for="postcode">Codigo Postal:</label>

                                <input type="text" name="postcode" id="postcode" class="text" title="El codigo postal de tu localidad" />

                        </div>

                        <div>

                                <input type="submit" id="submit" name="send" value="Enviar &raquo;" title="Pulsa una vez para enviar el mensaje, y espera a la pantalla de confirmación" />

                        </div>

                </fieldset>

                <fieldset>

                <legend>Envianos tu Mensaje &raquo;</legend>

                        <div>

                           <label for="subject">

                                <span style="color:c00;">*</span>Motivo del mensaje:

                           </label>

                        <input type="text" name="sub" id="subject" title="El motivo de tu mensaje" />

                </div>

                <div>

                        <label for="notes">

                                <span style="color:c00;">*</span>Cuerpo del Mensaje:

                        </label>

                        <textarea name="text" id="notes" rows="" cols="" onkeyup="val=this.value; if (val.length > 800) { alert('Lo siento, has sobrepasado el limite de 800 caracteres'); this.value = val.substring(0,800); }  this.form.count.value=800-parseInt(this.value.length); "><?php echo $text; ?></textarea>

                </div>

                <div>

                        <label for="count">Caracteres disponibles:</label>

                                <input type="text" name="count" id="counter" value="800" size="2" />

                                <?php $text_len = preg_match_all('/./', $str, $dummy); ?>

                        </div>

                </fieldset>

           </form>

                <p><span style="color:c00;">*</span>Campos Obligatorios</p>

                <p><span style="color:red;font-weight:bold;"><?php echo $error ?></span></p>

                <script type="text/javascript" src="var.js"></script>

                </div>

   </body>

   </html>
en send.php

Código:
<?php

        if (empty($name)) $error .= "No has introducido tu nombre";

        if (empty($surname)) $error .= "No has introducido tu apellido";

        if (empty($email)) $error .= "No has introducido tu dirección de e-mail";

        if (empty($sub)) $error .= "No has introducido un titulo para el mensaje";

        if (empty($text)) $error .= "No has escrito nada en el cuerpo del mensaje<br/>";

        $str = $text;

        $text_len = strlen($str);

        if($text_len > 800) {

            $error .= "Lo siento, has superado el maximo de 800 caracteres en el cuerpo del mensaje. El numero total de caracteres es $text_len - por favor, acorta tu mensaje.";

        }

        if($email) {

            if(isset($_POST['email'])) {

                if (preg_match('/^[-!$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i',trim($email))) {

                } else {

                    $error .= "Tu dirección de e-mail contiene un error.";

                }

                $ok = TRUE;

                $ok = eregi( "^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$", $email,

      $check);

                $ok = getmxrr(substr(strstr($check[0], '@'), 1), $dummy);

                if($ok === false) {

                    $host = substr($email, strpos($email, '@') + 1);

                    if(gethostbyname($host) != $host) {

                        $ok = true;

                    }

                    if ($ok != true) {

                        $error .= "La dirección de e-mail no parece correcta, por favor, compruebalo";

                    }

                }

            }

        }

        if($error) {

            include("index.php");

        } else {

             include("email.php");

        }

    ?>
  #2 (permalink)  
Antiguo 12/05/2009, 11:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: formulario register globals off

en email.php
Código:
<!DOCTYPE html PUBLIC "-//W3CWorld Wide Web Consortium//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">undefinedundefinedundefined

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">

    <head profile="http://gmpg.org/xfn/1">

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <title>Gracias por tu mensaje.</title>

    <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

    <link rel="stylesheet" type="text/css" href="style.css" media="screen" />

    </head>

    <body>

    <div id="contactform">

    <?php



    $headers = "From: $email";

      $message .= "
	  

      De: $name $surname

      E-Mail: $email

      Telefono: $phone

      Codigo Postal: $postcode

      Pagina Web: $url

      Desde : $title

      ____________________________________

    $text

    ";

    $message2 .= "

      Gracias por enviar el mensaje con el sujeto: $sub.\n

      Para tu referencia, se ha añadido el texto original del mensaje al final de este correo.\n

      Tu mensaje original era

      $text

    ";

      $headers2 .= "From: [email protected]\n";

      $sub2.="Re: $sub";

    ?>

    <h2>Gracias!</h2>

    <p>Tu mensaje ha sido enviado, usando la dirección de remitente </p>

    <p><span style="color:red;font-size:150%;font-weight:bold;"><?php print $email; ?></span></p>

    <p>Si no es correcto,

    <script type='text/javascript'>

      document.write('<a href="javascript:history.go(-1);">vuelve atras</a>');

    </script>

    <noscript>vuelve atras</noscript> y envialo de nuevo</p>

    <script type='text/javascript'>

      document.write('<p class="details"><a href="javascript:history.go(-2);">Volver a la página de inicio.</a></p>');

    </script>

    <script type='text/javascript'>

      setTimeout('history.go(-2)', 9000);

    </script>

    <noscript>

    <p class="details">Pulsa el boton "atras" en tu navegador para volver a la página anterior.</p>

    </noscript>

    <?php

      $message = stripslashes($message);

      $message2 = stripslashes($message2);

      $message = strip_tags ($message);

      $message2 = strip_tags ($message2);

      // RECUERDAR CAMBIAR LA DIRECCION DE CORREO

      mail("[email protected]", $sub, $message, $headers);

      mail($email, $sub2, $message2, $headers2);

      ?>

    </div>

    </body>

    </html>
y en var.js

Código:
function emailCheck (emailStr) {

    var checkTLD=1;

    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

    var emailPat=/^(.+)@(.+)$/;

    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

    var validChars="\[^\\s" + specialChars + "\]";

    var quotedUser="(\"[^\"]*\")";

    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

    var atom=validChars + '+';

    var word="(" + atom + "|" + quotedUser + ")";

    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

    var matchArray=emailStr.match(emailPat);

    if (matchArray==null) {

    alert("Tu dirección de correo no aparece o es incorrecta (comprueba @ y .'s)");

    return false;

    }

    var user=matchArray[1];

    var domain=matchArray[2];

    for (i=0; i<user.length; i++) {

    if (user.charCodeAt(i)>127) {

    alert("Tu dirección de correo contiene caracteres no validos.");

    return false;

       }

    }

    for (i=0; i<domain.length; i++) {

    if (domain.charCodeAt(i)>127) {

    alert("El dominio de la dirección introducida contiene caracteres no validos.");

    return false;

       }

    }

    if (user.match(userPat)==null) {

    alert("La dirección de correo parece incorrecta, por favor compruebalo.");

    return false;

    }

    var IPArray=domain.match(ipDomainPat);

    if (IPArray!=null) {

    for (var i=1;i<=4;i++) {

    if (IPArray[i]>255) {

    alert("La dirección IPInternet Protocol de destino no es correcta!");

    return false;

       }

    }

    return true;

    }

    var atomPat=new RegExp("^" + atom + "$");

    var domArr=domain.split(".");

    var len=domArr.length;

    for (i=0;i<len;i++) {

    if (domArr[i].search(atomPat)==-1) {

    alert("La dirección de correo parece incorrecta, por favor compruebalo, incluyendo el uso incorrecto de signos de puntuación, comas , o puntos [.] al final de la dirección.");

    return false;

       }

    }

    if (checkTLD && domArr[domArr.length-1].length!=2 &&

    domArr[domArr.length-1].search(knownDomsPat)==-1) {

    alert("Tu dirección de correo debe terminar en un dominio o dos letras " + "país.");

    return false;

    }

    if (len<2) {

    alert("Falta el nombre del host en tu dirección de correo - compruebalo. O debes de haber añadido un espacio en blanco al final de la dirección - corrije el error e intentalo de nuevo.");

    return false;

    }

    return true;

    }
Muchas gracis !!!
  #3 (permalink)  
Antiguo 12/05/2009, 12:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: formulario register globals off

Revisa este link: http://www.php.net/variables.external.

Saludos.
  #4 (permalink)  
Antiguo 13/05/2009, 08:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: formulario register globals off

gracias buscare haber si puedo solucionarlo...........
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 10:04.