Tach!
jemand meinte heute zu mir ich würde unübersichtlichen und „aufgeblähter" Code schreiben,
Mir fehlt da noch eine ganze Menge Fehlerbehandlung.
wollte mir aber nicht sagen warm und wie bzw. was ich ändern könnte.
Vielleicht ist gemeint, dass du eine Menge Code geschrieben hast, der alles erledigt, und ihn nicht in kleinere, übersichtliche Teile zerlegt hat.
// Prüfen ob GET gesetztz ist if(isset($_GET['hersteller'])) { $hersteller = $_GET['hersteller']; }
Wenn hersteller nicht in $_GET ist, was ist dann? Beispielsweise mit der Variable $hersteller, und auch bezüglich des Programmflusses?
// 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();
Keine Fehlerbehandung. Heute scheint die Sonne, wird schon alles gut gehen.
// Ziel URL festlegen $host = htmlspecialchars($_SERVER["HTTP_HOST"]); $uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");
Was macht denn htmlspecialchars() hier? Das ist doch kein HTML-Kontext.
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'])) {
Schon wieder Validierung? Warum kommt das nicht bevor die Verarbeitung anfängt?
$stmt->execute();
Immer noch keine Fehlerbehandlung.
header("Location: http://$host$uri/$extra");
Jetzt sind hier HTML-gerechte Zeichen-Ersetzungen drin, die in HTTP gar keine Funktion haben. Es fehlt aber eine URL-gerechte Behandlung.
else { echo $mysqli -> error; }
Wozu gehört der Teil denn? Ist die Formatierung des Codes bei dir so wie es hier im Forum zu sehen ist, oder ist das nur ein wie auch immer gelagertes Copy-Paste-Formatier-Problem?
dedlfix.