Foros del Web » Programando para Internet » PHP »

Evitar tantos archivos .php en mi web

Estas en el tema de Evitar tantos archivos .php en mi web en el foro de PHP en Foros del Web. Saludos, amigos, pues que estoy haciendo una página en php. El problema que tengo es que se han creado demasiados archivos. Se que existen los ...
  #1 (permalink)  
Antiguo 09/10/2003, 16:38
Avatar de kawoq  
Fecha de Ingreso: mayo-2002
Ubicación: Xela
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Evitar tantos archivos .php en mi web

Saludos, amigos, pues que estoy haciendo una página en php. El problema que tengo es que se han creado demasiados archivos. Se que existen los templates, y todo ello, pero por el momento quisiera darle solución a mi problema.

Les comento,
Pues que tengo un archivo que se llama mirar.php este es un archivo que controla los formularios para subir noticias, articulos, etc.

Pues en este archivo tengo un switch, con sus respectivos case.

Código PHP:
switch ($seccion) {
    case 
"formnoticia":
        echo 
kawoq(1);
        break;
    case 
"formreportaje":
        echo 
kawoq2(2);
        break;
    case 
"articulos":
                    echo 
kawoq3(3);
        break;
    case 
"adduser"
segun el que se eliga llama a una funcion, dentro de esta función tengo la declaración de mis variables, y en base a ello les doy un valor, por ejemplo si es
formnoticia lleva el valor 1
formreportaje lleva el valor 2
articulos lleva el valor 5


Hasta ahi todo bien, donde se complica es al momento de llamar al archivo insertar.php, el cual hace todo el teje y maneje de meter los datos en la bd, no consigo hacer varias condiciones para que evalue que valor es el que viene si 1, 2 o 5, y segun ello, inserte en x tabla, no se si me explique. Ejemplifico con el codigo insertar.

Código PHP:
<?include ('mysql.kwd.php');
if((
$_POST['getSECT']!=2)&&($_POST['getSECT']!=4)){  //por ejemplo aca analiza si viene el valor 2 y el valor 4, en base a ello empiezan las condiciones de a donde tiene que insertar los datos.
    
if ($_FILES['userfile']['size']>500){ $bin_name=$_FILES['userfile']['name']; srand((double)microtime()*10000000);$rename=rand(1000,9999);$rename=(file_exists("$pathIMGdb/$bin_name"))?$rename:""$pathfile=str_replace("insertar.kwd.php","",str_replace("//","/",str_replace("\\\\","\\",$SCRIPT_FILENAME)))."$pathIMGdb/";move_uploaded_file($userfile,$pathfile.$rename.$bin_name);chmod($pathfile.$rename.$bin_name,0644);
        
$consulta_insertar "INSERT INTO noticias (id, imagen, titulo_noticia, autor, email, medio, cuerpo_nota, piefoto, fecha, section) VALUES ('', '".$rename.$bin_name."', '$titulo', '$autor', '$email', '$medio', '$cuerpo', '$piefoto', now(), '$getSECT')";
        
mysql_query($consulta_insertar) or die("No se pudo insertar los datos en la base de datos.");header("location: index.php");exit;
    }else{
        if (
$_POST['getSECT']!=3){
            
$consulta_insertar "INSERT INTO noticias (id, titulo_noticia, cuerpo_nota, fecha, section) VALUES ('', '$titulo', '$cuerpo', now(), '$getSECT')";
            
mysql_query($consulta_insertar) or die("No se pudo insertar los datos en la base de datos.");
            
header("location: ./?");
            exit;
        }else{echo
"Debe incluir una foto";}
    }
}elseif(
$_POST['getSECT']==4){mysql_query("INSERT INTO reporteros (nick,password,nombre,apellido,email) VALUES ('".$_POST['nick']."','".$_POST['password']."','".$_POST['nombre']."','".$_POST['apellido']."','".$_POST['email']."')"); header("location: mirar.kwd.php");
}else{
$da__=explode(".",$_POST['day']);mysql_query("INSERT INTO calendario VALUES ('','$da__[0]','$da__[1]','$da__[2]','".$_POST['hour']."','".$_POST['title']."','".$_POST['texto']."','".$_POST['type']."','".$_POST['typeB']."','".$_POST['typeC']."','".$_POST['cd']."')");header("location: ./?");}
?>
Como hago para que este mismo archivo me evalue los valores de los otros cases que tengo, porque para hacerlo tuve que crrear los siguientes archivos
insertar.php
insertar2.php
insertar3.php

Cada uno de ellos para insertar: noticias, reportajes y articulos, respectivamente.

y en la primer condición cambio los valores segun sea el caso.

Espero haberme explicado y gracias por las respuestas.

Última edición por kawoq; 09/10/2003 a las 16:54
  #2 (permalink)  
Antiguo 09/10/2003, 18:19
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 23 años, 1 mes
Puntos: 6
Pues facil. no se que hagas en las funciones que mandas a llamar pero por ejemplo puedes definir constantes que funcionen como eventos. por ejemplo, algo como:
Código PHP:
define('AGREGAR_ARTICULO',100);
define('EDITAR_ARTICULO',101);
//...etc..
//en el archivo insertar hago otro switch
switch($var)
{
     case 
AGREGAR_ARTICULO:
                                               
//haces algo
                                               
break;
     case 
OTRA_COSA:
                                 
//haces otra cosa
                                 
break;
     
//etc....


de esa forma creas un accion para cada caso y segundo al ser constantes no te pierdes con tanto numero..
Espero que esto sea lo que necesites si no explica nuevamente la situacion con mas detalles.
  #3 (permalink)  
Antiguo 10/10/2003, 10:18
Avatar de kawoq  
Fecha de Ingreso: mayo-2002
Ubicación: Xela
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Mi funcion es esta, ahi le indico que campos del formulario y que archivo se debe ejecutar, que es donde tengo el problema, pues para los otros formularios tengo la misma funcion, solo que va a diferente archivo, es decir, esta que dejo a continuacion, va a funcionar cuando se necesite subir una noticia, por lo tanto va a ir al archivo insertar.php, el cual deje más arriba de este post, y mete los datos a la bd.

Si necesito que se meta información en la sección Reportajes, hago una funcion similar solo que va a el archivo insertar2.php.

Es decir lo que quiero es que exista un solo archivo insertar.php, y segun sea lo que se necesite subir, ahi en ese archivo se hagan las condiciones y se ejecuten las acciones.

Código PHP:
function kawoq($getSECT)
        {
        if(isset(
$_GET['proceso'])){$net=$_GET['proceso']."<br>";
        }
        
$text=str_replace("form","",$_GET['seccion']);
        
$form="\n\t<table width=75% border=0 cellspacing=0 cellpadding=0 align=center>
                \n\t\t<tr><td>$net<div align=center>\n
                <FORM enctype=\"multipart/form-data\" method=post action='insertar.kwd.php'> //acá el archivo insertar sera el que evalue las condiciones e inserte los archivos
                segun sea el caso.
                <input type=hidden name=getSECT value=$getSECT>
                \n\t<div align=center>Titulo $text<br>\n\t
                <input type=Text name=titulo size=50 maxlength=150>\n\t
                <br><br>Nombre de la persona que escribe la nota:<br>\n\t
                <input type=Text name=autor size=50 maxlength=150>\n\t<br><br>
                Direccion de correo electrónico<br>\n\t
                <input type=Text name=email size=50 maxlength=150>\n\t<br><br>
                Organización o medio para el que trabaja (Esto no es necesario):<br>\n\t
                <input type=Text name=medio size=50 maxlength=150>\n\t<br><br>$text Completa 
                <br>\n\t<textarea name=cuerpo cols=50 rows=12></textarea>\n\t<br>Foto a insertar: 
                <INPUT type=file name=userfile size=30><br>\n\tPie de la foto: 
                <input type=Text name=piefoto size=50 maxlength=150><br>\n\t
                <INPUT type=submit name=submit value='Subir archivo'></div>
                </FORM>
                \n</div>
                </td>
                </tr>
                </table>"
;return $form;} 
Lo que me recomiendas:
Código PHP:
define('AGREGAR_ARTICULO',100);
define('EDITAR_ARTICULO',101);
//...etc..
//en el archivo insertar hago otro switch 
Tendría que ir dentro de la función?


Saludos.
  #4 (permalink)  
Antiguo 10/10/2003, 13:43
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 23 años, 1 mes
Puntos: 6
No, por ejemplo ya viendo tu funcion lo que puedes hacer es agregar en tus formas un campo hidden que guarde el identificador que especifica que operacion vas a realizar en tu archivo insertar.kwd.php. Es decir, las constantes que comente en mi mensaje anterior las declaras en ese archivo hay mismo creas otro switch que descriminara que operacion vas a realizar.
Por ejemplo si en tu funcion kawoq agregas el campo hidden con el valor 100 cuando hagas en submit a tu archivo insertar pasara por el switch y se llevara acabo la operacion que corresponde a la constante AGREGAR_ARTICULO.
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 21:42.