Foros del Web » Programando para Internet » PHP »

Todo en el mismo archivo

Estas en el tema de Todo en el mismo archivo en el foro de PHP en Foros del Web. Tengo varias paginas con sus respectivos formularios(uno para insertar datos, otro para modificar datos u otros) Y a cada uno de ellos le doy Código: ...
  #1 (permalink)  
Antiguo 21/02/2014, 09:08
 
Fecha de Ingreso: febrero-2014
Ubicación: Murcia
Mensajes: 119
Antigüedad: 10 años, 2 meses
Puntos: 0
Todo en el mismo archivo

Tengo varias paginas con sus respectivos formularios(uno para insertar datos, otro para modificar datos u otros)

Y a cada uno de ellos le doy
Código:
action="insertar.php"
o
Código:
action="modificar.php"
Dentro de cada uno de ellos le meto el codigo para que aga sus funciones

Código PHP:
<?php 
   
include("../conex.php"); 
   
$link=Conectarse();  
   
$dato=$_GET['dato'];  

   
mysql_query("insert into clientes (dato) values ('$dato')",$link); 
   
   
header("Location: $HTTP_REFERER"); 

?>
Código PHP:
<?php 

// INICIAS LA SESION
session_start();
//establece una conexión con la base de datos. 
$conexion mysql_connect("localhost","usuario","pass") or die("No se pudo realizar la conexion con el servidor."); 
mysql_select_db("BD",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. 



// archivo temporal (ruta y nombre). 
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; 

// leer del archvio temporal .. el binario subido. 
// "rb" para Windows .. Linux parece q con "r" sobra ... 
if (!empty($_FILES['archivo']['name'])){ 
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal))); 
} else { 
  
$binario_contenido=NULL
}
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. 
$binario_nombre=$_FILES['archivo']['name']; 
$binario_peso=$_FILES['archivo']['size']; 
$binario_tipo=$_FILES['archivo']['type']; 

//insertamos los datos en la BD. 
$consulta_insertar "INSERT INTO soporte (ticket,id,comentario_cliente,archivo_binario,archivo_nombre,archivo_peso,archivo_tipo,fecha) VALUES ('','".$_SESSION['id']."','$comentario_cliente', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo',NOW())"
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: $HTTP_REFERER");  // si ha ido todo bien 
exit; 
?>
o para modificar

Código PHP:
<?php 
   
include("../conex.php"); 
   
$link=Conectarse();  
   
$id=$_POST['id'];
   
$dato=$_POST['dato'];
   

$update "UPDATE clientes SET dato='".$dato."'
$actualizar = mysql_query($update, $link);
mysql_close();


?>
Abria la posibilidad que todos ellos quedase en un solo archivo? es decir dijese en el action "archivo1.php" y segun lo que quisiera hacer en un formulario u otro hiciese su funcion..
  #2 (permalink)  
Antiguo 21/02/2014, 09:12
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Todo en el mismo archivo

Enviando un parametro.

action="archivo.php?accion=editar"

Después es tan fácil como recoger la variable, y con un IF eliges que código ejecutar (Lleva cuidado con la variable POST, acuerdate de hacer todas las validaciones de seguridad necesarias)

Un saludo
  #3 (permalink)  
Antiguo 21/02/2014, 09:18
 
Fecha de Ingreso: febrero-2014
Ubicación: Murcia
Mensajes: 119
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Todo en el mismo archivo

Podrías exportarme un pequeño ejemplo o donde pudiera verlo para darme una idea como hacerlo?

Y con el tema de POST que otro mejor poner o hacer?

Muchisimas gracias Heli0s
  #4 (permalink)  
Antiguo 21/02/2014, 09:36
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Todo en el mismo archivo

Código PHP:
switch($accion){
    case 
"insertar":
    
//codigo para insertar
    
break;

    case 
"modificar":
    
//codigo para modificar
    
break;

    default:
    echo 
"No existe";

<form action="archivo.php?accion=accionARealizar>

El código es solo un ejemplo, no se si tendrá fallos tipográficos.

Con lo de post me refiero a que toda variable externa deberías comprobar que tenga los datos que debe tener y no haya sido modificada, y pasarla por funciones como htmlentities.

Un saludo
  #5 (permalink)  
Antiguo 21/02/2014, 10:12
 
Fecha de Ingreso: febrero-2014
Ubicación: Murcia
Mensajes: 119
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Todo en el mismo archivo

Resumiendo que dejándolo así estaría bien..

Código PHP:
<?php 

switch ($accion) {
    case 
"modificar":
        echo 
"include("conex.php");  //conecta la BD
  
 $link=Conectarse();   
   $id=$_POST['id']; 
   $dato=$_POST['dato']; 
    

$update = "
UPDATE clientes SET dato='".$dato."' 
$actualizar mysql_query($update$link); 
mysql_close(); ";

        break;
    
case "
insertar":
echo "
include("../conex.php");  
   
$link=Conectarse();   
   
$dato=$_GET['dato'];   

   
mysql_query("insert into clientes (dato) values ('$dato')",$link);  
    
   
header("Location: $HTTP_REFERER");  ";
       
     break;
   
case "
archivo":
        
echo "
// INICIAS LA SESION 
session_start(); 
//establece una conexión con la base de datos.  
$conexion mysql_connect("localhost","usuario","pass") or die("No se pudo realizar la conexion con el servidor.");  
mysql_select_db("BD",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.  



// archivo temporal (ruta y nombre).  
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;  

// leer del archvio temporal .. el binario subido.  
// "rb" para Windows .. Linux parece q con "r" sobra ...  
if (!empty($_FILES['archivo']['name'])){  
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal)));  
} else {  
  
$binario_contenido=NULL;  

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.  
$binario_nombre=$_FILES['archivo']['name'];  
$binario_peso=$_FILES['archivo']['size'];  
$binario_tipo=$_FILES['archivo']['type'];  

//insertamos los datos en la BD.  
$consulta_insertar "INSERT INTO soporte (ticket,id,comentario_cliente,archivo_binario,archivo_nombre,archivo_peso,archivo_tipo,fecha) VALUES ('','".$_SESSION

['id']."','$comentario_cliente', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo',NOW())";  
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");  
header("location: $HTTP_REFERER");  // si ha ido todo bien  
exit;";
        break;
}
?>
He echado un vistazo en [URL="http://www.php.net/manual/es/control-structures.switch.php"]http://www.php.net/manual/es/control-structures.switch.php[/URL]

Etiquetas: fecha, formulario, mysql, select, todo
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:30.