Denkfehler - bitte um Hilfe

03/26/2015 20:36 Papa Kobe#1
Hallo.

Habe im folgenden Script einen Denkfehler.

##edited##

Fehlercode:

Code:
ERROR 1

Nicht erfolgreich
Danke im Vorraus.
03/26/2015 20:53 Synatex#2
Hi,

erst einmal ein paar Sachen vorweg, die eventuell deinen Code optimieren/verbessern könnten.

1.) Die Nutzung der mysql_* Funktionen ist so gut wie veraltet. Du solltest in naher Zukunft auf mysqli_* oder PDO umsteigen um auf dem aktuellen Stand zu bleiben.

2.) Alle deine Variablen die du einzeln escapst kannst du um einiges einfacher einmal drüberfahren:

PHP Code:
<?php

$params 
$_POST;

foreach(
$params as $key => $value) {
   
$params[$key] = deineEscapeFunktion($value);
}
?>
Damit hättest du schon den kompletten oberen Teil abgedeckt. Zusätzlich könntest du dort alle Values überprüfen und schauen ob dort ein Fehler existiert bzw. der Wert nicht vorhanden ist und kannst die nervigen IF-Abfragen rausnehmen.

Zu deinem Problem:

Da müsste man die Datenbankstruktur kennen - dein Query scheint nie erfolgreich zu sein da sonst die IF-Abfrage die ganze Zeit failed.
03/26/2015 21:23 Papa Kobe#3
Quote:
Originally Posted by Synatex View Post
Hi,

erst einmal ein paar Sachen vorweg, die eventuell deinen Code optimieren/verbessern könnten.

1.) Die Nutzung der mysql_* Funktionen ist so gut wie veraltet. Du solltest in naher Zukunft auf mysqli_* oder PDO umsteigen um auf dem aktuellen Stand zu bleiben.

2.) Alle deine Variablen die du einzeln escapst kannst du um einiges einfacher einmal drüberfahren:

PHP Code:
<?php

$params 
$_POST;

foreach(
$params as $key => $value) {
   
$params[$key] = deineEscapeFunktion($value);
}
?>
Damit hättest du schon den kompletten oberen Teil abgedeckt. Zusätzlich könntest du dort alle Values überprüfen und schauen ob dort ein Fehler existiert bzw. der Wert nicht vorhanden ist und kannst die nervigen IF-Abfragen rausnehmen.

Zu deinem Problem:

Da müsste man die Datenbankstruktur kennen - dein Query scheint nie erfolgreich zu sein da sonst die IF-Abfrage die ganze Zeit failed.
Danke erstmal für deine Antwort, nehme ich für die Zukunft mir zu Herzen. Habe eben herausgefunden, dass die "bloße Variabelübergabe" funktioniert (siehe Code oben), aber wenn ich es escape kein Inhalt (also wird nichts ausgegeben) mehr drinne ist. Grund dafür weiss ich jetzt leider auch nicht.
03/26/2015 22:02 Shawak#4
Bitte einmal Datenbankstruktur angeben, sonst kann man hier schwer helfen.

Darf ich erfahren wie du escapest?

Solltest du mysql* bereits zu mysqli* abgeändert haben, darfst du die $link angabe nicht vergessen, bzw musst auf den oop Stil achten.

Code:
$params = $_POST; 

foreach($params as $key => $value) { 
   $params[$key] = mysqli_escape_string($link, $value);
}
Eine Alternative wäre einfach mal das error reporting an zu machen.
03/27/2015 18:25 Papa Kobe#5
Hab den Fehler gefunden. Script funktioniert (werde eure Verbesserungsvorschläge mir zu Herzen nehmen). Fehler war

Quote:
include "einstellungen/datenbankopen.php";
include "einstellungen/global.php";
. Die Datei befand sich bereits im "einstellungen"-Verzeichnis und konnte so beide Dateien sowie dbclose nicht includieren. Wusste doch, dass es ein banaler Fehler sein wird. Danke trotzdem für eure Hilfe.