Foros del Web » Programando para Internet » PHP »

Es necesaria esta función en este código???

Estas en el tema de Es necesaria esta función en este código??? en el foro de PHP en Foros del Web. <?php require_once('../../includes/cnn_unidb.php'); ?> <?php /* DEFINICION VARIABLES GENERALES */ $do = $_POST['do']; $exito=false; /* SI DO CUMPLE ALGUNA DE LAS CONDICIONES REALIZA OPERACION */ if ...
  #1 (permalink)  
Antiguo 24/01/2005, 12:04
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 13 años, 2 meses
Puntos: 2
Es necesaria esta función en este código???

<?php require_once('../../includes/cnn_unidb.php'); ?>
<?php
/* DEFINICION VARIABLES GENERALES */
$do = $_POST['do'];
$exito=false;

/* SI DO CUMPLE ALGUNA DE LAS CONDICIONES REALIZA OPERACION */
if ($do=="insert" || $do=="update" || $do=="delete") {

Esta es la que quiero saber si es necesaria (Formateo de textos), considerando que recibe del formulario de la pagina anterior dos campos de texto, uno con el nombre y otro con la descripción. En ocasiones puede llegar la categoría (ID de categoría) y el valor de do (Que solo puede sera update, delete e insert)
Sucede que estoy analizando codigo ajeno y hace rato que no programo en php así que no recuerdo demasiado...


/* FUNCIONES FORMATEO DE TEXTOS */
function formatString($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;
}

/* FORMATEA VARIABLES */
$nombreCat = formatString($_POST['nombre'], "text");
$desc = formatString($_POST['desc'], "text");
if (isset($_POST['idCat'])) {
$idCat=formatString($_POST['idCat'], "int");
}
/* MAS VARIABLES */
$goto = "categs.php";

/* CASOS DE USO */
switch($do) {

/* CASO DE INSERTAR */
case "insert":
$SQL = "INSERT INTO cat_flota (NOMBRE, DESCRIP) VALUES ($nombreCat, $desc)";
$exito = true;
$msg = "Insercción realizada.";
break;

/* CASO DE MODIFICAR */
case "update":
$SQL = "UPDATE cat_flota SET NOMBRE=$nombreCat, DESCRIP=$desc WHERE IDCATEG=$idCat";
$exito = true;
$msg = "Modificación realizada.";
break;

/* CASO DE ELIMINAR */
case "delete":
$SQL = "DELETE FROM cat_flota WHERE cat_flota.IDCATEG=$idCat";
$exito = true;
$msg = "Eliminación realizada.";
break;

/* CASO DE ELIMINAR */
default:
$exito = false;
break;
}
}

if ($exito==false) {
$msg = "Hubo un error verifique los datos ingresados.";
header(sprintf("Location: %s", $goto."?armarMsg=si&msg=".$msg));
} else {
mysql_select_db($db, $cnn_unidb);
$Result1 = mysql_query($SQL, $cnn_unidb) or die(mysql_error());
header(sprintf("Location: %s", $goto."?armarMsg=si&msg=".$msg));
}
?>

Ya de movida me parece que la primer condición está casi de adorno, ya que el usuario solo puede elegir insertar, eliminar o modificar cada uno de los campos, otro valor no reciben. Así que decir si cumple la primera o la segunda o la tercera es lo mismo que nada porque en ningún momento sucederá que llegue una cuarta opción porque no existe.....
Se me hace que mas que analizar el codigo este voy a tener que reprogramar todo, pero prefiero arreglar y parchar que empezar de nuevo.... estoy algo vaga ultimamente, será que quiero vacaciones ya.
Bueno, Gracias de antemano a todos los que se tomen la molestia de contestarme!!!!

__________________
Why can't we not be sober?
www.partitorium.com.ar
  #2 (permalink)  
Antiguo 24/01/2005, 12:13
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Saludos.

Fijate. Esa función lo que hace es asegurarce que los datos que vienen del formulario sean exactamente los que tienes definidos en tu DB. Para que por ejemplo, números no se inserten en un campo tipo MEMO.

Si eso no es tu preocupación, bien pudieras entonces sacar esa función de allí y dejarla en cualqueira de tus INCLUDE, para que la uses cuando realemnte la necesites.

En fin, quedarían tus variables:

$nombreCat = $_POST['nombre'];
$desc = $_POST['desc'];

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 24/01/2005, 12:18
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 13 años, 2 meses
Puntos: 2
Hola José!
Muchas gracias por responder, tal vez la pregunta es medio tonta, pero no quería mandarme a borrar algo y despues no saber por qué falla la pagina...
Ahora veo, lo mas probable es que lo saque y ya.
Por otra parte, cuando hago un insert tira error en la linea 80, que es la siguiente:
mysql_select_db($db, $cnn_unidb);
Estará mal hecha la conexión con la base de datos?
Gracias por todo!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #4 (permalink)  
Antiguo 24/01/2005, 12:38
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Verifica el login y el password que estas colocando
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 24/01/2005, 12:45
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 13 años, 2 meses
Puntos: 2
Eso quiere decir que no tiene nada que ver con que la variable db no esté definida en la definición de variables... bien. Un punto descartado.
Ahí me fijo y te cuento.
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #6 (permalink)  
Antiguo 24/01/2005, 13:04
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 13 años, 2 meses
Puntos: 2
Ok, parece que quiere mas o menos, el tema es el siguiente:
Notice: Undefined variable: db in c:\desarrollos\web\infosud\unirent\administracion\ cfg\abm_categs.php on line 51
Algo está equivocado en su sintax cerca 'a ver si funciona este códiguillo)' en la linea 1
Y a ver si funciona.... es un campo de texto que viene siendo lo que se carga como detalles....
Hay algo mal pero no lo encuentro, la parte de verificación la eliminé, así que ha cambiado el número de linea. ahora la 51 es la que tiene
mysql_select_db($db, $cnn_unidb);
Me está rompiendo la cabeza esto... demasiado tiempo programando en ASP y ahora estoy como loca con el php....
Disculpame por molestarte tanto!
__________________
Why can't we not be sober?
www.partitorium.com.ar
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 19:11.