Opdater database problem
HejJeg har fundet et gammelt script frem, der kunne opdatere en brugers oplysninger i et brugersystem, sådan at brugeren var i stand til at rette f.eks. sin email.
Det virkede dengang, men der er noget fuldstændig galt nu :(
Scriptet i sin fulde længde:
"
<?
session_start();
//header("Cache-control: private"); //IE 6 Fix
if(!$_SESSION['brugernavn']){
$msg = "Log ind nedenfor";
header("Location: index.php?msg=".$msg);
exit();
}
require("../billeder/mysql/mysql-funktioner.php");
$posted_brugernavn = $_POST['brugernavn'];
$posted_password = $_POST['password'];
$posted_password2 = $_POST['password2'];
$posted_fornavn = $_POST['fornavn'];
$posted_mellemnavn = $_POST['mellemnavn'];
$posted_efternavn = $_POST['efternavn'];
$posted_email = $_POST['email'];
$posted_klasse = $_POST['klasse'];
$posted_gruppe = $_POST['gruppe'];
$posted_tlfnr = $_POST['tlfnr'];
$posted_andet = $_POST['andet'];
$posted_first_login = $_POST['first_login'];
$posted_brugernavn = stripslashes($posted_brugernavn);
$posted_password = stripslashes($posted_password);
$posted_password2 = stripslashes($posted_password2);
$posted_fornavn = stripslashes($posted_fornavn);
$posted_mellemnavn = stripslashes($posted_mellemnavn);
$posted_efternavn = stripslashes($posted_efternavn);
$posted_email = stripslashes($posted_email);
$posted_klasse = stripslashes($posted_klasse);
$posted_gruppe = stripslashes($posted_gruppe);
$posted_tlfnr = stripslashes($posted_tlfnr);
$posted_andet = stripslashes($posted_andet);
$posted_password = md5($posted_password);
$posted_password2 = md5($posted_password2);
$posted_tlfnr = str_replace(' ', '', $posted_tlfnr);
$denne_bruger = $_SESSION['brugernavn'];
$userid = $_SESSION['userid'];
if(!$posted_fornavn || !$posted_efternavn || !$posted_email || !$posted_klasse || !$posted_gruppe || !$posted_tlfnr){
$msg2 = "Du har ikke udfyldt alle felterne markeret med *!";
header("Location: index.php?vis=ret_data&msg2=".$msg2);
exit();
}
if($posted_password != $posted_password2){
$msg2 = "Dine indtastede passwords var ikke ens - prøv igen.";
header("Location: index.php?vis=ret_data&msg2=".$msg2);
exit();
}
aabn_forbindelse_og_vaelgdb();
$sql = mysql_query("SELECT * FROM brugere WHERE brugernavn='$denne_bruger' AND userid='$userid'");
while($row = mysql_fetch_array($sql)){
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
}
/*switch($val[]){
case "$val[] != $".posted_."val":
$val = $".posted_."val";
break;
}*/
if($posted_brugernavn != $brugernavn){
$brugernavn = $posted_brugernavn;
}
if($posted_password != $password && !empty($posted_password)){
$password = $posted_password;
}
if($posted_fornavn != $fornavn){
$fornavn = $posted_fornavn;
}
if($posted_mellemnavn != $mellemnavn){
$mellemnavn = $posted_mellemnavn;
}
if($posted_efternavn != $efternavn){
$efternavn = $posted_efternavn;
}
if($posted_email != $email){
$email = $posted_email;
}
if($posted_klasse != $klasse){
$klasse = $posted_klasse;
}
if($posted_gruppe != $gruppe){
$gruppe = $posted_gruppe;
}
if($posted_tlfnr != $tlfnr){
$tlfnr = $posted_tlfnr;
}
if($posted_andet != $andet){
$andet = $posted_andet;
}
$sql2 = mysql_query("UPDATE brugere SET brugernavn='$brugernavn', fornavn='$fornavn', mellemnavn='$mellemnavn', efternavn='$efternavn', password='$password', email='$email', klasse='$klasse', gruppe='$gruppe', tlfnr='$tlfnr', andet='$andet', first_login='0' WHERE userid='$userid'");
luk_forbindelse();
if($sql2 && $_SESSION['first_login'] == 1){
$msg2 = "Dine data er blevet opdateret - mange tak for hjælpen!<br \>Du kan nu benytte systemet som du lyster!";
//header("Location: index.php?vis=giv_besked&msg2=".$msg2);
$_SESSION['first_login'] = "0";
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['fornavn'] = $fornavn;
$_SESSION['email'] = $email;
$_SESSION['user_level'] = $user_level;
$_SESSION['userid'] = $userid;
echo $msg2;
exit();
} elseif ($sql2){
$msg2 = "Dine data er blevet opdateret!";
//header("Location: index.php?vis=giv_besked&msg2=".$msg2);
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['fornavn'] = $fornavn;
$_SESSION['email'] = $email;
$_SESSION['user_level'] = $user_level;
$_SESSION['userid'] = $userid;
$_SESSION['first_login'] = $first_login;
echo $msg2;
echo "brugernavn='$brugernavn', fornavn='$fornavn', mellemnavn='$mellemnavn', efternavn='$efternavn', password='$password', email='$email', klasse='$klasse', gruppe='$gruppe', tlfnr='$tlfnr', andet='$andet', first_login='0', userid='$userid'";
exit();
} else {
$msg2 = "Der skete en fejl da databasen skulle opdateres.<br \>Prøv igen."; /* - en admin er blevet underrettet.*/
header("Location: index.php?vis=ret_data&msg2=".$msg2);
exit();
}
?>
"
Som I kan se, har jeg bedt den om at udskrive de variabler den skal opdatere databasen med, og de er korrekte, men databasen bliver simpelthen ikke opdateret! Om jeg begriber hvorfor...
Hvis I kan forstå det må i meget gerne give en hjælpende hånd :)
Med venlig hilsen
Nicolai
