2016-10-13 2 views
0

Wie der Titel sagt. Wenn ein Benutzer versucht, eine Datei mit 'in Titel hochzuladen, wird ein Fehler ausgegeben (es wird keine Verbindung zum Server hergestellt). Sollte ich dieses Zeichen während des Uploads oder etwas anderes ersetzen? Es einfach nur Verbindung mit der DatenbankPHP-Datei-Upload-Fehler, wenn die Datei hat in Titel

$b = "select * from doc"; 
    $rez1 = mysql_query($b) or die("<span>error</span>"); 
+0

Versuchen Sie niemals, die clientseitigen Daten zu ändern, Sie können nicht alle Fälle vorhersehen. Verwenden Sie stattdessen das richtige Escaping, damit Sie mit diesen Daten arbeiten können, ohne dass Probleme auftreten. Dies beinhaltet nicht die völlig veralteten und veralteten mysql _...() 'Funktionen zu verwenden, sondern die aktuelle mysqli Erweiterung, die etwas über" vorbereitete Anweisungen "und die Vorteile der" Parameterbindung "lernt. Auch Dinge wie URL-Escaping kommen ins Spiel. – arkascha

Antwort

2

Ich würde die Verwendung von Escaping-Methoden empfehlen, anstatt die Eingabe zu manipulieren.

Dies ist der sicherste Weg, um SQL-Injektionen zu verhindern. (Und erzählen Sie dem Benutzer nie, die technischen Details, warum etwas nicht funktioniert, außer Sie wollen, dass einige von ihnen diese Ausnahmen ausnutzen)

Verwenden Sie auch nie die alten und veralteten mysql* Funktionen; Lernen Sie stattdessen PDO oder mysqli. Wenn Sie mysql verwendet haben, dann diese mysqli und verwenden wechseln: mysqli_real_escape_string()

Andernfalls Sie könnte einen regulären Ausdruck verwenden, die ' mit \' repaces - preg_quote()

$string = "Something with 'quotes' "; 
$res = preg_quote($string, "'"); 
echo $res; 

zurückkehren wird:

Etwas mit \ 'quotes \'

Dies wird während des Einfügens kein Problem verursachen.

+0

Die Isusse ist, dass es eine alte App ist, die ich für den Moment aufrechterhalte, bis eine neue Einheit läuft. Und einer der Clients hat Probleme mit dem Upload. Deshalb brauche ich eine ältere Lösung – OunknownO

Verwandte Themen