Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2005, 18:18
Avatar de nachopro
nachopro
 
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 5 meses
Puntos: 2
Se me pierden las variables. AUXILIO :'(

tengo un gran problemón.
He desarrollado un backend para modificar mi sitio web.
Usé todas las variables $_GET y $_POST, aunque mi php.ini estaba en con register_globals = on, para evitarme problemas.
Todo funciona de maravillas, pero no cuando pongo las globals en off. El script modificador de tablas no funciona, no sé que tenga.
Lo peor es que según el script "Se insertó el registro a las mil maravillas"

A ver si alguien me puede ayudar antes de que me dedique a la jardinería:
por las dudas pregunto, hay algún analizador para este caso?

moraleja: nunca utilicen register_globals = on << es lo peor que les puede pasar. todo andará de maravillas hasta que suban el sitio al servidor web

Archivo de ejemplo de una tabla:
Código PHP:
<?
$db_tabla 
"otros";
$db_tabla_campo_unico "otr_tit";
$db_tabla_campos_nombre = array("Id""Título""Bajada""URL");
$db_tabla_campos = array("id_otr""otr_tit""otr_baj""otr_url");
$db_formu_campos_tipo = array("id""text""textarea""text");
$db_tabla_campos_mostrar = array("1""1""0""0");
// No editar ----------------------------------------------------------------------------------------
$db_tabla_campos_cantidad count($db_tabla_campos);
?>
Script para modificar Tabla:
Código PHP:
<? if (isset($_GET['sec']) && is_numeric($_GET['id'])) {
    require(
"cfg.".$_GET['sec'].".php");
    require(
"lib.modificar.php");
    require(
"libreria.php");
    require(
"db.php");
}
else {
    echo 
"borracho de mierda, elegí una sección y un id";
    exit;
}
if (
$_GET['accion'] != "modificar") {
        
$sql "select * from ".$db_tabla." where ".$db_tabla_campos[0]." = '".$_GET['id']."'";
        
$result mysql_query($sql) or die("Error: <b>$sql</b><br>"mysql_error());
        if (
$row mysql_fetch_row($result)) { ?>
<form method="POST" action="?sec=<? echo $_GET['sec']; ?>&id=<? echo $_GET['id']; ?>&accion=modificar">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">

<? for ($i 0$i $db_tabla_campos_cantidad$i++) {
    echo 
$db_formu_campos_tipo[$i]($db_tabla_campos_nombre[$i], $db_tabla_campos[$i], $row[$i]);
?>
<td colspan="3" align="center">
<input type="submit" name="Submit" value="Modificar">
</td>
</table>
</form>
<?
        
}
        else {
            echo 
"borracho hijo de puta, el id que metiste no existe!";
            exit;
        }
}
else {
    for (
$i 0$i $db_tabla_campos_cantidad$i++) {
        switch(
$db_formu_campos_tipo[$i]) {
            case 
"tinytext":
                $
$db_tabla_campos[$i] = enc_txt($_POST[$db_tabla_campos[$i]]);
                break;
            case 
"text":
                $
$db_tabla_campos[$i] = enc_txt_html($_POST[$db_tabla_campos[$i]]);
                break;
            case 
"textarea":
                $
$db_tabla_campos[$i] = enc_txt_html_ico($_POST[$db_tabla_campos[$i]]);
                break;
            case 
"fecha":
                $
$db_tabla_campos[$i] = $_POST['fec_ano']."-".$_POST['fec_mes']."-".$_POST['fec_dia']." ".$_POST['fec_hor'].":".$_POST['fec_min'];
                break;
        }
    }
    
$sql "select ".$db_tabla_campos[0]." from ".$db_tabla." where ".$db_tabla_campo_unico." = '".$$db_tabla_campo_unico."'";
    
$result mysql_query($sql);
    if (
$row mysql_fetch_assoc($result)) {
        if (
$row[$db_tabla_campos[0]] == $_POST[$db_tabla_campos[0]]) {
                    for (
$i 1$i $db_tabla_campos_cantidad 1$i++) {
                        
$campos_y_variables .= $db_tabla_campos[$i]."='".$$db_tabla_campos[$i]."', ";
                    }
                    
$sql "update ".$db_tabla." set ".$campos_y_variables.$db_tabla_campos[$db_tabla_campos_cantidad 1]."='".$$db_tabla_campos[$db_tabla_campos_cantidad 1]."' where ".$db_tabla_campos[0]." = '".$$db_tabla_campos[0]."'";
                    
$result mysql_query($sql) or die("Error: <b>$sql</b><br>"mysql_error());
                    echo 
"El registro <b>".$$db_tabla_campo_unico."</b> se modific&oacute; correctamente.<br><a href=\"listar.php?sec=".$db_tabla."\">continuar</a>";
        }
        else {
            echo 
"Ya existe un registro cuyo t&iacute;tulo es <b>".$$db_tabla_campo_unico."</b>.<br><a href=\"javascript:history.back()\">cambiar</a>";
        }
    }
    else {
        for (
$i 1$i $db_tabla_campos_cantidad 1$i++) {
            
$campos_y_variables .= $db_tabla_campos[$i]."='".$$db_tabla_campos[$i]."', ";
        }
        
$sql "update ".$db_tabla." set ".$campos_y_variables.$db_tabla_campos[$db_tabla_campos_cantidad 1]."='".$$db_tabla_campos[$db_tabla_campos_cantidad 1]."' where ".$db_tabla_campos[0]." = '".$$db_tabla_campos[0]."'";
        
$result mysql_query($sql) or die("Error: <b>$sql</b><br>"mysql_error());
        echo 
"El registro <b>".$$db_tabla_campo_unico."</b> se modific&oacute; correctamente.<br><a href=\"listar.php?sec=".$db_tabla."\">continuar</a>";
    }    
}
mysql_close($db_con); ?>
mis saludos