Hallo an alle PHP Spezialisten,
jemand meinte heute zu mir ich würde unübersichtlichen und „aufgeblähter" Code schreiben, wollte mir aber nicht sagen warm und wie bzw. was ich ändern könnte. Meine Frage an euch, ist dieses wirklich der Fall und was könnte ich daran ändern?
Dieser Code ist für das INSERT und UPDATE zuständig:
// Prüfen ob GET gesetztz ist
if(isset($_GET['hersteller'])) {
$hersteller = $_GET['hersteller'];
}
// Datensatz aus der Datenbank auslesen
$stmt = $mysqli->prepare("SELECT h_id, h_titel, h_titelURL, h_status FROM web_hersteller WHERE h_id=?");
$stmt->bind_param("s", $hersteller);
$stmt->execute();
$stmt->bind_result($h_id, $h_titel, $h_titelURL, $h_status);
$stmt->fetch();
$stmt->close();
// Ziel URL festlegen
$host = htmlspecialchars($_SERVER["HTTP_HOST"]);
$uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");
$extra = "hersteller";
if(isset($_POST['abschicken'])){
if(empty($_POST['hersteller'])) {
$errors[] = "Geben Sie bitte einen Hersteller an";
}
if(empty($_POST['url'])) {
$errors[] = "Geben Sie bitte eine Hersteller URL an";
}
if(isset($_POST['abschicken']) && empty($errors)) {
if(isset($_GET['hersteller'])) {
if ($stmt = $mysqli->prepare("Update web_hersteller SET h_titel=?, h_titelURL=?, h_status=? WHERE h_id = ?"))
{
$h_titel = $_POST["hersteller"];
$h_titelURL = $_POST["url"];
$h_status = $_POST["status"];
$stmt->bind_param("ssss",
$h_titel,
$h_titelURL,
$h_status,
$h_id
);
}} // Ende $_GET['hersteller']
else {
if ($stmt = $mysqli->prepare("INSERT INTO web_hersteller (h_titel, h_titelURL, h_status) VALUES (?, ?, ?)"))
{
$h_titel = $_POST["hersteller"];
$h_titelURL = $_POST["url"];
$h_status = $_POST["status"];
$stmt->bind_param("sss", $h_titel, $h_titelURL, $h_status);
}}
$stmt->execute();
header("Location: http://$host$uri/$extra");
}
else {
echo $mysqli -> error;
}
};
?>