Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2006, 05:30
erponcios
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 17 años, 11 meses
Puntos: 0
Problema con formulario.

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");
?>

<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");

// 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.php:9) 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.