Foros del Web » Programando para Internet » PHP »

PHP OO Una mano resumir PHP que no se aun

Estas en el tema de Una mano resumir PHP que no se aun en el foro de PHP en Foros del Web. Alguien me puede echar una mano a resumir este código, soy algo novato y nuevo, por no decir mucho, y es todo corta y pega, ...
  #1 (permalink)  
Antiguo 11/05/2014, 13:29
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Una mano resumir PHP que no se aun

Alguien me puede echar una mano a resumir este código, soy algo novato y nuevo, por no decir mucho, y es todo corta y pega, para poder subir 4 imágenes, donde la imagen se renombrar a la id del cliente y la se crea una carpeta con el mismo nombre que la id alojando dentro las 4 imágenes.

Muchas gracias.

Código PHP:
<?php require_once('Connections/conexion_tareas.php'); ?>
<?php
$currentPage 
$_SERVER["PHP_SELF"];

function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}



$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}


if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$archivos_disp_ar = array('jpg''jpeg''gif''png');
  
$carpeta 'Upload';
  
$imagen $_FILES['imagen1']['tmp_name'];
  
$imagen2 $_FILES['imagen2']['tmp_name'];
  
$imagen3 $_FILES['imagen3']['tmp_name'];
  
$imagen4 $_FILES['imagen4']['tmp_name'];
  
$nombrebre_orig $_FILES['imagen1']['name'];
  
$nombrebre_orig2 $_FILES['imagen2']['name'];
  
$nombrebre_orig3 $_FILES['imagen3']['name'];
  
$nombrebre_orig4 $_FILES['imagen4']['name'];
  
$array_nombre explode('.',$nombrebre_orig);
  
$array_nombre2 explode('.',$nombrebre_orig2);
  
$array_nombre3 explode('.',$nombrebre_orig3);
  
$array_nombre4 explode('.',$nombrebre_orig4);
  
$cuenta_arr_nombre count($array_nombre);
  
$cuenta_arr_nombre2 count($array_nombre2);
  
$cuenta_arr_nombre3 count($array_nombre3);
  
$cuenta_arr_nombre4 count($array_nombre4);
  
$extension strtolower($array_nombre[--$cuenta_arr_nombre]);
  
$extension strtolower($array_nombre2[--$cuenta_arr_nombre2]);
  
$extension strtolower($array_nombre3[--$cuenta_arr_nombre3]);
  
$extension strtolower($array_nombre4[--$cuenta_arr_nombre4]);
  
  
  
if(!
in_array($extension$archivos_disp_ar)) $error "La cagaste 1 archivo error bien cagada";

if(empty(
$error)){
        
$query "SELECT LAST_INSERT_ID()+1 FROM archivos";
        
$last_id mysql_resultmysql_query$query ), 0);
        
mkdir("Upload/".$last_id,0777);
        
$nombre_nuevo $last_id.'-1.'.$extension;
        
$nombre_nuevo2 $last_id.'-2.'.$extension;
        
$nombre_nuevo3 $last_id.'-3.'.$extension;
        
$nombre_nuevo4 $last_id.'-4.'.$extension;
        
$carpeta_mas_nombre "$carpeta/$last_id/";
        
$nombre_nuevo_con_carpeta $carpeta_mas_nombre.$nombre_nuevo;
        
$nombre_nuevo_con_carpeta2 $carpeta_mas_nombre.$nombre_nuevo2;
        
$nombre_nuevo_con_carpeta3 $carpeta_mas_nombre.$nombre_nuevo3;
        
$nombre_nuevo_con_carpeta4 $carpeta_mas_nombre.$nombre_nuevo4;
        
$mover_archivos move_uploaded_file($imagen $nombre_nuevo_con_carpeta);
        
$mover_archivos2 move_uploaded_file($imagen2 $nombre_nuevo_con_carpeta2);
        
$mover_archivos3 move_uploaded_file($imagen3 $nombre_nuevo_con_carpeta3);
        
$mover_archivos4 move_uploaded_file($imagen4 $nombre_nuevo_con_carpeta4);
        
chmod($nombre_nuevo_con_carpeta,0777);
        
chmod($nombre_nuevo_con_carpeta2,0777);
        
chmod($nombre_nuevo_con_carpeta3,0777);
        
chmod($nombre_nuevo_con_carpeta4,0777);
      
      
    
$insertSQL sprintf("INSERT INTO archivos (Imagen1, Imagen2, Imagen3, Imagen4) VALUES (%s,%s,%s,%s)",
                            
GetSQLValueString($nombre_nuevo"text"),
                            
GetSQLValueString($nombre_nuevo2"text"),
                            
GetSQLValueString($nombre_nuevo3"text"),
                               
GetSQLValueString($nombre_nuevo4"text"));
    
      
mysql_select_db($database_conexion_archivos$conexion_archivos);
      
$Result1 mysql_query($insertSQL$conexion_archivos) or die(mysql_error());
    }
}


mysql_select_db($database_conexion_archivos$conexion_archivos);
$query_Recordset1 "SELECT * FROM archivos";
$Recordset1 mysql_query($query_Recordset1$conexion_archivos) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);


y si lo quisiera unir a este otro y que funcionase? es que quiero unirlo a un formulario y que a la vez que se registra al cliente se suban sus fotos, y por separa funciona pero juntos... nada y no se donde falla.

Código PHP:
 <?php require_once('Connections/conexion_tareas.php'); ?>
<?php
$currentPage 
$_SERVER["PHP_SELF"];

function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
    
$insertSQL sprintf("INSERT INTO tareas (Nombre, Telefono, Fecha, Observaciones, Tipo) VALUES (%s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['Nombre'], "text"),
                       
GetSQLValueString($_POST['Telefono'], "int"),
                       
GetSQLValueString($_POST['Fecha'], "text"),
                       
GetSQLValueString($_POST['Observaciones'], "text"),
                       
GetSQLValueString($_POST['Tipo'], "text"));
                   

  
mysql_select_db($database_conexion_tareas$conexion_tareas);
  
$Result1 mysql_query($insertSQL$conexion_tareas) or die(mysql_error());

  
$insertGoTo "ingreso_exitoso.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}


$startRow_consulta_tareas $pageNum_consulta_tareas $maxRows_consulta_tareas;

mysql_select_db($database_conexion_tareas$conexion_tareas);
$query_consulta_tareas "SELECT * FROM tareas";
$query_limit_consulta_tareas sprintf("%s LIMIT %d, %d"$query_consulta_tareas$startRow_consulta_tareas$maxRows_consulta_tareas);
$consulta_tareas mysql_query($query_limit_consulta_tareas$conexion_tareas) or die(mysql_error());
$row_consulta_tareas mysql_fetch_assoc($consulta_tareas);
?>

Última edición por Triby; 11/05/2014 a las 14:55 Razón: Bajarle volúmen al texto! xD
  #2 (permalink)  
Antiguo 11/05/2014, 13:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una mano resumir PHP que no se aun

Estás gritando...
¿Podrías, por favor, dejar el texto en su tamaño estándar?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/05/2014, 13:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Una mano resumir PHP que no se aun

Cita:
Alguien me puede echar una mano a resumir este código, soy algo novato y nuevo, por no decir mucho, y es todo corta y pega
Todos hemos recorrido el camino de comenzar algo nuevo. Pero la experiencia a demostrado que ayudarte de la forma que pides, lo único que hace es que tu sigas haciendo copy & paste.
Así que, lo mejor es que intentes por ti mismo lo que estas pidiendo a gritos. El primer paso sera que entiendas que hacen los dos fragmentos de código y luego los hagas funcionar como requieres, después cuando lo tengas listo si quieres puedes publicar el resultado para que alguno de los miembros de este foro te ayude a mejorar lo que hiciste.
Si tienes problemas con la programación existe un excelente libro que te puede ayudar es cosa de que lo consigas: http://www.casadellibro.com/libro-fu...8139865/929912
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 11/05/2014, 14:00
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Una mano resumir PHP que no se aun

No se como he puesto, las letras tan grades, y lo siento no era mi intención, y no se como quitarlo las letras grandes. Por otra parte ya he unido el código, y lo de resumir algún tutorial, rápido donde me pueda aclarar eso, que no estoy para gastar dinero en libros, no hay pasta.

y muchas gracias
  #5 (permalink)  
Antiguo 11/05/2014, 15:21
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Una mano resumir PHP que no se aun

Dos opciones de muchas que puedes encontrar en la red:
http://formaciononline.eu/curso-grat...gramacion-php/
http://www.codecademy.com/tracks/php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 11/05/2014, 16:04
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Una mano resumir PHP que no se aun

Me podéis decir de momento que tengo que quitar o poner para que sin no adjunto imágenes no me de error????

Código PHP:


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$archivos_disp_ar = array('jpg''jpeg''gif''png');
  
$carpeta 'Upload';
  
$imagen $_FILES['imagen1']['tmp_name'];
  
$imagen2 $_FILES['imagen2']['tmp_name'];
  
$imagen3 $_FILES['imagen3']['tmp_name'];
  
$imagen4 $_FILES['imagen4']['tmp_name'];
  
$nombrebre_orig $_FILES['imagen1']['name'];
  
$nombrebre_orig2 $_FILES['imagen2']['name'];
  
$nombrebre_orig3 $_FILES['imagen3']['name'];
  
$nombrebre_orig4 $_FILES['imagen4']['name'];
  
$array_nombre explode('.',$nombrebre_orig);
  
$array_nombre2 explode('.',$nombrebre_orig2);
  
$array_nombre3 explode('.',$nombrebre_orig3);
  
$array_nombre4 explode('.',$nombrebre_orig4);
  
$cuenta_arr_nombre count($array_nombre);
  
$cuenta_arr_nombre2 count($array_nombre2);
  
$cuenta_arr_nombre3 count($array_nombre3);
  
$cuenta_arr_nombre4 count($array_nombre4);
  
$extension strtolower($array_nombre[--$cuenta_arr_nombre]);
  
$extension strtolower($array_nombre2[--$cuenta_arr_nombre2]);
  
$extension strtolower($array_nombre3[--$cuenta_arr_nombre3]);
  
$extension strtolower($array_nombre4[--$cuenta_arr_nombre4]);
  
  
  
if(!
in_array($extension$archivos_disp_ar)) $error "La cagaste 1 archivo error bien cagada";

if(empty(
$error)){
        
$query "SELECT LAST_INSERT_ID()+1 FROM archivos";
        
$last_id mysql_resultmysql_query$query ), 0);
        
mkdir("Upload/".$last_id,0777);
        
$nombre_nuevo $last_id.'-1.'.$extension;
        
$nombre_nuevo2 $last_id.'-2.'.$extension;
        
$nombre_nuevo3 $last_id.'-3.'.$extension;
        
$nombre_nuevo4 $last_id.'-4.'.$extension;
        
$carpeta_mas_nombre "$carpeta/$last_id/";
        
$nombre_nuevo_con_carpeta $carpeta_mas_nombre.$nombre_nuevo;
        
$nombre_nuevo_con_carpeta2 $carpeta_mas_nombre.$nombre_nuevo2;
        
$nombre_nuevo_con_carpeta3 $carpeta_mas_nombre.$nombre_nuevo3;
        
$nombre_nuevo_con_carpeta4 $carpeta_mas_nombre.$nombre_nuevo4;
        
$mover_archivos move_uploaded_file($imagen $nombre_nuevo_con_carpeta);
        
$mover_archivos2 move_uploaded_file($imagen2 $nombre_nuevo_con_carpeta2);
        
$mover_archivos3 move_uploaded_file($imagen3 $nombre_nuevo_con_carpeta3);
        
$mover_archivos4 move_uploaded_file($imagen4 $nombre_nuevo_con_carpeta4);
        
chmod($nombre_nuevo_con_carpeta,0777);
        
chmod($nombre_nuevo_con_carpeta2,0777);
        
chmod($nombre_nuevo_con_carpeta3,0777);
        
chmod($nombre_nuevo_con_carpeta4,0777);
      
      
    
$insertSQL sprintf("INSERT INTO archivos (Imagen1, Imagen2, Imagen3, Imagen4) VALUES (%s,%s,%s,%s)",
                            
GetSQLValueString($nombre_nuevo"text"),
                            
GetSQLValueString($nombre_nuevo2"text"),
                            
GetSQLValueString($nombre_nuevo3"text"),
                               
GetSQLValueString($nombre_nuevo4"text"));
    
      
mysql_select_db($database_conexion_archivos$conexion_archivos);
      
$Result1 mysql_query($insertSQL$conexion_archivos) or die(mysql_error());
    }

  #7 (permalink)  
Antiguo 11/05/2014, 16:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una mano resumir PHP que no se aun

Por lo pronto, te recomiendo aprender un poco de SQL, en especial las funciones que le son propias y usa MySQL, porque esto está mal:
Código MySQL:
Ver original 
LAST_INSERT_ID() no funciona de esa forma. Es una función que devuelve el valor del último ID autoincremental generado, pero para que devuelva un valor diferente de cero, tiene que haberse ejecutado previamente un INSERT, y ese INSERT debe haber sido la última sentencia SQL ejecutada. Cualquier cosa que hayas hecho después pone el valor de esa función en cero, incluso si lo que hiciste fuese solamente un SELECT.
Para que te quede bien claro: Antes de hacer un INSERT no vale nada. Luego de un INSERT sobre una tabla con AI, tiene un valor. Pero cualquier cosa que hagas después que no sea usar esa función borrará el valor que contiene.
¿Se entiende?

No sirve para hacer lo que crees que estás haciendo.
Cita:
Me podéis decir de momento que tengo que quitar o poner para que sin no adjunto imágenes no me de error????
En primer lugar, lo que debes hacer es decirnos qué error te da, porque sin verlo no podremos adivinarlo.
Luego, como principal, validar si se subió algo, y de no haber sido así, no incluir las columnas que debieran contener esa información en el INSERT.
Y finalmente, mi consejo es que no copies y uses indiscriminadamente funciones que encuentres por allí. Esa famosa "GetSQLValueString()" la he visto dando vueltas hace mucho tiempo, y la suelen copiar sin entenderla bien, con el agregado de que no es completamente fiable. He visto muchos errores escondidos a causa de ella, que luego cuesta hacerlos corregir.
Antes de usarla, por favor, trata de analizar si realmente es conveniente en cada caso de cada columna. No siempre es una buena opción.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 11/05/2014, 17:09
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Una mano resumir PHP que no se aun

Bueno ante todo muchas gracias, lo de insert no lo entiendo muy bien pero ya me estoy mojando... El error que me sucede se puede explicar fácilmente, imaginemos tengo 4 sitios donde cargar 4 imágenes
Código HTML:
<input type="file" name="imagen1" id="imagen1"> 
, cuando en los 4 campos pongo 4 fotos, estas se suben sin dar problemas, y todo perfecto, pero cuando, solo coloco 1 y las otras 3 las dejo bacías, me da 3 errores ne las lineas donde esta
Código PHP:
chmod($nombre_nuevo_con_carpeta,0777); 
Porque entiendo que cuando intenta meter las imágenes en la carpeta... no hay imágenes y da error.


y muchas gracias por los consejos...
  #9 (permalink)  
Antiguo 11/05/2014, 17:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una mano resumir PHP que no se aun

Cita:
Porque entiendo que cuando intenta meter las imágenes en la carpeta... no hay imágenes y da error.
Pues la conclusión de lo que hay que hacer es simple: Si no existen archivos a subir, no debes ejecutar ninguna de las acciones de la subida de los mismos. Ninguna. Nada, cero, absolutamente nada.
Ahora bien, si eso significa que deberás hacer una validación de IF() para cada uno de los archivos, pues eso tendrás que hacer. No hay otra y es lo que hacemos todos.
¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 11/05/2014, 17:16
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Una mano resumir PHP que no se aun

Creo que lo pillo, hay que hacer una condicional que diga, si hay fichero lo subes y si no pues te estas quieto... no???

Ahora me pongo manos a la obra... a ver si doy con ello...


Algún sitio donde pueda ver como se hace eso???

gracias...

Última edición por nakoart; 11/05/2014 a las 17:21
  #11 (permalink)  
Antiguo 11/05/2014, 17:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una mano resumir PHP que no se aun

Dale. Esa es la idea central.
Respecto a lo de SQL, necesitas estudiar sobre el tema, o terminarás con problemas todo el tiempo.
El SQL que embebes en PHP tiene sus propias reglas y si vas a trabajar con BBDD, es mejor que aprendas lo básico.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 12/05/2014, 13:29
Avatar de jose_php  
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 9 años, 11 meses
Puntos: 2
Respuesta: Una mano resumir PHP que no se aun

## EN EL FORMULARIO ##s
<input type="file" name="image" multiple />

## EN EL MODULO ##

for($i=0; $i<$_FILES; $i++){
$tmp_image = $_FILES[$i]['tmp_name']
}

//$tmp_image = ahi te mostrara imagen por imagen con los nombres temporales
Si me entendiste, te seguire ayudando, eso de ahi es en caso quieras subir N imagenes a una base de datos, bueno eso te entendi.

saludos

Etiquetas: fecha, formulario, html, mano, mysql, select, sql
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 13:17.