Leggo sempre via $_POST dei dati per creare un articolo, modificarlo e cancellarlo e qualche altra cosa.
Vabbè posto tutto il codice:
Codice PHP:
<?php
error_reporting(E_ALL);
require("./../config.inc.php");
require(ABS_PATH . "class/admin.class.php");
require(ABS_PATH . "class/xml.class.php");
$admin = new Admin;
$admin->check_login();
$id = isset($_GET["id"]) && is_numeric($_GET["id"]) ? trim($_GET["id"]) : null;
if(!empty($id)) {
$xml = new Xml($id);
}
foreach($_POST as &$val) {
$val = trim(stripslashes($val));
}
switch(trim($_GET["action"])) {
case "post":
echo $xml->post($_POST["titolo"], $_POST["autore"], $_POST["tags"], $_POST["cat"], $_POST["testo"]) ? "Articolo pubblicato con successo!" : "Si è verificato un errore nel salvataggio del file!";
break;
case "delete":
echo $xml->delete() ? "Articolo N° {$id} cancellato con successo!" : "Articolo N° {$id} inesistente!";
break;
case "update":
echo $xml->update($_POST["titolo"], $_POST["autore"], $_POST["tags"], $_POST["cat"], $_POST["testo"]) ? "Articolo N° {$id} modificato con successo!" : "Si è verificato un errore nel salvataggio del file!";
break;
case "settings":
$file = <<<php
<?php
define("ADMIN_USER", "{$_POST["admin"]}");
define("ADMIN_PASS", "{$_POST["pass"]}");
define("ABS_PATH", "{$_POST["path"]}");
define("TPL_PATH", "{$_POST["template"]}");
?>
php;
echo $admin->save_config($file) ? "Il file di configurazioni è stato salvato correttamente!" : "Si è verificato un errore nel salvataggio del file!";
break;
case "cat":
switch($_GET["do"]) {
case "add":
$cat = htmlentities(str_replace("&", "&", $_POST["cat"]), ENT_COMPAT);
$msg = $admin->add_cat($cat) ? "Categoria ". html_entity_decode($cat, ENT_COMPAT) . " aggiunta con successo." : "Errore nella creazione della categoria.";
break;
case "delete":
//$msg = $admin->delete_cat($cat) ? "Categoria ". html_entity_decode($cat, ENT_COMPAT) . " rimossa con successo." : "Errore nell'eliminare la categoria.";
print_r($_POST["todel"]);
exit(); // interrompo lo script solo per adesso, quando il problema sarà risolto lo tolgo :D!
break;
}
echo $msg. " Rendirizzamento fra 3 secondi!";
header("Refresh: 3; URL = categories.php");
break;
default:
echo "Specifica una azione!";
}
?>