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

 

 


Tema destacado: Estamos en la red social de Mastodon


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

Desconectado Desconectado

Mensajes: 186



Ver Perfil
error en mandar un formulario
« en: 31 Marzo 2007, 20:32 pm »

Hola estoy haciendo un formulario y al ejecutarlo de mi PC me sale un error, PHP Notice: Undefined variable: HTTP_GET_VARS in C:\Inetpub\wwwroot\contactar\index.php on line 17 y la liena 17 es:

if ($HTTP_GET_VARS["accion"] == "")
Tambien os dejo el código para verlo mejor  ;)

Código:
<table width="200" border="0" align="center" cellpadding="0" cellspacing="0" class="subcategoryWeb">
  <tr>
    <td>- Contactar - </td>
  </tr>
</table>
<p>&nbsp;</p>
<?php
if ($HTTP_GET_VARS["accion"] == "") {
?> 
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="159"><table width="159" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
    <td width="595">
        <table width="75%" border="1" cellpadding="0" cellspacing="0" bordercolor="#2D2D2D">
          <tr>
            <td><form action="index.php?accion=enviar" method="post" name="contacto">
                <table width="75%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td class="table2">Tu nombre: </td>
                    <td><input name="name" type="text" id="name" class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu email:</td>
                    <td><input name="email" type="text" id="email"  class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu asunto: </td>
                    <td><label>
                      <select name="asunto" class="table" id="asunto">
                        <option>- Seleccionar Opcio -</option>
                        <option>Sugerencia</option>
                        <option selected="selected">Colaborar</option>
                      </select>
                    </label></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu comentario: </td>
                    <td><textarea name="com" rows="5" class="table" id="com"></textarea></td>
                  </tr>
                </table>
              <p align="center">
                  <input type="submit" name="Submit" value="enviar" />
              </p>
            </form></td>
          </tr>
        </table>

    </td>
  </tr>
</table>
<p>&nbsp;</p>
<?php
}else{
if ($HTTP_GET_VARS["accion"] == "enviar"){
$email = $HTTP_POST_VARS["email"];
$nombre = $HTTP_POST_VARS["nombre"];
$com = $HTTP_POST_VARS["com"];
if($email == "" || $com== ""){
echo'Rellena los campos vacios.<a href=javascript:history.go(-1)>Atr&aacute;s</a>';
}else{
$to = "zak@hotmail.com";
$subject = "Contactar";
$msg="Hola tienes un formulario enviado:\nSu nombre: " .$name. " \n Su e-mail: " .$email ." \n Su descripci&oacute;n: ". $com . ".";
mail($to, $subject, $msg);
echo'mensaje enviado correctamente';
}
}
}
?>


« Última modificación: 15 Agosto 2008, 18:31 pm por zaky145 » En línea

Luisango


Desconectado Desconectado

Mensajes: 313



Ver Perfil WWW
Re: error en mandar un formulario
« Respuesta #1 en: 1 Abril 2007, 00:54 am »

El error te dice que no se ha declarado la variable antes, solo declarala, en este caso como es GET pues la tienes que poner en la URL de esta forma:

Código:
archivo.php?accion=elvalorquequierasquetome

si lo haces desde un formulario, cambialo al modo get y si te parece un lio (y claro, esto viene de un formulario) y lo tienes el formulario en modo post cambia:
Código:
<?php
$HTTP_GET_VARS[accion]
//  POR ESTO:
$HTTP_POST_VARS[accion]
// O ESTO, EN ESTE CASO DA IGUAL
$_POST[accion]
?>
 

Espero haberte ayudado
Un saludo!


En línea

Even better...
kosis157

Desconectado Desconectado

Mensajes: 186



Ver Perfil
Re: error en mandar un formulario
« Respuesta #2 en: 1 Abril 2007, 12:22 pm »

uff una vez cambiado me sigue saliendo un error:

PHP Notice: Undefined index: accion in C:\Inetpub\wwwroot\contactar\index.php on line 25

la linea 25: if ($_POST["accion"] == "") {
weno creo esa variable sólo para que el usuario que entre se le vaya al formulario y una vez ponga en enviar vaya a la accion send y asi enviarme el email no me vienen de ningun formualrio solo es para ahorrar otro archivo para hacer el revisar. te dejo lo que he cambiado:

Código:
<?php
/*
$HTTP_GET_VARS[accion]
//  POR ESTO:
$HTTP_POST_VARS[accion]
// O ESTO, EN ESTE CASO DA IGUAL
$_POST[accion]*/
?>
<?php
if ($_POST["accion"] == "") {
?> 
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="159"><table width="159" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
    <td width="595">
        <table width="75%" border="1" cellpadding="0" cellspacing="0" bordercolor="#2D2D2D">
          <tr>
            <td><form action="index.php?accion=enviar" method="post" name="contacto">
                <table width="75%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td class="table2">Tu nombre: </td>
                    <td><input name="name" type="text" id="name" class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu email:</td>
                    <td><input name="email" type="text" id="email"  class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu asunto: </td>
                    <td><label>
                      <select name="asunto" class="table" id="asunto">
                        <option>- Seleccionar Opcio -</option>
                        <option>Sugerencia</option>
                        <option selected="selected">Colaborar</option>
                      </select>
                    </label></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu comentario: </td>
                    <td><textarea name="com" rows="5" class="table" id="com"></textarea></td>
                  </tr>
                </table>
              <p align="center">
                  <input type="submit" name="Submit" value="enviar" />
              </p>
            </form></td>
          </tr>
        </table>

    </td>
  </tr>
</table>
<p>&nbsp;</p>
<?php
}else{
if ($_POST["accion"] == "enviar"){
$email = $HTTP_POST_VARS["email"];
$nombre = $HTTP_POST_VARS["nombre"];
$com = $HTTP_POST_VARS["com"];
if($email == "" || $com== ""){
echo'Rellena los campos vacios.<a href=javascript:history.go(-1)>Atr&aacute;s</a>';
}else{
$to = "zak@hotmail.com";
$subject = "Contactar";
$msg="Hola tienes un formulario enviado:\nSu nombre: " .$name. " \n Su e-mail: " .$email ." \n Su descripci&oacute;n: ". $com . ".";
mail($to, $subject, $msg);
echo'mensaje enviado correctamente';
}
}
}
?>
« Última modificación: 15 Agosto 2008, 18:32 pm por zaky145 » En línea

Luisango


Desconectado Desconectado

Mensajes: 313



Ver Perfil WWW
Re: error en mandar un formulario
« Respuesta #3 en: 1 Abril 2007, 12:31 pm »

mira, ya se por que es, siento no darme cuenta antes, mira:
Código:
<?php
/*
$HTTP_GET_VARS[accion]
//  POR ESTO:
$HTTP_POST_VARS[accion]
// O ESTO, EN ESTE CASO DA IGUAL
$_POST[accion]*/
?>
<?php
if ($_GET["accion"]) {
?> 
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="159"><table width="159" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
    <td width="595">
        <table width="75%" border="1" cellpadding="0" cellspacing="0" bordercolor="#2D2D2D">
          <tr>
            <td><form action="index.php?accion=enviar" method="post" name="contacto">
                <table width="75%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td class="table2">Tu nombre: </td>
                    <td><input name="name" type="text" id="name" class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu email:</td>
                    <td><input name="email" type="text" id="email"  class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu asunto: </td>
                    <td><label>
                      <select name="asunto" class="table" id="asunto">
                        <option>- Seleccionar Opcio -</option>
                        <option>Sugerencia</option>
                        <option selected="selected">Colaborar</option>
                      </select>
                    </label></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu comentario: </td>
                    <td><textarea name="com" rows="5" class="table" id="com"></textarea></td>
                  </tr>
                </table>
              <p align="center">
                  <input type="submit" name="Submit" value="enviar" />
              </p>
            </form></td>
          </tr>
        </table>

    </td>
  </tr>
</table>
<p>&nbsp;</p>
<?php
}else{
if ($_GET["accion"] == "enviar"){
$email = $_POST["email"];
$nombre = $_POST["nombre"];
$com = $_POST["com"];
if($email == "" || $com== ""){
echo'Rellena los campos vacios.<a href=javascript:history.go(-1)>Atr&aacute;s</a>';
}else{
$to = "mtp1268@ww1.edu365.com";
$subject = "Contactar";
$msg="Hola tienes un formulario enviado:\nSu nombre: " .$name. " \n Su e-mail: " .$email ." \n Su descripci&oacute;n: ". $com . ".";
mail($to, $subject, $msg);
echo'mensaje enviado correctamente';
}
}
}
?>
[/quote]

Asi ya esta bien, espero que te funcione jejejej


Un saludo!
En línea

Even better...
kosis157

Desconectado Desconectado

Mensajes: 186



Ver Perfil
Re: error en mandar un formulario
« Respuesta #4 en: 1 Abril 2007, 15:57 pm »

Uuf pues no me funciona ahora me tira dos errores:
PHP Notice: Undefined index: accion in C:\Inetpub\wwwroot\contactar\index.php on line 11
la linea 11:
if ($_GET["accion"]) {
PHP Notice: Undefined index: accion in C:\Inetpub\wwwroot\contactar\index.php on line 61
linea 61:
if ($_GET["accion"] == "enviar"){

weno nose si influye la version del PHP ahora tengo el PHP5
o si sabes otra menera de hacerlo que vaya bien la puedes comentar  ;)
En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: error en mandar un formulario
« Respuesta #5 en: 2 Abril 2007, 15:08 pm »

 :huh: :huh:

Prueba:

Código:
<?php
if(empty($_GET['accion']))
{
  // Está vacio
}
else
{
  // Esta lleno
}
?>

Y haber que sucede.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
kosis157

Desconectado Desconectado

Mensajes: 186



Ver Perfil
Re: error en mandar un formulario
« Respuesta #6 en: 2 Abril 2007, 17:44 pm »

Sips funciona bien pero mire en la web php la función mail y es boolean y mire que si lo envia que diga correcto si no error y siemrpe me manda error, mi host es el 4444mb si alguien sabe como solucionarlo.... Os dejo aquí el código:
Código:
<?php
if(empty($_GET['accion']))
{
?>
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="159"><table width="159" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table></td>
    <td width="595">
        <table width="75%" border="1" cellpadding="0" cellspacing="0" bordercolor="#2D2D2D">
          <tr>
            <td><form action="contactar.php?accion=enviar" method="post" name="contacto">
                <table width="75%" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td class="table2">Tu nombre: </td>
                    <td><input name="name" type="text" id="name" class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu email:</td>
                    <td><input name="email" type="text" id="email"  class="table" /></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu asunto: </td>
                    <td><label>
                      <select name="asunto" class="table" id="asunto">
                        <option>- Seleccionar Opcio -</option>
                        <option>Sugerencia</option>
                        <option selected="selected">Colaborar</option>
                      </select>
                    </label></td>
                  </tr>
                  <tr>
                    <td class="table2">Tu comentario: </td>
                    <td><textarea name="com" rows="5" class="table" id="com"></textarea></td>
                  </tr>
                </table>
              <p align="center">
                  <input type="submit" name="Submit" value="enviar" />
              </p>
            </form></td>
          </tr>
        </table>

    </td>
  </tr>
</table>
<p>&nbsp;</p>
<?php
}else{
$email = $_POST["email"];
$name = $_POST["name"];
$com = $_POST["com"];
if($email == "" || $com== ""){
echo'Rellena los campos vacios.<a  href=javascript:history.go(-1)>Atr&aacute;s</a>';
}else{
$to = "mtp1268@ww1.edu365.com";
$subject = "Contactar";
$headers = "Content-Type: text/html; charset=ISO-8859-1 ";
$headers.= "MIME-Version: 1.0 ";
$msg="Hola tienes un formulario enviado:\nSu nombre: " .$name. " \n Su e-mail: " .$email ." \n Su descripci&oacute;n: ". $com . ".";
$enviado = mail($to,$subject,$msg,$headers);
if($enviado){
echo'mensaje enviado correctamente';
}else{
echo'Error en el envio del email.';
}
}
}
?>
En línea

Agente Naranja


Desconectado Desconectado

Mensajes: 535


uguu~


Ver Perfil WWW
Re: error en mandar un formulario
« Respuesta #7 en: 2 Abril 2007, 19:36 pm »

Yo te recomendaría para casos así donde tengas una variable que te bote error pero el programa este bien escrito (o sea, pueda continuar con ese "error") ponle una @ antes de la linea, y así no te imprimirá el error...es un poco salvaje, pero funciona.

Y si no, leete algo de la funcion isset($variable), que te determina si la variable ha sido puesta a algun valor, usualmente sirve mejor que comprobar if($variable)
En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: error en mandar un formulario
« Respuesta #8 en: 3 Abril 2007, 20:00 pm »

El error del mail te lo da porque lo mas seguro es que tu hosting gratuito tiene dicha función desactivada para que no puedas enviar e-mails "anonimamente".

Consulta en Google o en las caracteristicas del hosting si eso es cierto o no, pero yo creo que si.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Thelord

Desconectado Desconectado

Mensajes: 14


The Lord


Ver Perfil WWW
Re: error en mandar un formulario
« Respuesta #9 en: 6 Abril 2007, 01:27 am »

Desde la versión 4.2.x en adelante, los chicos de PHP.net dejaron la directiva register_globals a OFF por defecto (ver php.ini).

Edita tu php.ini .. ahi veras la directiva:
register_globals = OFF .. pasalo a ON para trabajar de la forma habitual con tus variables que envias de formularios/URL's entre otras.

thank's a Cluster.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error formulario de inscripcion
PHP
;c1v!c 0 2,621 Último mensaje 15 Diciembre 2011, 20:46 pm
por ;c1v!c
Error con formulario « 1 2 3 »
PHP
araque615 20 8,702 Último mensaje 12 Septiembre 2015, 17:32 pm
por #!drvy
error al mandar localhost « 1 2 »
PHP
elbrujo20 10 6,363 Último mensaje 9 Noviembre 2016, 21:56 pm
por SetzerFF
La NASA abre un formulario para que puedas mandar tu nombre al Sol en una sonda « 1 2 »
Foro Libre
El_Andaluz 14 7,009 Último mensaje 9 Marzo 2018, 17:25 pm
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines