Mysql Datenbankproblem

DerSau

Grünschnabel
Hallo,

Habe ein Problem bei der Übergabe von Daten in meiner Datenbank!
Hier erstmal der Quelltext!

session_start();

global $regeln, $action;

if(!session_is_registered('username') || $_SESSION['ip'] == "") {

include ("../include/config.inc.php");
include ("../include/specials.inc.php");
$newip = getenv("REMOTE_ADDR");

if ($action == "upload" && substr($bild_name,-4) == ".jpg") {

$picturesize = $config["voting_size"];
$upload_pfad = $config["voting_pfad"];

$chiff=md5($username);
$ext=substr($bild_name,-4);

if(($bild_size < $picturesize) AND $bild_size != 0) {
$datum = time();
$picturename = trim($chiff) . trim($ext);
copy($bild,$upload_pfad.$chiff.$ext);
mysql_query ("UPDATE $usertable SET chiff = '$picturename', date = '$datum', ipadresse = '$newip', punkte = '0', anz_vote = '0' WHERE username = '$username'");
mysql_query ("INSERT INTO $votingtable (chiff,punkte,anz_vote,datum) VALUES ('$picturename','0','0','$datum')");


Das Problem liegt hier:
mysql_query ("update $usertable SET chiff = '$picturename', date = '$datum', ipadresse = '$newip', punkte = '0', anz_vote = '0' WHERE username = '$username'");

Wenn ich die WHERE- Anweisung weg lasse funktioniert es wenn ich sie einbinde dann nicht mehr!

Wo liegt der fehler?
 
Hi!

Wenn Du die WHERE-Sektion wegläßt und es funktioniert, dann liegt der Fehler genau dort!
Was passiert denn wenn Du WHERE drinläßt? Kommt eine Fehlermeldung? Oder passiert einfach gar nichts?

Wenn gar nichts passiert, dann exisitiert wahrscheinlich der angegebene username nicht. Laß Dir doch mal die zusammengebaute SQL-Anweisung ausgeben, z.B. so:

Code:
$sql = "update $usertable SET chiff = '$picturename', date = '$datum', ipadresse = '$newip', punkte = '0', anz_vote = '0' WHERE username = '$username'";
echo "$sql";
Dann schau Dir mal an was da drin steht und ob der username existiert in Deiner Tabelle...

MfG
..::SD::..
 
Datenbankproblem

Das Skript speichert einfach nicht den username in der Verable $username!
Das komische ist auch, das dieses Skript auf meinem localen Server läuft!
 
Alle Daten, die an das Script übergeben werden, wie zum Beispiel $username müssen so verwendet werden:
PHP:
$_REQUEST['username']
Auf deinem Webserver ist wahrscheinlich register_globals = off eingestellt (was auch richtig ist), wodurch die Übergabevariablen im Script nur über die Arrays $_POST, $_GET und $_REQUEST erreichbar sind.

--> http://de.php.net/register_globals

snuu
 
Datenbankproblem

Kann ich das nicht mit folgendem skript nicht übergehen?
reg_globals steht auf on!


<?


// Simuliert, dass die php Variable register_globals=ON, obwohl diese OFF geschaltet ist
// ohne die GLOBALEN Variablen zu überschreiben


if (!ini_get("register_globals")){
foreach ($_REQUEST as $x=>$v){
if (!isset($GLOBALS[$x])){
${$x}=$v;
}
}
}
?>
 
Zuletzt bearbeitet:
Hast Du es denn mal so probiert wie @snuu es gesagt hat? Auf welchem Server ist denn reg_globals auf on? Lokal oder auf Deinem Remoteserver?
Füg einfach mal Die Zeile von @snuu unter die Zeile "global......." ein und probier es dann mal auf Deinem Remoteserver, das sollte funktionieren.....

MfG
..::SD::..
 
Zurück