pixel2you
Usuario Novato
Usuario Novato

Buenas gente, os comento.

Estoy haciendo una página web de contacto, la cual contiene un formulario en html (pixel2you.com/contact.html), que llama a formulario.php, para enviarlo, validarlo etc...

Bien, todo me va correctamente, pero ayer decidí, insertarle a este código una validación mediante imágenes aleatorias.

Los problemas que tengo son los siguientes, como no me cabia en el propio formulario, decidí, crear una nueva web, para validar el formulario, anterior, mediante otro formulario, el cual contendría la imagen aleatoria (pixel2you.com/validacion.php).

Para ello, he creado varios php...

La página validacion.php contiene:

<?php
include("proteccion_grafica.php&quotGiño;
?>

<form action="validar_codigo.php" method="post" name="datos" id="datos">
<p><br />
<span class="texto">C&oacute;digo:</span>
<input name="codigo_seguridad" type="password" class="casillas" size="5" maxlength="5" />
<br />
</p>
</form>

================================================== =====================

La página validar_codigo.php contiene:

<?php
session_start();

if (trim($_SESSION["cdg"]) != trim($_POST["codigo_seguridad"])) {
header('Location: pixel2you.com/fallo.html');
}

else{

if(mail($destinatario, $asunto, $texto,$cabeceras)){
header('Location: pixel2you.com/completado.html');
mail($de, $asunto, $respuesta,$headers);
}
}
?>

================================================== =====================

La página proteccion_grafica.php contiene:

<?php

function generar_codigo($longitud=5) {
mt_srand((double)microtime()*1000000);
$codigo=md5(uniqid(mt_rand()));
$codigo=substr($codigo, 0, $longitud);
return $codigo;
}

session_start();
session_register('ataque');

$_SESSION["cdg"]=generar_codigo();

================================================== =====================

?>

<?php // codigo.php
// Iniciamos la sesión
session_start();

// Le damos un nombre
session_register('ataque');

// Enviamos las cabeceras al navegador, para que
// sepa que el documento es una imagen
header("Content-type: image/png&quotGiño;

// a la variable $codigo le damos el
// valor del código generado
$codigo=$_SESSION["cdg"];

// Creamos la imagen
$imagen=ImageCreate(70, 35);

// Generamos el fondo gris
$fondo_blanco=ImageColorAllocate($imagen, 255, 255, 255);

// Generamos el color de las letras (negro)
$letras_negras=ImageColorAllocate($imagen, 0, 0, 0);

// Rellenamos la imagen con fondo gris
ImageFill($imagen, 0, 0, $fondo_blanco);

// Escribimos $codigo con letras negras
// de numero 5
ImageString($imagen, 5, 10, 10, $codigo, $letras_negras);

// Creamos la imagen *.png
ImagePng($imagen);
?>

================================================== =====================

Bien los errores y dudas que tengo son las siguientes:

Error:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/vqeacznu/public_html/validacion.phpBeso in /home/vqeacznu/public_html/proteccion_grafica.php on line 10

La línea 10 viene siendo -> session_start();

Dudas, que tendría que hacer, para que una vez haya pasado del formulario de contact, al formulario de validacion con la imagen aleatoria, si acepta el código, me enviase los datos del formulario anterior?, es decir, tendría que pasar todos los datos del formulario a validar_codigo.php?

Por favor, si alguien lo sabe que me ayude, se lo agradecería muchisimo.

Muchas gracias.

Avatar Image
Machacateclados
Machacateclados

El error con session_start() en la linea 10 se debe a que session_start() debe aparecer antes de que cualquier cosa se muestre en al navegador. Ya sea un print... etiquetas head de HTML, lo que sea, session_start() debe estar antes de cualquiera de estas cosas. Si tu script esta incluido en un formato HTML que ya mandó las etiquetas de formato, y empezó con el <body> pues ni de chiste va a aceptar el session_start().

Ahora. Yo que tu reduciria todo a un solo formulario, pere de cualquier manera, para haver lo que quieres te puedo sugerir que los datos del primer formulario que se envian en POST al otro, los captures con el segundo con campos hidden

<input type="hidden" name="campo_1" value="$_POST[campo_1]">

Así podras tratar los valores como si fueran del mismo formulario e incluso con el mismo nombre. Pero como os digo, me parece inecesario.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 02/Mar/2009, 19:08
encigu jucedima SysAdmin smaco chavp53kJul/09
Por: , el 13/Ago/2004, 06:27
gabrielfin NoSetup.org ivanitoweb82kAug/04
Por: , el 27/Ago/2010, 20:44
sillysausage NoSetup.org DELEON.COM Sirquini84kSep/10
Por: , el 06/Ene/2009, 17:02
Silphor NoSetup.org GestionXls75kJan/09
Por: , el 28/Dic/2008, 05:40
albertocordoba GestionXls12kDec/08