gamerff
Goto Top

Problem mit php und mysql

Hallo Forum

ich hab ein Problem beim Update eines Datensatzes
$sql = "UPDATE telefonbuch SET name = '$name', vorname = '$vorname', filiale = '$filiale', bereich = '$bereich', telefon = '$telefon', fax = '$fax', email = '$email', bild = '$bild' WHERE nutzerid = '$id'" ;  
$update = mysql_query($sql);

Kann mir jemand sagen wo mein Fehler liegt

Content-ID: 296397

Url: https://administrator.de/contentid/296397

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

114757
114757 16.02.2016 aktualisiert um 15:40:57 Uhr
Goto Top
Biggest failure ever: Kein "escaping" der Variablen ...Say welcome to SQL-Injection face-wink
mysql_real_escape_string
Und das alte MySQL solltest du dringend auf modernere Vatanten wie mysqli oder PDO umstellen!

Gruß jodel32
gamerff
gamerff 16.02.2016 um 15:41:39 Uhr
Goto Top
Funktioniert leider immer noch nicht, hier mal der komplette quellcode

$link = mysql_connect('localhost', 'testnutzer', 'testpasswort')  
    OR die(mysql_error());
    mysql_select_db('telefonbuch', $link);  

$id      = $_POST["id"];  
$name    = $_POST["name"];  
$vorname = $_POST["vorname"];  
$filiale = $_POST["filiale"];  
$bereich = $_POST["bereich"];  
$telefon = $_POST["telefon"];  
$fax     = $_POST["fax"];  
$email   = $_POST["email"];  
$bild    = $_POST["bild"];  

$sql = "UPDATE firma SET name = '$name', vorname = '$vorname', filiale = '$filiale', bereich = '$bereich', telefon = '$telefon', fax = '$fax', email = '$email', bild = '$bild' WHERE nutzerid = '$id'" ;  
mysql_query($sql);
114757
114757 16.02.2016 aktualisiert um 15:50:41 Uhr
Goto Top
Funktioniert leider immer noch nicht, hier mal der komplette quellcode
Weil du die blanken Post-Daten immer noch nicht escapest...Les doch bitte mal den Link face-sad
Und ob deine ID wirklich ein String und keine Nummer ist weis hier leider auch niemand. Was deine Variablen an Daten enthalten auch nicht, und und und. Geschlossen wird die Verbindung auch nicht, also Käse.
gamerff
gamerff 16.02.2016 um 15:54:18 Uhr
Goto Top
die nutzerid is int(11) Auto Increment
114757
114757 16.02.2016 aktualisiert um 16:13:39 Uhr
Goto Top
Zitat von @gamerff:

die nutzerid is int(11) Auto Increment
Dann brauchst du auch keine Hochkommas um die ID, kostet nur Performance.
Schalte das PHP-Errorreporting ein dann weist du was Sache ist und was bei dir falsch läuft.

Ich hoffe du hast das escaping inzwischen umgesetzt! Les einfach mal bei Google nach "SQL Injection"...
nxclass
nxclass 21.04.2016 um 00:37:04 Uhr
Goto Top
Wie schon geschrieben, sowas darfst Du heute nicht mehr auf deinen Webserver loslassen.
$sth = $dbh->prepare('  
UPDATE `telefonbuch` SET `name` = ?, `vorname` = ?, `filiale` = ?, `bereich` = ?, `telefon` = ?, `fax` = ?, `email` = ?, `bild` = ?
WHERE `nutzerid` = ?
');  
$sth->execute( array($name, $vorname, $filiale, $bereich, $telefon, $fax, $email, $bild, $id) );
.. weiterhin solltest du die Backticks ` nicht vergessen, oft sind Feldnamen mit MySQL Funktionen gleich
http://php.net/manual/de/class.pdo.php