Foros del Web » Programando para Internet » PHP »

error php headers en captcha

Estas en el tema de error php headers en captcha en el foro de PHP en Foros del Web. hola amigos tengo un codigo en donde estoy implementando un captcha este http://www.9lessons.info/2010/07/goo...-with-php.html lo envio por post pero hay enviarlo y el captcha ser correcto ...
  #1 (permalink)  
Antiguo 26/07/2011, 07:55
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
error php headers en captcha

hola amigos tengo un codigo en donde estoy implementando un captcha

este http://www.9lessons.info/2010/07/goo...-with-php.html

lo envio por post

pero hay enviarlo y el captcha ser correcto me da este error

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/reg2.php:3) in /home/public_html/reg2.php on line 76


la linea 76 es esto

header("location:".$nombreclasi2."_".$id_clasi);


que debo hacer aca dejo el codigo completo gracias

crear.php
Código PHP:
Ver original
  1. <?php session_start(); ?>
  2.  
  3. <?php
  4.  
  5. /** Validate captcha */
  6. if (!empty($_REQUEST['captcha'])) {
  7.     if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
  8.         $captcha_message = "Invalido captcha";
  9.         $style = "background-color: #FF606C";
  10.         ?>
  11.           <script language="JavaScript" type="text/javascript">
  12.         setTimeout("url()",1000);
  13.         function url()
  14.         {
  15.         window.history.back();
  16.         }
  17.             </script>
  18.           <?  
  19.     } else {
  20.        
  21. //Conexion con la base
  22. $conexion= mysql_connect("localhost","user","xxx");
  23.  
  24. //selección de la base de datos con la que vamos a trabajar
  25. mysql_select_db("tabla");
  26.  
  27. //variable clasificado
  28. $nombreclasi = $_POST["clasificado"];
  29.  
  30. $nombreclasi=str_replace(array('(','\'','´','{','}','+','´','*','¨','[',']','%','-','ç','&','/','\ ','%','\$','#','"','!','?','¡',':',';',')'),'',$nombreclasi);
  31.  
  32. //variable imagen
  33. $nombre_archivo = $_FILES["imagen"]["name"];  
  34. $tipo_archivo = $_FILES["imagen"]["type"];  
  35. $tamano_archivo = $_FILES["imagen"]["size"];
  36.  
  37. //corto el texto hasta 50
  38. $nombreclasi2 = $nombreclasi;
  39.  
  40. $nombreclasi2= substr(str_replace(" ", "-", $nombreclasi2), 0,50);
  41. $categoria = $_POST["categoria"];
  42.  
  43. //Fecha actual
  44. $fecha = date("Y-m-d H:i:s");
  45. $fecha1 = date("d");
  46.  
  47. //Fecha vencimiento
  48. $fecha_exp = date('Y-m-d H:i:s', strtotime('+3 month' . $fecha));
  49.  
  50.  
  51.  
  52. //compruebo si las características del archivo son las que deseo  
  53.  
  54. if (!empty($_FILES['imagen']['name'])) {
  55.     if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "png")) && (    $tamano_archivo < 20000000)))
  56. {  
  57.     echo "La extension o el tamano de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 2 Mb maximo.</td></tr></table>";
  58. ?>
  59.           <script language="JavaScript" type="text/javascript">
  60.         setTimeout("url()",3000);
  61.         function url()
  62.         {
  63.         window.history.back();
  64.         }
  65.             </script>
  66.           <?    
  67. }}else {//Ejecucion de la sentencia SQL
  68.  
  69. $sql = "INSERT INTO clasificados (clasificado,nombreclasi,fecha,fecha_exp,categoria,imagen) VALUES ('$nombreclasi','$nombreclasi2','$fecha','$fecha_exp','$categoria','$nom_img')";
  70.  
  71.  if(mysql_query($sql,$conexion)){
  72. //obtenemos el ID del ultimo registro y hacer header
  73. $id_clasi = mysql_insert_id();
  74.  
  75.  
  76. header("location:".$nombreclasi2."_".$id_clasi);
  77.  
  78. }else{
  79. echo 'error en la consulta: '.mysql_error();
  80. }}
  81.  
  82.     $nom_img = "img-".$fecha1.$nombre_archivo;  
  83.    
  84.      
  85.     $directorio = 'imgcl';
  86.  
  87.     if (move_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'],$directorio . "/" . $nom_img))
  88.     {  
  89.        
  90. //Ejecucion de la sentencia SQL
  91.  
  92. $sql = "INSERT INTO clasificados (clasificado,nombreclasi,fecha,fecha_exp,categoria,imagen) VALUES ('$nombreclasi','$nombreclasi2','$fecha','$fecha_exp','$categoria','$nom_img')";
  93.  
  94.  if(mysql_query($sql,$conexion)){
  95. //obtenemos el ID del ultimo registro y hacer header
  96. $id_clasi = mysql_insert_id();
  97.  
  98.  
  99. header("location:".$nombreclasi2."_".$id_clasi);
  100. }else{
  101. echo 'error en la consulta: '.mysql_error();
  102. }
  103.  
  104. }
  105.  
  106.  
  107.  
  108.    
  109.    
  110.    
  111.     }
  112.  
  113.  
  114.     unset($_SESSION['captcha']);
  115. }
  116.  
  117.  
  118. ?>


gracias por su tiempo estoy atento
  #2 (permalink)  
Antiguo 26/07/2011, 08:18
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: error php headers en captcha

Hola,

No podes modificar el header si antes hiciste un echo. Te aconsejo que utilices algo asi:

Código PHP:

echo '<script>location.href = ".$nombreclasi2."_".$id_clasi."</script>';
die(); 
Hace lo mismo, en lugar de modificar el header, redirije la pagina a otro script.

Espero haber sido claro.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 26/07/2011, 11:20
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: error php headers en captcha

ArkangelGammar

como asi quito este y lo reemplazo
header("location:".$nombreclasi2."_".$id_clasi);


echo '<script>location.href = ".$nombreclasi2."_".$id_clasi."</script>';
die();

o como ?
  #4 (permalink)  
Antiguo 26/07/2011, 14:40
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: error php headers en captcha

Claro, hace el reemplazo y vas a ver que funcion...por ahi vas a tener que ajustar un poco la direccion a la cual queres redirigir, pero solo eso.

Avisa como te fue

Saludos.
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #5 (permalink)  
Antiguo 26/07/2011, 14:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error php headers en captcha

charlescuellar, pero claro que estaba mal tu código, no es necesario recurrir a Javascript:

Tan solo procura usar un solo bloque de <?php ?>

Ya que actualmente en el primer bloque inicias sesión, cierras, dejas una linea en blanco (la cual provoca el error), abres otro bloque, etc...

Código PHP:
<?php
session_start
();

// el demás código...
Te invito a leer lo siguiente:
http://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 26/07/2011, 16:16
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: error php headers en captcha

pateketrueke gracias por el dato

Etiquetas: captcha, headers, html, mysql, registro, sql, tabla, variables
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 22:51.