Frage zum Programmierstil

Daveman

Grünschnabel
Hallo,
da ich schon etwas coden kann, möchte ich auch jetzt auf einen Stil achten der vielleicht Standard ist oder performer. Vielleicht könnt ihr mir da ein bisschen helfen. Und zwar hab ich ein Script geschrieben in dem alles drin steht:

Von der Datenbank auslesen
In die Datenbank schreiben
Datensätze in der Datenbank ändern
Datensätze löschen

Sollte man diese Funktionsteile vielleicht in mehrere Datein aufteilen wie insert.php, update.php, del.php, oder kann ich das ruhig alles in einer Datei machen?

Ich hab mal ein Codebeispiel
PHP:
<?php
// Benutzer Auflistung
if ( ( !isset( $_GET['edit'] ) ) && ( !isset( $_GET['upload'] ) ) && ( !isset( $_GET['delete'] ) ) && ( !isset( $_GET['insert'] ) ) ) {
    include ( "config_inc.php" );
    $sql = "SELECT * FROM user where adminlvl ='1' order by Nachname";
    $query = mysql_query( $sql );
    echo '
	      <form name="form1" method="post" action="?go=benutzer&insert=ok">
	     
 //bisschen html Code rausgenommen

	      </form>
          <form
		  <table width="650" border="0">
			<tr>
			  <td width="120">Nachname:</td>
			  <td width="120">Vorname:</td>
			  <td width="200">E-Mail</td>
			  <td width="50">Level:</td>
			  <td width="80"></td>
			  <td width="80"></td>
			</tr>';
    while ( $ausgabe = mysql_fetch_assoc( $query ) ) {
        echo '
			  <tr>
			    <td>' . $ausgabe['Nachname'] . '</td>
			    <td>' . $ausgabe['Vorname'] . '</td>
				<td>' . $ausgabe['email'] . '</td>
			    <td>' . $ausgabe['adminlvl'] . '</td>
				<td><a href="?go=benutzer&edit=' . $ausgabe['ID'] . '">Berarbeiten</a></td>
				<td><a href="?go=benutzer&delete=' . $ausgabe['ID'] . '">L&ouml;schen</a></td>
			  </tr>';
    }
    echo "</table><br><br>";

    $sql = "SELECT * FROM user where adminlvl ='2' order by Nachname";
    $query = mysql_query( $sql );
    echo '
	  	  <table width="650" border="0">
		    <tr>
		      <td width="120">Nachname:</td>
		      <td width="120">Vorname:</td>
			  <td width="200">E-Mail</td>
		      <td width="50">Level:</td>
			  <td width="80"></td>
			  <td width="80"></td>
		    </tr>';
    while ( $ausgabe = mysql_fetch_assoc( $query ) ) {
        echo '
			  <tr>
			    <td>' . $ausgabe['Nachname'] . '</td>
			    <td>' . $ausgabe['Vorname'] . '</td>
				<td>' . $ausgabe['email'] . '</td>
			    <td>' . $ausgabe['adminlvl'] . '</td>
				<td><a href="?go=benutzer&edit=' . $ausgabe['ID'] . '">Berarbeiten</a></td>
				<td><a href="?go=benutzer&delete=' . $ausgabe['ID'] . '">L&ouml;schen</a></td>
			  </tr>';
    }
    echo "</table><br><br>";

    $sql = "SELECT * FROM user where adminlvl ='3' order by Nachname";
    $query = mysql_query( $sql );
    echo '
		  <table width="650" border="0">
		    <tr>
		      <td width="120">Nachname:</td>
		      <td width="120">Vorname:</td>
			  <td width="200">E-Mail</td>
		      <td width="50">Level:</td>
			  <td width="80"></td>
			  <td width="80"></td>
		    </tr>';
    while ( $ausgabe = mysql_fetch_assoc( $query ) ) {
        echo '
			  <tr>
			    <td>' . $ausgabe['Nachname'] . '</td>
			    <td>' . $ausgabe['Vorname'] . '</td>
				<td>' . $ausgabe['email'] . '</td>
			    <td>' . $ausgabe['adminlvl'] . '</td>
				<td><a href="?go=benutzer&edit=' . $ausgabe['ID'] . '">Berarbeiten</a></td>
				<td><a href="?go=benutzer&delete=' . $ausgabe['ID'] . '">L&ouml;schen</a></td>
			  </tr>';
    }
    echo "</table><br><br>";
    // Benutzer Bearbeiten
} elseif ( ( isset( $_GET['edit'] ) ) && ( !isset( $_GET['update'] ) ) ) {
    include( "config_inc.php" );
    $sql = "SELECT * FROM user where ID=" . $_GET['edit'] . "";
    $query = mysql_query( $sql );
    while ( $ausgabe = mysql_fetch_assoc( $query ) ) {
        echo '
		      <form name="updaten" method="post" action="admin.php?go=benutzer&edit=' . $ausgabe['ID'] . '&update=ok">
		   
//Ganz viel HTML CODE rausgenommen

		      </form>';
    }
    // Benutzer Update
} elseif ( isset( $_GET['edit'] ) && ( isset( $_GET['update'] ) ) && ( $_GET['update'] = "ok" ) ) {
    include ( "config_inc.php" );
    $sql = "UPDATE user SET Nachname = '" . $_POST['nachname'] . "', Vorname = '" . $_POST['vorname'] . "', email = '" . $_POST['email'] . "', adminlvl = '" . $_POST['level'] . "' WHERE ID = " . $_POST['id'] . "";
    if ( $updaten = mysql_query( $sql ) ) {
        echo '
              Eintrag war erfolgreich!<br /><br />
	          <a href="admin.php?go=benutzer">Zur&uuml;ck</a>';
    } else {
        echo 'Es ist ein Fehler aufgetreten, bitte versuchen Sie es noch einmal!';
    }
} elseif ( ( isset( $_GET['delete'] ) ) && ( $_GET['delete'] != "realy" ) && ( !isset( $_GET['realy'] ) ) ) {
    include( "config_inc.php" );
    $sql = "SELECT * FROM user where ID = " . $_GET['delete'] . "";
    $query = mysql_query( $sql );
    while ( $ausgabe = mysql_fetch_assoc( $query ) ) {
        echo '
		      Soll ' . $ausgabe['Vorname'] . ' ' . $ausgabe['Nachname'] . ' wirklich gel&ouml;scht werden?<br /><br />
		      <table width="200">
		        <tr>
		          <td width="100"><a href="?go=benutzer&delete=ok&realy=' . $ausgabe['ID'] . '">ja</a></td>
		          <td width="100"><a href="?go=benutzer">nein</a></td>
		        </tr>
		      </table>';
    }
} elseif ( ( isset( $_GET['delete'] ) ) && ( $_GET['delete'] != "realy" ) && ( isset( $_GET['realy'] ) ) ) {
    include( "config_inc.php" );
    $sql = "DELETE FROM user WHERE ID = " . $_GET['realy'] . "";
    if ( $del = mysql_query( $sql ) ) {
        echo '
              L&ouml;schvorgang war erfolgreich!<br /><br />
	          <a href="admin.php?go=benutzer">Zur&uuml;ck</a>';
    } else {
        echo 'Es ist ein Fehler aufgetreten, bitte versuchen Sie es noch einmal!';
    }
    // Benutzer in der
} elseif ( ( isset( $_GET['insert'] ) ) && ( $_GET['insert'] = "ok" ) ) {
    include( "config_inc.php" );
    $sql = "INSERT INTO user (Vorname, Nachname, email, adminlvl) VALUES ('" . $_POST['Vorname'] . "', '" . $_POST['Nachname'] . "', '" . $_POST['email'] . "', '" . $_POST['level'] . "')";
    if ( mysql_query( $sql ) ) {
        echo '
              Eintrag war erfolgreich!<br /><br />
	          <a href="admin.php?go=benutzer">Zur&uuml;ck</a>';
    } else {
        echo 'Es ist ein Fehler aufgetreten, bitte versuchen Sie es noch einmal!';
    }
}

?>

Hab so ein bisschen HTML Code rausgenommen, wegen der Übersicht. Die Komplette Datei hab ich angehängt.

Wünsche noch nen schönen Tag :-)
 

Anhänge

Hi,

Für den Stil empfehle ich dir die Lektüre vom PHP Coding Standard von Dirk Jesse.

Zu deinem Code würde ich dir raten, alles HTML Code auszulagern, in separate Dateien ("Templates"). Das Programm an sich kannst du dann in einer Datei haben, mache ich meist auch so.

//edit:

Was mir noch auffällt:
Code:
( !isset( $_GET['edit'] ) ) && ( !isset( $_GET['upload'] ) )

Zuviele unnötige Klammern, die du nicht brauchst.
 
Zuletzt bearbeitet:
Außerdem noch:

PHP:
    $sql = "SELECT * FROM user where adminlvl ='1' order by Nachname";
    $query = mysql_query( $sql );

kann man auch so schreiben:

PHP:
  $sql = "SELECT * FROM user WHERE 
          adminlvl ='1' 
         ORDER BY
          Nachname";
 $query = mysql_query( $sql );

(Ist vor allem nützlich wenn man viele WHERE-Anweisungen hat...)


Und:

PHP:
                <td>' . $ausgabe['Nachname'] . '</td>
                <td>' . $ausgabe['Vorname'] . '</td>
                <td>' . $ausgabe['email'] . '</td>

Benutzer sind böse und wollen Schadcode einschleusen -> htmlentities
 
Versuche mehr Funktionen zu verwenden, lagere mehr aus (einbinden durch require())!

Ich stimme queicherius zu, bei der SQL Abfrage ist es wirklich übersichtlicher und SQLInjection ist ein wichtiges Thema.


@ Loomes, danke für die Quelle werde ich mal stöbern^^
 
Zurück