Foros del Web » Programando para Internet » PHP »

peroblemas para revisar variable y seguir con el script

Estas en el tema de peroblemas para revisar variable y seguir con el script en el foro de PHP en Foros del Web. buenas... espero puedan ayudarme.. el hecho es asi... tengo un script para subir fotos . lo que pretendo es limitar peso. y formatos.. de esta ...
  #1 (permalink)  
Antiguo 26/01/2010, 07:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 7 meses
Puntos: 5
peroblemas para revisar variable y seguir con el script

buenas... espero puedan ayudarme..
el hecho es asi... tengo un script para subir fotos . lo que pretendo es limitar peso. y formatos.. de esta manera

if (strtolower(substr($_FILES['foto1']['type'],-4))!="jpeg" && strtolower(substr($_FILES['foto1']['type'],-3))!="png" && strtolower(substr($_FILES['foto1']['type'],-3))!="gif")
{
echo "<script type=\"text/javascript\">alert(\"Archivo exedido de tamaño.. permitido hasta 100kb o extencion incorrecta\");</script>";
}
elseif($_FILES['foto1']['size']>2048000)
{
echo "<script type=\"text/javascript\">alert(\"Archivo exedido de tamaño.. permitido hasta 100kb o extencion incorrecta\");</script>";
}
}
lo cual. funciona a la perfeccion.. "pero" aqui controlo solo una foto de 5 que se suben..
y en caso de que no suban foto al cargar el formulario. me da error porque no puede ver si la foto cumple con lo requerido ya que no se subio,,

entonces lo que tengo que hacer es preguntar si la variable $_FILES['foto1'] tiene algo. y si viene vacia salte este paso al siguiente que es el mismo pero para foto2 y asi sucesibamente hasta foto5

se entiende?
la idea es que antes de revisar cada foto. pregunte si la variable. foto1 tiene algo.. si no tiene va a foto 2 y pregunta si tiene algo.. hasta que encuentra una que tiene algo y revisa su fotmato y peso con este script..
pero no me sale... muchas gracias gente me darian una mano enorme
  #2 (permalink)  
Antiguo 26/01/2010, 08:18
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: peroblemas para revisar variable y seguir con el script

Claro, te toca recorres $_FILES[] como un array... Ya sea con foreach o con un for. Y en el ciclo hacer tus validaciones.

$_FILES

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 26/01/2010, 08:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: peroblemas para revisar variable y seguir con el script

si si... en ese caso estamos de acuerdo.... el problema no pasa por ahi. pasa por. que si la variable q viene $_files['foto1'] por ejemplo. viene vacia. le salta el alert de que no cumple con las extenciones requeridas....

y no encuentro como esquivar eso.. osea tal vez tengo problemas con las llaves o algo porque prove con if (!empty($_FILES['foto1'])) y no me funciona..
  #4 (permalink)  
Antiguo 26/01/2010, 08:26
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: peroblemas para revisar variable y seguir con el script

Creo que sería algo tal que...
Código PHP:
Ver original
  1. if (empty($_FILES['foto1']))
o
Código PHP:
Ver original
  1. if (isset($_FILES['foto1']))

Saludosss
  #5 (permalink)  
Antiguo 26/01/2010, 08:28
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: peroblemas para revisar variable y seguir con el script

Pues no entiendo entonces, si no quieres que salte el alert, pues quítalo no? El ciclo continuará normalmente con o sin alert.

Además creo que es if ( empty ( $variable ) )...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 26/01/2010, 08:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: peroblemas para revisar variable y seguir con el script

pues tu no me entiendes... claro que quiero que salte el alert de si esta pasada de peso y no es el formato... pero el hecho es que el alert salta tambien cuando no se suben imagenes... y no es obligatorio subir imagenes... por eso es el problema... entiendo bien lo que me dies.. pero asi y todo me sigue dando problemas.. paso a postear el codigo asi tal vez entiendan a que me refiero..


if ($_POST[enviar] != "") {
$directorio = '../fotosindex';
$_FILES['foto1']['size'];
$_FILES['foto1']['type'];
$_FILES['foto2']['size'];
$_FILES['foto2']['type'];
$_FILES['foto3']['size'];
$_FILES['foto3']['type'];
$_FILES['foto4']['size'];
$_FILES['foto4']['type'];
$_FILES['foto5']['size'];
$_FILES['foto5']['type'];


if (!empty($_FILES['foto1']))
{
if (strtolower(substr($_FILES['foto1']['type'],-4))!="jpeg" && strtolower(substr($_FILES['foto1']['type'],-3))!="png" && strtolower(substr($_FILES['foto1']['type'],-3))!="gif")
{
echo "<script type=\"text/javascript\">alert(\"Archivo exedido de tamaño.. permitido hasta 100kb o extencion incorrecta\");</script>";
}
elseif($_FILES['foto1']['size']>20480)
{
echo "<script type=\"text/javascript\">alert(\"Archivo exedido de tamaño.. permitido hasta 100kb o extencion incorrect\");</script>";
}
}
else






(move_uploaded_file($_FILES['foto1']['tmp_name'], $directorio.'/'. $_FILES['foto1']['name']));
(move_uploaded_file($_FILES['foto2']['tmp_name'], $directorio.'/'. $_FILES['foto2']['name']));
(move_uploaded_file($_FILES['foto3']['tmp_name'], $directorio.'/'. $_FILES['foto3']['name']));
(move_uploaded_file($_FILES['foto4']['tmp_name'], $directorio.'/'. $_FILES['foto4']['name']));
(move_uploaded_file($_FILES['foto5']['tmp_name'], $directorio.'/'. $_FILES['foto5']['name']));

$GuardarEn="../fotosindex/";
$GuardarEnimages="../images/";


$user='root';
$pass='123456';
$dbhost='localhost';
$dbname='web246-proyecto';


mysql_connect($dbhost,$user,$pass) or die ("error coneccion 001");
mysql_select_db($dbname) or die("error database 001");



$tel=$_POST['tel'];
$cel=$_POST['cel'];
$ano=$_POST['ano'];
$puertas=$_POST['puertas'];
$cilindrada=$_POST['cilindrada'];
$combustible=$_POST['combustible'];
$camino=$_POST['kilometros'];
$precio=$_POST['precio'];
$direccion=$_POST['direccion'];
$transmision=$_POST['transmision'];
$inyeccion=$_POST['inyeccion'];
$audio=$_POST['audio'];
$espejos=$_POST['espejos'];
$vidrios=$_POST['vidrios'];
$parabrisas=$_POST['parabrisas'];
$turbo=$_POST['turbo'];
$aire=$_POST['aire'];
$faros=$_POST['faros'];
$llantas=$_POST['llantas'];
$abs=$_POST['abs'];
$valvulas=$_POST['valvulas'];
$techo=$_POST['techo'];
$bloqueo=$_POST['bloqueo'];
$airbag=$_POST['airbag'];
$alarma=$_POST['alarma'];
$foto1=$_FILES['foto1'];
$foto2=$_FILES['foto2'];
$foto3=$_FILES['foto3'];
$foto4=$_FILES['foto4'];
$foto5=$_FILES['foto5'];
$extra=$_POST['extra'];
$modelo=$_POST['modelo'];
$str=$_POST['marca'];
$long=strlen($str)-1;
$marca = substr($str,0,$long);
$categoria=$_POST['categoria'];
if ($categoria==00){
$veiculo=auto;
}
elseif ($categoria==01){
$veiculo=camionetas;
}
elseif ($categoria==02){
$veiculo==camines;
}





if (empty($foto1)){
$guardar=$GuardarEnimages . 'car.png';
}
else
{
$guardar=$GuardarEn . $_FILES['foto1']['name'];
}
if (empty($foto2)){
$guardar1=$GuardarEnimages . 'car.png';
}
else
{
$guardar1=$GuardarEn . $_FILES['foto2']['name'];
}
if (empty($foto3)){
$guardar2=$GuardarEnimages . 'car.png';
}
else
{
$guardar2=$GuardarEn . $_FILES['foto3']['name'];
}
if (empty($foto4)){
$guardar3=$GuardarEnimages . 'car.png';
}
else
{
$guardar3=$GuardarEn . $_FILES['foto4']['name'];
}
if (empty($foto5)){
$guardar4=$GuardarEnimages . 'car.png';
}
else
{
$guardar4=$GuardarEn . $_FILES['foto5']['name'];
}
$img=$marca . '.jpg';

mysql_query("INSERT INTO auto (foto1, foto2, foto3, foto4, foto5, marca, modelo, direccion, combustible, aire, vidrios, llantas, extra, techo , ano , precio , img, camino, audio, alarma, cilindrada, transmision, bloqueo, abs, airbag, veiculo, valvulas, puertas, faros, parabrisas, espejos, turbo, inyeccion , tel, cel) VALUES ('$guardar', '$guardar1', '$guardar2', '$guardar3', '$guardar4', '$marca', '$modelo', '$direccion', '$combustible', '$aire', '$vidrios', '$llantas', '$extra', '$techo', '$ano', '$precio' ,'$GuardarEnimages$img' , '$camino' , '$audio' , '$alarma', '$cilindrada', '$transmision', '$bloqueo', '$abs', '$airbag', '$veiculo', '$valvulas', '$puertas', '$faros', '$parabrisas', '$espejos', '$turbo', '$inyeccion', '$tel', '$cel' )") or die ("no ingresa datos");

echo "<script type=\"text/javascript\">alert(\"Solicitud procesada, Veiculo dado de alta\");location.href='../publicar_veiculos.php'</script>";




}

?>
  #7 (permalink)  
Antiguo 26/01/2010, 08:46
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: peroblemas para revisar variable y seguir con el script

Quizás diré una burrada pero ¿no es algo incongruente validar con PHP y usar javascript sólo para un simple alert?. El tamaño de un archivo podría 1) validarse sin problemas con javascript e impedir que cargue antes de hacer nada o 2) procesar con PHP, refrescar con un mensaje y al carajo con el alert, o mejor aún, ambos métodos juntos.
  #8 (permalink)  
Antiguo 26/01/2010, 08:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 7 meses
Puntos: 5
si entiendo lo que dices. pero solo es un alert, esto no implica que el codigo este bien... el problema es mas facil aun pero no encuentro como saltarlo....

lo unico que tengo que hacer es lo siguiente.... que si $_FILES['foto1'] esta vacio pase de largo las validaciones.. solo eso. pero no lo logro

Gente muchas gracias por sus respuestas.. consegui lo que buscaba lograr..

algo asi quedo al final solo me falta que recorra las fotos pero es como antes lo mencionaron lo hago desde un for


if ($_FILES['foto1']!=='')
{
if (strtolower(substr($_FILES['foto1']['type'],-4))!="jpeg" && strtolower(substr($_FILES['foto1']['type'],-3))!="png" && strtolower(substr($_FILES['foto1']['type'],-3))!="gif")
{
echo "<script type=\"text/javascript\">alert(\"Archivo exedido de tamaño.. permitido hasta 100kb o extencion incorrecta\");</script>";
}
elseif ($_FILES['foto1']!=='')
{
if($_FILES['foto1']['size']>2048)
{
echo "<script type=\"text/javascript\">alert(\"Archivo exedido de tamaño.. permitido hasta 100kb o extencion incorrect\");</script>";
}

else
{


nuevamente muchas gracias por sus respuestas

buenas buenas... nuevamente pidiendo ayuda.. dado que no,. no me marcho. solo me marcho unos momentos proque tenia problemas con las cookies. pero ahora comenzaron nuevamente los problemas

bueno el hecho es asi... lo que presiso es saber si foto 1 trae algo si trae algo. controlar extencion y peso.... si extencion o peso no estan entre lo establecido. enviar un alert...

si estan continua enviando el formulario...

pero...... cabe la posibilidad de que la no venga una foto. entonces se deberia continuar con la carga del formulario porque no es obligatorio subir una foto.. si alguien puede decirme como hacer se lo agradezco mucho ya que esto me tiene todo trancado....


muchas gracias

Última edición por GatorV; 26/01/2010 a las 10:55

Etiquetas: revisar, seguir, 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 20:10.