frankx: Unübersichtlich und „aufgeblähter" Code?

Beitrag lesen

Ahoi Jnnbo

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;
					}
	};
	?>
<?php
// Prüfen ob GET gesetztz ist
//~ if(isset($_GET['hersteller'])) {
                //~ $hersteller = $_GET['hersteller'];        
//~ }


// 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(empty($errors)) {
        if(isset($_GET['hersteller'])) {
            // Datensatz aus der Datenbank auslesen - erst nach der Prüfung!!!
            $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, $_POST["hersteller"], $_POST["url"], $_POST["status"]); //evtl falsche Posts einkopiert
            $stmt->fetch();
            $stmt->close();

            if ($stmt = $mysqli->prepare("Update web_hersteller SET h_titel=?, h_titelURL=?, h_status=? WHERE h_id = ?")){
                $stmt->bind_param("ssss", $_POST["hersteller"], $_POST["url"], $_POST["status"], $h_id);
            }
        } elseif ($stmt = $mysqli->prepare("INSERT INTO web_hersteller (h_titel, h_titelURL, h_status) VALUES (?, ?, ?)")) {    
            $stmt->bind_param("sss", $_POST["hersteller"], $_POST["url"], $_POST["status"]);
        }
    }
    $stmt->execute();
    header("Location: http://$host$uri/$extra");
} else {
    echo $mysqli -> error;
};

Irgendwie kommen hier mehr Zeilenumbrüche rein als sollten. Zudem ist das Ausmerzen der Umkopiererei irgendwie nicht ganz richtig oder komplett. Frage ist auch, ob der obere Codeblock, das Auslesen aus der DB, da korrekt steht. Immerhin aber sollte der ja nur sein, wenn die Vars dazu auch existieren. Dank und Gruß,

bob from berlin

0 69

Unübersichtlich und „aufgeblähter" Code?

Jnnbo
  • php
  1. 0
    frankx
  2. 0
    dedlfix
    1. 0
      Auge
      • meinung
      • php
      1. 0
        dedlfix
  3. 0
    Jörg Reinholz
    1. 0
      frankx
    2. 0
      Jörg Reinholz
      • programmiertechnik
      1. 0
        Jnnbo
        1. 0
          Jörg Reinholz
          1. 0
            Gunnar Bittersmann
            1. 0
              dedlfix
            2. 0
              Jörg Reinholz
      2. 0
        frankx
        1. 0
          Jörg Reinholz
        2. 0
          Auge
          1. 0
            Gunnar Bittersmann
      3. 1
        dedlfix
      4. 0
        Gunnar Bittersmann
        1. 2
          Christian Kruse
    3. 1
      Auge
      • meinung
      • php
    4. 0
      Gunnar Bittersmann
      1. 0
        Jörg Reinholz
        1. 0

          Curly Braces und Coding Style

          frankx
          1. 1
            Der Martin
            1. 1
              Sven Rautenberg
              1. 0
                Tabellenkalk
                1. 0

                  Curly Braces und Coding Style - Leerzeichen oder neue Zeile?

                  frankx
                  1. 0
                    Tabellenkalk
                    • php
                    • programmiertechnik
                    1. 0
                      frankx
                      1. 0

                        Curly Braces und Coding Style - PHP Coding Standards Fixer

                        frankx
                    2. 1
                      Sven Rautenberg
                      1. 0
                        dedlfix
                        1. 0
                          Sven Rautenberg
                          1. 0
                            dedlfix
  4. 0
    Auge
    1. 0
      Jnnbo
      1. 1
        Christian Kruse
        1. 0
          Jnnbo
          1. 1
            Christian Kruse
        2. 0
          Gunnar Bittersmann
          • programmiertechnik
          1. 0
            Christian Kruse
      2. 0
        Jörg Reinholz
        1. 0
          Jnnbo
          1. 0
            Jörg Reinholz
            1. 0
              Jnnbo
              1. 0
                Sven Rautenberg
                1. 0
                  BaBa
                  1. 0
                    Gunnar Bittersmann
                    1. 2
                      Christian Kruse
                    2. 0
                      Sven Rautenberg
                      1. 0
                        dedlfix
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            dedlfix
                        2. 0
                          Gunnar Bittersmann
                          1. 0
                            dedlfix
                          2. 0
                            Gunnar Bittersmann
                            • menschelei
                            1. 1
                              Der Martin
                              1. 0
                                Gunnar Bittersmann
    2. 0
      frankx
  5. 0
    frankx
    1. 0
      Jnnbo
      1. 0
        dedlfix
      2. 0
        frankx
  6. 0
    MudGuard
    1. 0
      Jnnbo
      1. 0
        MudGuard
    2. 0
      dedlfix
      1. 0
        frankx