Autor
|
Tema: error en mandar un formulario (Leído 3,192 veces)
|
kosis157
Desconectado
Mensajes: 186
|
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 <table width="200" border="0" align="center" cellpadding="0" cellspacing="0" class="subcategoryWeb"> <tr> <td>- Contactar - </td> </tr> </table> <p> </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> </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> </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á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ó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
|
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: 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: <?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
Mensajes: 186
|
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: <?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> </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> </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á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ó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
|
mira, ya se por que es, siento no darme cuenta antes, mira: <?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> </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> </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á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ó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
Mensajes: 186
|
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
|
Prueba: <?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. 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
Mensajes: 186
|
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: <?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> </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> </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á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ó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
Mensajes: 535
uguu~
|
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
|
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. 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
Mensajes: 14
The Lord
|
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
|
|
|
|
|
|