preBeta?? wie kommst du darauf?
Ich will Dir ja nicht zu nahe treten, aber wenn Du nicht jetzt damit beginnst die paar Dateien zu optimieren, wirst Du Dir in naher Zukunft wünschen dies getan zu haben. Versteh mich nicht falsch, Respekt vor Dir und Deiner Motivation so ein Werkzeug zu schreiben, allerdings würde dem Programmcode etwas mehr Liebe gut zu Gesicht stehen.
Dafür hier (hoffentlich konstruktive) Vorschläge:
1. Du verlässt Dich darauf, das register_globals eingeschaltet ist. Ich glaube seit PHP 4.2 ist der Schalter per Standardeinstellung auf "Off". Wie steht der Schalter eigentlich beim xampp standardmäßig?
Also wenigsten den Code auf "register_globals = Off" ausrichten.
Bleibt es so, kannst Du Dich schon mal auf die Frage "Ich kann mich nicht einloggen..." vorbereiten.
2. Beim anzeigen der logdatei ist mir der FireFox abgeschmiert. Kein wunder bei 8MB access.log... Die error.log kann leicht genau so
gross werden wenn man viel experimentiert.
Vorschlag: Da Du jede Zeile sowieso dem Arbeitspeicher als Arraywert überlässt, gibt doch nur die letzten 100($n) Zeilen aus und baue eine kleine Navigation zum 100er($n) weise "blättern" dort hin.
- Code: Select all
$arr = array(1,2,3);
$arr2 = array_reverse($arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
echo "<pre>";
print_r($arr2);
echo "</pre>";
Zeilenweise ausgeben
- Code: Select all
for ($i=$start; $i<$ende; $i++)
echo $arr2[$i];
$start wäre hier natürlich die erste Zeile des gedrehten Arrays und $ende logischerweise die 100 oder was auch immer für einen Wert Du für sinnvoll erachtest.
3. Wenn Du eine Abbruchbedingung hast, und diese mit einem exit(); ausführst, wird logischweise auch der HTML Quelltext den Du ja immerhin zur Gestaltung benötigts auch nicht mehr geparst.
Vorschlag:
- Code: Select all
//Dateikopf
if(2>1)
{
$_SESSION['meldung'] .= "Fehler im System<br>\n";
header("location:http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
exit();
}
// [......] an einer beliebigen Stelle folgt dann die Ausgabe der Fehler falls voranden
if(isset($_SESSION['meldung'])
&& !empty($_SESSION['meldung'])
){
echo $_SESSION['meldung'];
unset($_SESSION['meldung'])
}
Du sammelst all Deine Fehlermeldungen in der Session, damit gehen sie beim retour nicht verloren, der HTML Quelltext geht nicht flöten und ein reload der "nichtvaliden" Daten wird ebenfalls verhindert.
Als letztes(reicht auch, gelle :-) noch eine Sache die Du/Ihr Euch zu Herzen nehmen solltet. Die vom Formular geschicken Benutzereingaben erst in einem "Block" validieren und per Kontrollvariablen(Wächter) sicherstellen, das keinerlei Code ausgeführt wird, wenn nicht alle Eingaben absolut zuverlässig sind.
http://dclp-faq.de/q/q-stil-waechter.htmlAls Beispiel:
- Code: Select all
<input type="submit" name="schalter[vhost]" value="vhost anlegen">
if(isset($_POST['schalter']['vhost']))
{
$gültig = true; // Setzen des Wächters
if(!is_int($_POST['port'])){
$gültig = false;
$_SESSION['meldung'] .= 'Port ist keine Ganzzahl';
}
// weitere Validierung
if(!$gültig){
header("location:http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
exit(); // nur zur Sicherheit, das auch wirklich kein Code mehr ausgeführt wird
}
// Wenn das programm hier noch läuft, war die Validierung erfolgreich
// also mach was mit dem Werten
// [DB Eintrag]
if($DB_Eintrag == "erfolgreich")
{
$HTTP_SESSION_VARS['meldung'] .='Eintrag erfolgreich';
header("location:http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
exit();
}
else{
$_SESSION['meldung'] .='Eintrag fehlgeschlagen -> '.mysql_error();
header("location:http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
exit();
}
} // Ende __ if(gültig)
} // Ende __ if(isset(schalter[vhost]))
Ok, das reicht jetzt wirklich.....
mit _freundlichem_ Gruß
Stefan
PS: Wie jetzt..., Du wusstet nicht das ich im Klugscheißer Verein der Vorsitzende bin..... ?