Du willst ja was lernen…
Beispielhaft ein paar "Kleinigkeiten", die mir in der ub_start.php auffallen:
du schreibst:
besser wäre:
du schreibst:
besser wäre:
du schreibst:
besser wäre:
du schreibst:
besser wäre:
Und du schreibst php & html in einer Datei -> gaaaanz schlechter Stil. Schau dir mal die Templateengines genauer an, damit du dir das gar nicht erst (weiter) angewöhnst. Smarty & Twig sind gut für den Anfang.
gibt bestimmt noch mehr, aber ich hab grad keine Zeit/Lust mir jetzt deinen kompletten Spaghetticode reinzuziehen
Beispielhaft ein paar "Kleinigkeiten", die mir in der ub_start.php auffallen:
du schreibst:
PHP:
if (isset($_REQUEST['source'])) $source=$_REQUEST['source']; else $source=array();
PHP:
$source = (array_key_exists($_POST, 'source') && is_array($_POST['source']) ? array_walk($_POST['source'], 'addslashes') : array();
- Damit kannst du versehentlich einen (leeren) string auf die variable zuweisen, das ist zwar in PHP nicht unbedingt dramatisch (da php nicht typisiert ist), aber einfach schlechter Stil.
- Das array_walk ist nur als Beispiel zu sehen Das würde ich wohl selber nicht so schreiben, da die Veränderung von globalen Variablen ($_*) generell eher Ungeil ist. Also lieber vorher in eigene variable schmeißen und dann damit arbeiten.
- Inline conditions sind durchaus Geschmacksache, in so kurzem Code aber der langen Form IMHO immer vorzuziehen.
du schreibst:
PHP:
while (!feof($f)) {
$buffer = fgets($f, 4096);
$string .= $buffer;
}
PHP:
file_get_contents($f)
du schreibst:
PHP:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
PHP:
function test_input($data) {
return htmlspecialchars(stripslashes(trim($data)));
}
- generell bei funktionen immer "von unten" denken und versuchen möglichst wenig variablenzuweisungen zu machen. die sind nämlich teuer.
- wer jetzt mit "aber unübersichtlich" kommt -> dann ist die Funktion zu lang
du schreibst:
PHP:
shell_exec("sh script_start.sh test ".addslashes($_POST["selectvolumeExtern"])." ".addslashes($_POST["selectscriptExtern"])." ".addslashes($_POST["rspdryExtern"])." ".addslashes($_POST["rspdebugExtern"])." ".addslashes($_POST["rsprestoreExtern"])." ");
PHP:
shell_exec(addslashes(sprintf('sh script_start.sh test %s %s %s %s %s', $_POST["selectvolumeExtern"], $_POST["selectscriptExtern"], $_POST["rspdryExtern"], $_POST["rspdebugExtern"], $_POST["rsprestoreExtern"]));
- addslashes braucht es erst kurz vor der Übermittlung an shell_exec, alternativ könntest du auch direkt am Anfang der Datei einmal überall durchgehen (wie ich oben beispielhaft mache)
- ich mag sprintf lieber als "".""."".""… - finde das einfach übersichtlicher
- generell muss ich zugegeben, dass ich gefühlt seit PHP 4.x nicht mehr mit plain-php gearbeitet habe, daher kann es gut sein, dass addslashes() da mittlerweile veraltet ist, kurz googlen führt mich zu filter_var, was wohl neues/besser ist? Es gibt aber auch viele libraries, die sich um die validierung von daten kümmern, tendenziell ist es besser davon eine zu nutzen.
Und du schreibst php & html in einer Datei -> gaaaanz schlechter Stil. Schau dir mal die Templateengines genauer an, damit du dir das gar nicht erst (weiter) angewöhnst. Smarty & Twig sind gut für den Anfang.
gibt bestimmt noch mehr, aber ich hab grad keine Zeit/Lust mir jetzt deinen kompletten Spaghetticode reinzuziehen