Foros del Web » Programando para Internet » PHP »

Colaboracion en correccion o mejoramiento de script

Estas en el tema de Colaboracion en correccion o mejoramiento de script en el foro de PHP en Foros del Web. Hola a todos tengo un script el cual quisiera que me ayuden a corregir o a mejorar este script se encarga de subir fotos (4) ...
  #1 (permalink)  
Antiguo 14/06/2010, 13:46
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 16 años, 1 mes
Puntos: 9
Exclamación Colaboracion en correccion o mejoramiento de script

Hola a todos tengo un script el cual quisiera que me ayuden a corregir o a mejorar

este script se encarga de subir fotos (4) y luego ponerle nombre, descripcion a cada una de ellas y seleccionar el album donde se desean guardar..

Lo cree para un album mio pero veo el script muy grande y pesado.

Se los agradeceria y apreciaria mucho
Gracias..

Script fotos.php:
Código PHP:
<?php
session_start
();
include(
'../config.php');
include(
'../inc/fecha.php');
include(
'inc/cabeza.php');

$accion $_GET['accion'];
?>
<div id="contenido">
<?
switch ($accion) {
 
 case 
'subir':
 
 
//Comenzamos a subir fotos "Pero no las guardamos Aun"
 
$nombre_archivo1 $HTTP_POST_FILES['imagen']['name'][0];
 
$nombre_archivo2 $HTTP_POST_FILES['imagen']['name'][1];
 
$nombre_archivo3 $HTTP_POST_FILES['imagen']['name'][2];
 
$nombre_archivo4 $HTTP_POST_FILES['imagen']['name'][3];
 
 
//Foto 1
 
$tipo ereg_replace(".*\.(.*)$","\\1",$nombre_archivo1);
 
$nombre_temp str_replace('.' $tipo'',$nombre_archivo1);
 
$len strlen($nombre_temp);
 if (
$len 5) {$nombre_temp substr($nombre_temp,0,$len-3);}
 
$nombre_archivo $nombre_temp $str_img '.' $tipo;
 
$path1"../galeria/".$nombre_archivo;

 
//Foto 2
 
$tipo ereg_replace(".*\.(.*)$","\\1",$nombre_archivo2);
 
$nombre_temp str_replace('.' $tipo'',$nombre_archivo2);
 
$len strlen($nombre_temp);
 if (
$len 5) {$nombre_temp substr($nombre_temp,0,$len-3);}
 
$nombre_archivo $nombre_temp $str_img '.' $tipo;
 
$path2"../galeria/".$nombre_archivo;
 
 
//Foto 3
 
$tipo ereg_replace(".*\.(.*)$","\\1",$nombre_archivo3);
 
$nombre_temp str_replace('.' $tipo'',$nombre_archivo3);
 
$len strlen($nombre_temp);
 if (
$len 5) {$nombre_temp substr($nombre_temp,0,$len-3);}
 
$nombre_archivo $nombre_temp $str_img '.' $tipo;
 
$path3"../galeria/".$nombre_archivo;
 
 
//Foto 4
 
$tipo ereg_replace(".*\.(.*)$","\\1",$nombre_archivo4);
 
$nombre_temp str_replace('.' $tipo'',$nombre_archivo4);
 
$len strlen($nombre_temp);
 if (
$len 5) {$nombre_temp substr($nombre_temp,0,$len-3);}
 
$nombre_archivo $nombre_temp $str_img '.' $tipo;
 
$path4"../galeria/".$nombre_archivo;
 
 
// Mostramos las fotos para agregarle su nombre y descripcion<br />
 // Tambien elegimos en que album queremos guardarlas
 
echo '<h3>Editar informacion de imagenes</h3>';
 echo 
'<small>Edita la informacion de cada imagen por Nombre* y Descripcion*.</small>';
 
 echo 
'<form class="imgs" method="post" action="fotos.php?accion=guardar" name="guardar" enctype="multipart/form-data">';
 echo 
'    <fieldset id="form"><ol>';
 
$conexion mysql_connect($dbhost,$dbusuario,$dbpass) or die("No se pudo conectar a la base de datos<br>".mysql_error());
 
$dbconexion mysql_select_db($dbnombre$conexion);

 
//Sacamos los albums Disponibles
 
$resultados mysql_query("SELECT * FROM albums");

 echo 
'<li><select name="album">';
 while (
$row mysql_fetch_array($resultados)) {
 echo 
'<option value="' $row["id"] . '">' $row["nombre"] . '</option>';
}
 echo 
'</select><label>Album</label></li>';
  echo 
'<div class="lim"></div>';
 
//Foto 1
 
if (copy($HTTP_POST_FILES['imagen']['tmp_name'][0], $path1)) {
 echo 
'<div class="foto">' .
      
'<img src="skuto.php?url='.$path1.'&max_width=200&max_height=250"/>' .
      
'<div class="datos">' .
      
'<li><input name="nombre1" type="text"><label>Nombre</label></li>' .
      
'<li><textarea name="descripcion1" cols="40" rows="2"></textarea><label>Descripcion</label></li>' .
      
'<input type="hidden" name="arch1" value="' $nombre_archivo1 '"></div><div class="lim"></div></div>';

 }

 
//Foto 2
 
if (copy($HTTP_POST_FILES['imagen']['tmp_name'][1], $path2)) {
 echo 
'<div class="foto">' .
      
'<img src="skuto.php?url='.$path2.'&max_width=200&max_height=250"/>' .
      
'<div class="datos">' .
      
'<li><input name="nombre2" type="text"><label>Nombre</label></li>' .
      
'<li><textarea name="descripcion2" cols="40" rows="2"></textarea><label>Descripcion</label></li>' .
      
'<input type="hidden" name="arch2" value="' $nombre_archivo2 '"></div><div class="lim"></div></div>';

 }

 
//Foto 3
 
if (copy($HTTP_POST_FILES['imagen']['tmp_name'][2], $path3)) {
 echo 
'<div class="foto">' .
      
'<img src="skuto.php?url='.$path3.'&max_width=200&max_height=250"/>' .
      
'<div class="datos">' .
      
'<li><input name="nombre3" type="text"><label>Nombre</label></li>' .
      
'<li><textarea name="descripcion3" cols="40" rows="2"></textarea><label>Descripcion</label></li>' .
      
'<input type="hidden" name="arch3" value="' $nombre_archivo3 '"></div><div class="lim"></div></div>';

 }

 
//Foto 4
 
if (copy($HTTP_POST_FILES['imagen']['tmp_name'][3], $path4)) {
 echo 
'<div class="foto">' .
      
'<img src="skuto.php?url='.$path4.'&max_width=200&max_height=250"/>' .
      
'<div class="datos">' .
      
'<li><input name="nombre4" type="text"><label>Nombre</label></li>' .
      
'<li><textarea name="descripcion4" cols="40" rows="2"></textarea><label>Descripcion</label></li>' .
      
'<input type="hidden" name="arch4" value="' $nombre_archivo4 '"></div><div class="lim"></div></div>';

 }

 echo 
'<input type="submit"value="Guardar Imagenes" class="btn" name="submit" />';
 echo 
'    </ol></fieldset>';
 echo 
'</form>';

 break;
 
 case 
'guardar':
 
 
//Aqui va a tener que guardar todas la fotos
 
$nombre $_POST['nombre'];
 
$descripcion $_POST['descripcion']; 
 
$album $_POST['albums'];
 
$foto $_GET['foto'];

 
$conexion mysql_connect($dbhost,$dbusuario,$dbpass) or die("No se pudo conectar a la base de datos<br>".mysql_error());
 
$dbconexion mysql_select_db($dbnombre$conexion);
 
$insertar mysql_query("INSERT INTO fotos (nombre, album, descripcion, fecha, me_gusta, no_me_gusta, url) VALUES ('$nombre', '$album', '$descripcion', '$strfecha/$hora', '0', '0', '$foto')") or die("No se insertaron los datos porque ".mysql_error());
 
 break;
 
 default:

 
?>
 <h3>Selecciona las imagenes que deseas subir</h3>
<small>Solo podes subir 4 imagenes a la vez.</small>
<form method="post" action="fotos.php?accion=subir" name="subir" enctype="multipart/form-data">
<li><input name="imagen[]" type="file"></li>
<li><input name="imagen[]" type="file"></li>
<li><input name="imagen[]" type="file"></li>
<li><input name="imagen[]" type="file"></li>
<input class="btn" type="submit" value="Subir Imagenes"> 
</form>
 <?
 
break;

}

?>
</div>
<?
include("inc/pie.php");
?>
  #2 (permalink)  
Antiguo 14/06/2010, 13:51
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Colaboracion en correccion o mejoramiento de script

¿para que redundas código si todo lo tienes en un array?, debes de usar estructuras cíclicas para eso como while o mejor for each, practicamete aplicas los mismos comandos a cada imagen, ahora son cuatro, imagina que te pidan 10, si utilizas bien los array puedes generar un código para manipular n-cantidades de imágenes

ejemplo:

Código PHP:

$array_archivo 
$HTTP_POST_FILES['imagen']['name'];

foreach (
$array_archivo as $key => $archivo){
 
    
//Foto
    
$tipo ereg_replace(".*\.(.*)$","\\1",$archivo);
    
$nombre_temp str_replace('.' $tipo'',$archivo);
    
$len strlen($nombre_temp);
    if (
$len 5) {$nombre_temp substr($nombre_temp,0,$len-3);}
    
$nombre_archivo $nombre_temp $str_img '.' $tipo//¿$str_img?
    
$path[$key]= "../galeria/".$nombre_archivo



Última edición por maycolalvarez; 14/06/2010 a las 13:57
  #3 (permalink)  
Antiguo 14/06/2010, 15:07
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 16 años, 1 mes
Puntos: 9
Respuesta: Colaboracion en correccion o mejoramiento de script

Se ve mejor, pero el problema aqui es!!
no se usar el foreach
como copio cada imagen ya que metes cada path en un path[]
  #4 (permalink)  
Antiguo 14/06/2010, 15:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Colaboracion en correccion o mejoramiento de script

¿que no sabes usar foreach?!!!!, ¿sabes usar arrays?, investiga! para eso está google ¿no?: http://php.net/manual/es/control-structures.foreach.php

los path de las imágenes los llevo a un array que puedes recorrer con foreach y hacer las copias

Etiquetas: colaboracion, correccion
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 16:33.