Foros del Web » Programando para Internet » PHP »

Pequeño error..

Estas en el tema de Pequeño error.. en el foro de PHP en Foros del Web. Hola a todos.., (Cuanto tiempo que no pasaba por aqui jeje).. Bueno pues como siempre, el Formulario.., por fin lo he conseguido, me lo envian ...
  #1 (permalink)  
Antiguo 30/03/2004, 20:31
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
Exclamación Pequeño error..

Hola a todos.., (Cuanto tiempo que no pasaba por aqui jeje)..

Bueno pues como siempre, el Formulario.., por fin lo he conseguido, me lo envian a mi correo etc.., todo a la perfeccion escepto una cosa.., que cada vez que alguien carga la pagina de donde esta el formulario me envia un mail vacio, mas despues el que escriben, es decir, que al dia revivo unos 50 mails.., y encima casi todos vacios.., porque cuando alguien entra automaticamente me envia un mail.., y no se como arreglarlo.., espero que me ayudeis, por si acaso os pongo aqui el codigo del formulario..

Código PHP:
<?php
$destinatario
="[email protected]";
$comentarios="Datos del solicitante" "\n\n" ."Nombre: " $nombre"\n\n" "E-Mail: " $mail "\n\n" "Nick: " $nick "\n\n" "Contraseña: " $contraseña "\n\n" "¿Trabajas para otras webs?: " $trabajas "\n\n" "Comentarios: " "\n\n"$comentarios;
mail($destinatario,"Quiero ser Reportero de Genes Pokémon",$comentarios,"De:$mail");


?><table width="555" height="141" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><div align="center">
        <table width="555" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><div align="center"><img src="../imagenes/bordes/centro%20pagina%20secciones/arriba_noticias.gif" width="555" height="80"></div></td>
          </tr>
        </table>
        <table width="555" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td background="../imagenes/bordes/centro pagina/medio.jpg"><div align="center">
              <form name="reportero" method="post" action="reportero.php">
                <table width="500" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td><div align="center"><strong>Ser Reportero </strong></div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="500" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td><div align="center">Si quieres que todo el mundo te reconozca mediante reportero, no dudes en enviarnos este Formulario. En caso de que seas aceptado, tienes que ser responsable y cumplir las normas que se te enviaran al correo.</div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table> 
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="200"><div align="center"><strong>Nombre:</strong>
                      <table width="200" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td><div align="center">(Pon aqu&iacute; tu nombre real) </div></td>
                        </tr>
                      </table>
                    </div></td>
                    <td width="250"><div align="center">
                      <input name="nombre" type="text" id="nombre">
                    </div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="200"><div align="center"><strong>E-Mail:</strong>
                            <table width="200" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td><div align="center">(Pon aqu&iacute; tu direcci&oacute;n de E-Mail para poder contactar contigo)</div></td>
                              </tr>
                            </table>
                    </div></td>
                    <td width="250"><div align="center">
                        <input name="mail" type="text" id="mail">
                    </div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>  
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="200"><div align="center"><strong>Nick:</strong>                            
                        <table width="200" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td><div align="center">(Pon aqu&iacute; el nombre por el que seras reconocido, y por el que entraras al Fushi&oacute;n News)</div></td>
                              </tr>
                          </table>
                    </div></td>
                    <td width="250"><div align="center">
                        <input name="nick" type="text" id="nick">
                    </div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="200"><div align="center"><strong>Contrase&ntilde;a:</strong>
                        <table width="200" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td><div align="center">(Pon aqu&iacute; tu contrase&ntilde;a para entrar en el Fushi&oacute;n News)</div></td>
                              </tr>
                          </table>
                    </div></td>
                    <td width="250"><div align="center">
                        <input name="contrase&ntilde;a" type="text" id="contrase&ntilde;a">
                    </div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="200"><div align="center"><strong>&iquest;Trabajas para otras webs?: </strong>                            
                        <table width="200" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td><div align="center">(Pon aqu&iacute; si eres reportero de alguna otra web de Pok&eacute;mon)</div></td>
                              </tr>
                          </table>
                    </div></td>
                    <td width="250"><div align="center">
                        <input name="trabajas" type="text" id="trabajas">
                    </div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="200"><div align="center"><strong>Comentarios:</strong>                            
                        <table width="200" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td><div align="center">(&iquest;Tienes algo que decirnos al Respecto? &iquest; te gustaria comentar algo? pues ponlo aqu&iacute;)</div></td>
                              </tr>
                          </table>
                    </div></td>
                    <td width="250"><div align="center">
                      <textarea name="comentarios" cols="16" id="comentarios"></textarea>
</div></td>
                  </tr>
                </table>
                <table width="50" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                </table>
                <table width="450" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="225"><div align="center">
                      <input type="submit" name="Submit" value="Enviar">
</div></td>
                    <td width="225"><div align="center">
                      <input name="borrar" type="reset" id="borrar" value="Restablecer">
                    </div></td>
                  </tr>
                </table>
              </form>
__________________
Un buen foro_Para aprender PHP
  #2 (permalink)  
Antiguo 30/03/2004, 20:37
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Pues claro

No estoy seguro pero PHP, como C++ y otros lenguajes, interpreta lo primero que se encuentra en tu página y eso es esto:
Cita:
<?php
$destinatario="[email protected]";
$comentarios="Datos del solicitante" . "\n\n" ."Nombre: " . $nombre. "\n\n" . "E-Mail: " . $mail . "\n\n" . "Nick: " . $nick . "\n\n" . "Contraseña: " . $contraseña . "\n\n" . "¿Trabajas para otras webs?: " . $trabajas . "\n\n" . "Comentarios: " . "\n\n". $comentarios;
mail($destinatario,"Quiero ser Reportero de Genes Pokémon",$comentarios,"De:$mail");
?>
Te recomiendos que crees otra página con ese script y mandes el action de tu formulario sobre la misma.

Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 30/03/2004, 20:42
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
Muchas gracias.., me ha funcionado, pero una cosa mas, como puedo hacer para que automaticamente cuando apriete en enviar, me redireccione a la misma pag?
__________________
Un buen foro_Para aprender PHP
  #4 (permalink)  
Antiguo 30/03/2004, 20:50
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
Acabo de leer el mail que he enviado con todos los campos rellenados.., y ahora al recibir el mail lo recibo mal!..

Ahora en el mail recibo lo siguiende:

D``l`


y ya esta.., no se por que pasara eso.., alomejor esque si lo pongo en el form tengo que cambiar el codigo.. no tengo ni idea..
__________________
Un buen foro_Para aprender PHP
  #5 (permalink)  
Antiguo 30/03/2004, 21:01
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Prueba estyo

Claro como tus variables vienen de un formulario debes recogerlas de esta forma:
Código PHP:
<?php
$destinatario
="[email protected]";
$comentarios="Datos del solicitante" "\n\n" ."Nombre: " $_POST['nombre']. "\n\n" "E-Mail: " $_POST['mail']. "\n\n" "Nick: " $_POST['nick']. "\n\n" "Contraseña: " $_POST['contraseña']. "\n\n" "¿Trabajas para otras webs?: " . $$_POST['trabajas']. "\n\n" "Comentarios: " "\n\n"$_POST['comentarios'];
mail($destinatario,"Quiero ser Reportero de Genes Pokémon",$comentarios,"De:$mail");
?>
ahora me imagino que en el action de tu formulario hayas puesto algo como esto:
paginaconscript.php ¿no?

Salu2
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 30/03/2004, 21:15
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
si.., ahora ya lo recibo bien, pero como ago para que cuando lo envie que el form me redireccione a la pag del formulario?
__________________
Un buen foro_Para aprender PHP
  #7 (permalink)  
Antiguo 30/03/2004, 21:26
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
con un header

Pues has un header:
Código PHP:
 header("Location: paginadondeestaelformulario.php"); 
Salu2
__________________
Ing. Reynier Pérez Mira
  #8 (permalink)  
Antiguo 30/03/2004, 21:34
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
no se donde se poner.. jeje, lo siento pero esque son un poco burro pa esto.., bueno, voy ha intentarlo a ver..
__________________
Un buen foro_Para aprender PHP
  #9 (permalink)  
Antiguo 30/03/2004, 21:42
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Tidus ??

Has estudiado PHP Tidus? Creo que no pues esas fueron mis primeras dudas cuando comenzé a aprender PHP. Una cosa lo que no sepas trata de realizarlo por ti mismo de alguna manera. ¿documentación de php? en internet se sobra. Ahora si crees que no puedes hacerlo tu solo pide ayuda al foro pero solo si te ves en esa situación. Eso que te puse ahí va despues de la función mail pues es luego de enviar el mail que debes ser redireccionado a la pagina del formulario de nuevo ¿no?

Salu2

PD: Ahh !! Estudia que PHP es fácil. jejeje eso me lo han enseñado aquí pues me han obligado a estudiar para cosas muchos más sencillas que esas que tu preguntas pero al igual que tu no conocía.
__________________
Ing. Reynier Pérez Mira
  #10 (permalink)  
Antiguo 30/03/2004, 22:17
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
No hay manera de que me salga.., me pone todo el rato esto:

Warning: Cannot modify header information - headers already sent by (output started at /home/tidus17/public_html/imagenes/form_reportero.php:9) in /home/tidus17/public_html/imagenes/form_reportero.php on line 14

y eso que el codigo que yo tengo puesto es este:

Código PHP:
<html>
<head>
<title>:: Genes Pok&eacute;mon ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$destinatario
="[email protected]";
$comentarios="Datos del solicitante" "\n\n" ."Nombre: " $_POST['nombre']. "\n\n" "E-Mail: " $_POST['mail']. "\n\n" "Nick: " $_POST['nick']. "\n\n" "Contraseña: " $_POST['contraseña']. "\n\n" "¿Trabajas para otras webs?: " . $$_POST['trabajas']. "\n\n" "Comentarios: " "\n\n"$_POST['comentarios'];
mail($destinatario,"Quiero ser Reportero de Genes Pokémon",$comentarios,"De:$mail");
?>
<? header
("Location: reportero.php"); ?>
</body>
</html>
__________________
Un buen foro_Para aprender PHP
  #11 (permalink)  
Antiguo 30/03/2004, 22:23
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Prueba así

Tidus prueba así a ver:
Código PHP:
<?
 ob_start
();
?>
<html>
<head>
<title>:: Genes Pok&eacute;mon ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$destinatario
="[email protected]";
$comentarios="Datos del solicitante" "\n\n" ."Nombre: " $_POST['nombre']. "\n\n" "E-Mail: " $_POST['mail']. "\n\n" "Nick: " $_POST['nick']. "\n\n" "Contraseña: " $_POST['contraseña']. "\n\n" "¿Trabajas para otras webs?: " . $$_POST['trabajas']. "\n\n" "Comentarios: " "\n\n"$_POST['comentarios'];
if(
mail($destinatario,"Quiero ser Reportero de Genes Pokémon",$comentarios,"De:$mail")){
 
header("Location: reportero.php");
}else{
 
header("Location:paginadondesemuestranloserrores.php");
}
?>
</body>
</html>
<?
 ob_end_flush
();
?>
Salu2
__________________
Ing. Reynier Pérez Mira

Última edición por Reynier; 30/03/2004 a las 22:27
  #12 (permalink)  
Antiguo 30/03/2004, 22:35
 
Fecha de Ingreso: enero-2004
Ubicación: En un lugar donde abunda la MaGiA
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 0
Warning: Cannot modify header information - headers already sent by (output started at /home/tidus17/public_html/imagenes/form_reportero.php:2) in /home/tidus17/public_html/imagenes/form_reportero.php on line 15

Lo mismo....
__________________
Un buen foro_Para aprender PHP
  #13 (permalink)  
Antiguo 31/03/2004, 06:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Todo ese HTML de esa script está de más ..

Código PHP:
<?php
$destinatario
="[email protected]";
$comentarios="Datos del solicitante" "\n\n" ."Nombre: " $_POST['nombre']. "\n\n" "E-Mail: " $_POST['mail']. "\n\n" "Nick: " $_POST['nick']. "\n\n" "Contraseña: " $_POST['contraseña']. "\n\n" "¿Trabajas para otras webs?: " . $$_POST['trabajas']. "\n\n" "Comentarios: " "\n\n"$_POST['comentarios'];
mail($destinatario,"Quiero ser Reportero de Genes Pokémon",$comentarios,"De:$mail");
?>
<? header
("Location: reportero.php"); ?>

Fijate en que momento se llega a mostrar algo de ese HTML en el navegador: nunca, .. nunca por qué cuando termina el proceso PHP (se ejecuta lo que hay entre <? y ?> de tu primer bloque) .. mandas una salida tipo "navegador: cambia la página actual a tal página (location .. pagina.tal) ..". Las cabeceras HTTP via header() se interpretan antes de cualquier otro HTML/etc que le envies al navegador ...

Lo que proponía Reynier con el tema de las funciones de control del bufer de salida (ob_start() y afines) debería ir .. pero si te marca una "salida" en la línea 2 es por qué algo de HTML/espacios o saltos de línea tienes ahí.

Un saludo,

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:16.