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);
?>
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ó correctamente.<br><a href=\"listar.php?sec=".$db_tabla."\">continuar</a>";
}
else {
echo "Ya existe un registro cuyo tí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ó correctamente.<br><a href=\"listar.php?sec=".$db_tabla."\">continuar</a>";
}
}
mysql_close($db_con); ?>