Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/04/2006, 06:30
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Pues bien lo que quiero es cuando seleccioné por ejemplo A del primero seleccione también A del segundo y si el usuario selecciona otro que salga un aviso o no pueda enviar el formulario.
Eso lo debes resolver con javascript.

Cita:
2 - Con el formulario envió imágenes y texto a una base de datos, pues quiero saber como puedo evitar al hacer el submit que esos datos se guarden en la base de datos, si por ejemplo, no se ha subido la foto, se han dejado un campo vacio o pasa lo que expongo en el punto 1, etc???
Simplemente con "IF()" a las variables que necesites .. y usando empty() para ver si tiene valor o no .. Por lo menos esto es efectivo para tus variables del formulario normales.

Código PHP:
<?
if (emtpy($_POST['ruta'])){
// No hay dato en ruta ...
} else {
// procesas el Upload (con move_upload_file() y los $_FILES ....
}
La del campo "file" mejor usar is_uploaded_file() o aplicar el If() a move_uploaded_file() por qué dicha función devuelve "true" si el archivo se pudo mover a su destino definitivo.

Cita:
3 - Y por ultimo, cuando envió el formulario los datos se graban en la base de datos, pero si le doy a actualizar, al navegador, se duplican los datos, como puedo evitar que se envien los datos cuando hace F5 o aztualiza la página???
Redirecciona al terminar tu proceso. En consecuencia tu script de proceso (el que gestiona el ingreso de esos datos a tu BBDD .. etc) NO debe de tener NADA!!!! de HTML por médio .. ni un Echo "su archivo subió bien o mal" .. NADA.

Para redireccionar usas (como ya lo haces):

header("Location: dondetengasqueir.php");
exit;

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /ruta/absoluta/crear.php:16) in /ruta/absoluta/crear.php on line 119
Presta atención al mensaje de error .. Te está diciciendo en que scritp (crear.php) y en que línea (16) del mismo tienes el problema .. Concretamente es ese "HTML" o algún mensaje (echo "algo") .. o un simple espacio o salto de línea antes de <? .. o despues de un ?>. Eso se considera "salida" y es lo que no se puede originar si usas header() (que envia "cabeceras HTTP" al cliente).

Como ya te comenté .. en ese script de -proceso- NO corresponde nada de mensajes ni HTML por médio. SÓLO es de proceso.

Cita:
en la cabecera de la página crear.php, tengo:


Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Fijate bien que va hacer tu script. Según el condicional se cumpla o no (esos "if()" de tus validaciones y demás) vas a "redireccionar" .. es decir NUNCA vas a generar una página HTML en ese caso (al menos) .. siempre de alguna forma u otra vas a "Redireccinar" .. Por ende NO corresponde cabeceeras ni nada más por médio NO se va a entregar esa página a tu navegador .. lo que le envias es una directiva (cabecera HTTP) que dice "cambia la página que está por otra .. ". Y estas "cabeceras" (enviadas con PHP por header()) se procesan -antes- de cualquier otro HTML por médio que puedas enviar.

Los mensajes de error/exito que puedas necesitar mostrar DEBES hacerlos en el scritp que redireccionas (a donde llegas). Para eso te puedes ayudar de una variable de control que indique que mensaje debes mostrar:
Código PHP:
<?
header 
("Location: nose.php?msg=1");
exit;
y donde llegues al redireccionar .. filtras esa variable y la procesas:

Código PHP:
<?
if (!empty($_GET['msg'])){
echo 
"El mensaje es el código: ".$_GET['msg'];
}
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.