Du bist nicht angemeldet.

1

Montag, 2. Juni 2008, 15:06

Fehlersuche PHP-Formular

Guten Mittag, bräuchte mal eure Hilfe bei der Suche eines Fehlers. Das Skript müsste so eigentlich funktionieren, aber ich finde den Fehler nicht.


Diese Datei enthält das PHP-Skript:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php 
include ("checkuser.php"); 
?> 
<?php

error_reporting(E_ALL);

mysql_connect("localhost""root""");

mysql_select_db("erp");

$St_Name1 "";
$St_Name2 "";
$St_Straße "";
$St_Hausnummer "";
$St_Postleitzahl "";
$St_Wohnort "";
$St_Telefon "";
$St_Fax "";
$Ls_Name1 "";
$Ls_Name2 "";
$Ls_Straße "";
$Ls_Postleitzahl "";
$Ls_Wohnort "";
$Rs_Name1 "";
$Rs_Name2 "";
$Rs_Straße "";
$Rs_Postleitzahl "";
$Rs_Wohnort "";
$Zb_Skonto "";
$Zb_Netto "";
$Kp_Name "";
$Kp_Telefon "";

    $sql "INSERT INTO kunden
                (St_Name1, St_Name2, St_Straße, St_Hausnummer, St_Postleitzahl, St_Wohnort, St_Telefon, St_Fax, Ls_Name1, Ls_Name2, Ls_Straße, Ls_Postleitzahl, Ls_Wohnort, Rs_Name1, Rs_Name2, Rs_Straße, Rs_Postleitzahl, Rs_Wohnort, Zb_Skonto, Zb_Netto, Kp_Name, Kp_Telefon)
            VALUES
                ('".addslashes(htmlspecialchars($_POST['St_Name1']))."',
                '".addslashes(htmlspecialchars($_POST['St_Name2']))."',
                '".addslashes(htmlspecialchars($_POST['St_Straße']))."',
                '".addslashes(htmlspecialchars($_POST['St_Hausnummer']))."',
                '".addslashes(htmlspecialchars($_POST['St_Postleitzahl']))."',
                '".addslashes(htmlspecialchars($_POST['St_Wohnort']))."',
                '".addslashes(htmlspecialchars($_POST['St_Telefon']))."',
                '".addslashes(htmlspecialchars($_POST['St_Fax']))."',
                '".addslashes(htmlspecialchars($_POST['Ls_Name1']))."',
                '".addslashes(htmlspecialchars($_POST['Ls_Name2']))."',
                '".addslashes(htmlspecialchars($_POST['Ls_Straße']))."',
                '".addslashes(htmlspecialchars($_POST['Ls_Postleitzahl']))."',
                '".addslashes(htmlspecialchars($_POST['Ls_Wohnort']))."',
                '".addslashes(htmlspecialchars($_POST['Rs_Name1']))."',
                '".addslashes(htmlspecialchars($_POST['Rs_Name2']))."',
                '".addslashes(htmlspecialchars($_POST['Rs_Straße']))."',
                '".addslashes(htmlspecialchars($_POST['Rs_Postleitzahl']))."',
                '".addslashes(htmlspecialchars($_POST['Rs_Wohnort']))."',',
                '".addslashes(htmlspecialchars($_POST['Zb_Skonto']))."',
                '".addslashes(htmlspecialchars($_POST['Zb_Netto']))."',
                '".addslashes(htmlspecialchars($_POST['Kp_Name']))."',
        '".addslashes(htmlspecialchars($_POST['Kp_Telefon']))."',
        NOW())";

    mysql_query($sql) OR die(mysql_error());

echo "Datensatz hinzugefügt";

?>



Und dieser Fehler erscheint:

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 '', '', '', '', '', NOW(' at line 21


Würde mich über jede Hilfe freuen.

Pem

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »pem« (2. Juni 2008, 18:47)


2

Montag, 2. Juni 2008, 15:14

Hallo pem,

wirf mal einen Blick auf Zeile 55 des Scriptes. Das Ende mit der Variable $_POST['Rs_Wohnort'].

Fällt Dir da was auf?

Schöne Grüße

LapisInfernalis
Signatur von »LapisInfernalis« Eine Milde Gabe...

Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null - und das nennen sie ihren Standpunkt.

Albert Einstein (1879-1955)

A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
Douglas Adams (1952-2001)

3

Montag, 2. Juni 2008, 15:18

Danke, manchmal sieht man die einfachsten vertipper einfach nicht selbst.

Danke.

4

Montag, 2. Juni 2008, 15:23

Richtig, dafür hat man ja das WSB... :D
Signatur von »LapisInfernalis« Eine Milde Gabe...

Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null - und das nennen sie ihren Standpunkt.

Albert Einstein (1879-1955)

A common mistake people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
Douglas Adams (1952-2001)

5

Freitag, 13. Juni 2008, 09:26

Hi,
noch ein Tipp:
addslashes(htmlspecialchars()) ist hier völlig fehl am Platz.
Damit verfälscht Du die Daten nicht nur, sondern erreichst auch nicht die notwendige Sicherheit, da in MySQL auch noch weitere Zeichen(ketten) kritisch sind.

Du solltest stets die für den jeweiligen Kontext erforderliche Maskierung verwenden:
für MySQL: mysql_real_escape_string()
für PHP, sofern für die weitere Verarbeitung erforderlich: addslashes()
für die HTML-Ausgabe: htmlspecialchars() bzw. bei Problemen mit der Kodierung: htmlentities()

Gruß
Ingo