| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
BB-BF-BM Gast
|
Fragen zum Ausführen von MySQL-Abfragen mit php |
|
|
Ich bin gerade dabei, ein Skript zu schreiben und muss dazu Felder ni eine Tabelle einfügen; doch kommt immer nur Parse Error!
| PHP-Code: | 1 2 3 4
| <?php
$sql = "INSERT INTO " . USER_VOK_TABLE . " (Vok_ID, lat_Vok, lat_Zusatz1, lat_Zusatz2, ger_Vok1, ger_Vok2, ger_Vok3, ger_Vok4, User_ID)
VALUES ('$vok[$i]['Vok_ID']', '$vok[$i]['lat_Vok']', '$_POST[$j.'lat_Zusatz1']', '$_POST[$j.'lat_Zusatz2']', '$_POST[$j.'ger_Vok1']', '$_POST[$j.'ger_Vok2']', '$_POST[$j.'ger_Vok3']', '$_POST[$j.'ger_Vok4']', '$userdata['userid']')";
?> |
Das ist ein Code-Ausschnitt; der Fehler ist folgender: | Code: | Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in C:\DERPFAD\vokabeln.php on line 35 |
EDIT: In diesem Falle wäre die Zeile 35 Zeile 2 |
Zuletzt bearbeitet von BB-BF-BM am 25 Feb 2006 11:41, insgesamt einmal bearbeitet |
|
|
| 19 Feb 2006 18:32 |
|
  |
V4hn Moderator
|
 |
|
|
| PHP-Code: | 1 2 3 4 5
| <?php
$sql = "
INSERT INTO " . USER_VOK_TABLE . " (Vok_ID, lat_Vok, lat_Zusatz1, lat_Zusatz2, ger_Vok1, ger_Vok2, ger_Vok3, ger_Vok4, User_ID)
VALUES ('".$vok[$i]['Vok_ID']."', '".$vok[$i]['lat_Vok']."', '".$_POST[$j.'lat_Zusatz1']."', '".$_POST[$j.'lat_Zusatz2']."', '".$_POST[$j.'ger_Vok1']."', '".$_POST[$j.'ger_Vok2']."', '".$_POST[$j.'ger_Vok3']."', '".$_POST[$j.'ger_Vok4']."', '".$userdata['userid']."')";
?> |
so sollte es funktionieren...
es ist immer besser variablen auserhalb von Strings einzubauen, sonst kriegst du mit den Indexen probleme.
Außerdem ist es eine verdammt große Sicherheitslücke, Post oder Get variablen ohne überprüfung auf Sonderzeichen in querys einzufügen... |
_________________
 |
|
|
| 20 Feb 2006 10:20 |
|
 |
BB-BF-BM Gast
|
 |
|
|
| V4hn hat Folgendes geschrieben: | | Außerdem ist es eine verdammt große Sicherheitslücke, Post oder Get variablen ohne überprüfung auf Sonderzeichen in querys einzufügen... |
Hat sich das dadurch schon etwas vermindert?
Oder wie müsste ich diese Abfrage machen? |
|
|
|
| 20 Feb 2006 18:38 |
|
 |
V4hn Moderator
|
 |
|
|
| BB-BF-BM hat Folgendes geschrieben: | | Hat sich das dadurch schon etwas vermindert? |
kein bisschen.
kannst ja selbst mal überlegen, was passiert, wenn jemand in
$_POST[$j.'ger_Vok4']
folgenden Text übergibt:
',); DELETE FROM *; --
den Rest kannst du selbst ausmalen...
die einfachste möglichkeit wäre, vor dem Query eine Überprüfung auf die wichtigsten Sonderzeichen in dem Kontext zu machen und den Query nur auszuführen, wenn keine drin sind... |
_________________
 |
|
|
| 20 Feb 2006 20:39 |
|
 |
BB-BF-BM Gast
|
 |
|
|
Was fürn Code müsste das denn sein?
/ was für ne Funktion benötige ich dafür?
Noch ein Problem:
Folgenden Code-Ausschnitt habe ich um Where ergänzt
(vorher)
| PHP-Code: | 1 2 3 4 5
| <?php
$sql = "SELECT *
FROM " . VOK_TABLE . "
ORDER BY Vok_ID";
?> |
(nachher)
| PHP-Code: | 1 2 3 4 5 6
| <?php
$sql = "SELECT *
FROM " . VOK_TABLE . "
WHERE Lektion = " . $_POST['lektion'] . "
ORDER BY Vok_ID";
?> |
Und Prompt kommt ein Fehler:
| Code: |
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Vok_ID' at line 4 |
|
|
|
|
| 21 Feb 2006 17:20 |
|
 |
V4hn Moderator
|
 |
|
|
| PHP-Code: | 1 2 3 4 5 6
| <?php
$sql = "SELECT *
FROM " . VOK_TABLE . "
WHERE Lektion = '" . $_POST['lektion'] . "'
ORDER BY Vok_ID";
?> |
Da haben ein paar Anführungszeichen gefehlt
ich bin sicher, dass es hier leute gib, denen was besseres einfällt,
aber hier eine Version:
| PHP-Code: | 1 2 3 4 5 6 7
| if(!strpos(addslashes("A".$_POST['lektion'].$_POST['lektion2']), "\\")){
$sql = "SELECT *
FROM " . VOK_TABLE . "
WHERE Lektion = '" . $_POST['lektion'] . "'
ORDER BY Vok_ID";
...
} else echo "keine Sonderzeichen"; |
|
_________________
 |
|
|
| 21 Feb 2006 20:38 |
|
 |
BB-BF-BM Gast
|
 |
|
|
Vielen Dank
Kann man auch nur Werte ausgeben lassen, wenn in einem Feld was drin steht?
Also sowas wie |
|
|
|
| 22 Feb 2006 19:52 |
|
 |
V4hn Moderator
|
|
| 22 Feb 2006 20:14 |
|
 |
BB-BF-BM Gast
|
 |
|
|
Was bedeutet dieser Fehler?:
| Code: | Operand should contain 1 column(s) |
|
|
|
|
| 24 Feb 2006 16:17 |
|
 |
V4hn Moderator
|
|
| 24 Feb 2006 20:37 |
|
 |
|