if (!mysql_query($sql)) {
$errorMsg = mysql_error();
//Jetzt kannst Du mit $errorMsg alles machen, was Du willst, das Script bricht nicht mehr mit einer Fehlermeldung ab...
}
anstelle von:
mysql_query($sql) or die(mysql_error());
Du kannst doch den Traffic shapen, der über das Netzwerkinterface zum Squid kommt, oder nicht?
Der Dateiupload läuft ja auch über Ihn ab...
Dann teilst Du einfach die Bandbreite der Verbindungen über das Netzwerkinterface zum Squid gleichmäßg auf...
Es reicht, wenn Du den INPUT-Feldern z.B. allen den gleichen Array-Namen gibst, Schlüssel sind nicht zwingend erforderlich...z.B.:
<input type="file" name="bild[]">
Diese kannst Du dann über PHP aus dem Array $_FILE entnehmen.
Du kannst Dir ja mal am Anfang vom verarbeitenden Script die Inhalte des Arrays anzeigen lassen, dann weisst Du, wie Du es verarbeiten musst...:
echo "<pre>";
print_r($_FILE);
echo "</pre>";
Du musst Dich bei der Fehlersuche auf den Bereich konzentrieren, in dem der Wert der Variable $ok_flag gesetzt/verändert wird.
Vielleicht postest Du etwas vom Code, so dass wir den Fehler mitsuchen können
Wohl eher in Fachliches/Webdesign
Wäre mir neu, ich würde eher sagen, dass Du sowas nur serverseitig realisieren kannst, indem Du den entsprechenden Content-Type-Header vorrausschickst...
Auch das ist nur serverseitig realisierbar, wenn der Parser Zugriff darauf hat...
Ansonsen hilft die Anpassung des Webservers, so dass Du z.B. einen Alias auf das Verzeichnis mit den Dokumenten ausserhalb des DocumentRoot einrichten kannst...
In der /etc/resolv.conf...
Bei der Festplatteninstallation sollte die Einstellung dann bestehen bleiben.
Solltest Du jedoch von CD-Booten, kann ich Dir nicht sagen, ob die Einstellungen der /etc/resolv.conf mit den Knoppixeinstellungen weggesichert werden.
Beispiel für /etc/resolv.conf:
nameserver 194.25.2.129
Hier zusätzlich noch mysql_escape_string() einbauen:
z.B.: $Beschreibung = mysql_escape_string(strip_tags(trim($_POST['neu_Beschreibung'])));
und im weiteren Verlauf auf jeden Fall abfragen, ob $Auto_Testfall_ID ein Integer-Wert ist, bevor das SQL-Statement abgeschickt wird, da dieser Wert unmaskiert im Statement verwendet wird...
Und das Workarounden Deiner Pflichtfeld-Validierung in der IF-Abfrage würde ich auch nochmal überdenken...
Wäre es nicht noch sinnvoll eine kleine online USV dazwischen zu schalten, um Stromschwankungen auszugleichen?
Oder ist die Spannung, die von der Batterie konstant genug?
*g
Zuerst mal würde ich mir das richtige Forum raussuchen...
Edit: Bevor jetzt Fragen kommen, warte, bis man Dich in "Ausbildung/Job" verschoben hat...oder bitte einen Moderator darum...
Hast Du Dir die CSV-Datei danach mal mit einem Editor angesehen, oder wundert es Dich nur, dass Excel sie selbst noch so darstellt, wie vor dem Speichern?
Dann hat der "Angreifer" im schlimmsten Falle bei Name eingeben:
Michael); DELETE * FROM Name WHERE (1=1
Und deine Tabelle Name ist leer...wenn die SQL-Statements getrennt durch das ; auch beide ausgeführt werden...
Aber ich bezweifle, dass Dein Statement überhaupt funktioniert, da der String nicht Maskiert ist...
Edit: Neben der Verwendung von mysql_escape_string() ist es auch sehr ratsam, die Eingaben eines Benutzers selbst vor der Verarbeitung im Script zu überprüfen, z.B. mittels regulärer Ausdrücke...
Dann ist global seitens der php.ini anscheinend ein Error-Reporting von E_ALL konfiguriert.
Versuche mal Zeile 4 durch diese zu ersetzen:
error_reporting(E_ALL ^ E_NOTICE);
Die Zeichen selbst sind in der Datenbank nicht gefährlich, nur das direkte Übergeben von Benutzereingaben.
Wenn Du z.B. in einer SQL-Abfrage Hochkommatas zum Angeben von Feldwerten verwendest ( feld = '".$wert."'), dann dürfen keine ' in der Variable Wert vorkommen, da sonst die Grenzen des Wertes nicht mehr eindeutig sind...
Um dem abzuhelfen sollte man (bei mySQL z.B.) jeden vom Benutzer eingegeben String mit feld = '".mysql_escape_string($wert)."' in das SQL-Statement einbauen.
Im schlimmsten Fall ist es auch möglich so die SQL-Abfrage zu den Gunsten eines Angreifers abzuändern...
Edit: Ergänzungen und anschauliche Beispiele erwünscht
Wenn Du uns die ganze Fehlermeldung gepostet hättest, stände dort bestimmt ein "Notice" oder "Warning" weil Du auf das Array $_POST mit einem Schlüssel zugreifen willst, der nicht als Parameter übergeben wurde. (Beispiel: $_POST['schlüssel']; es gibt aber kein Formularelement auf Deinem Formular mit dem Namen "schlüssel")
An deiner Stelle würde ich jetzt die Ausgabe von Notice in der PHP-Konfiguration zum Error-Reporting ausschalten... (php.ini!)
Oder Du fragst vorher ab, ob die Schlüssel, über die Du auf das Array zugreifen willst existieren.
VPN, Firewall, Redundanz im Netzwerk, DHCP, DNS, Raid-Level, SNMP, OCR (stand im Berichtsheft), IP-Adressklassen, und noch einige Projektbezogene sachen...