data wil niet updaten

Status
Niet open voor verdere reacties.

Ph0eNiX

Nieuwe gebruiker
Lid geworden
17 sep 2007
Berichten
2
Hallo,
ik heb een probleem met een script dat de user details moet veranderen aan de hand van een formulier. Alles werkt, het script geeft zelfs een goedkeuring dat de query is uitgevoerd. Maar hij doet niks. Hier is de code:
PHP:
<?php 

session_start();

include('config2.php'); 
	$username = $_SESSION['username'];
	$password = $_SESSION['password']; 
	$nusername = $_POST['username'];
	$npassword = $_POST['password'];
	$id = $_REQUEST['id'];

$result = mysql_query("SELECT username AND password FROM painlessdesigns_users WHERE id='$id'");
if(!$result) 
{ 
echo "The username or the password you entered does not exist"; 
}
if($result) {
$sql=mysql_query("UPDATE painlessdesigns_users SET username='$nusername' AND password='$npassword' WHERE id='$id'"); 
		if($sql==1) {

        echo "Page has been successfully changed! Please <a href='login.php'>log in</a> with your new user details ";

    } else {

        echo mysql_error() . "<hr>" . $sqlupdate;

    }

    mysql_close(); 
		}
		
?>

En het formulier
PHP:
<?php
session_start();
if($_SESSION['auth'] == true) {

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

		<form action="accchange.php" method="post">
		Type your new username:  <input type="text" value="<?= $_SESSION['username'] ?>" name="username" /><br />
		Type your new password:  <input type="password" name="password" /><br />
        <input type="hidden" name="id" value="<?= $_GET['id'] ?>" />
		<input type="submit" value="submit" name="submit" />
		</form>
	
		
<?php 
} else {
echo "You're not logged in. Make sure you're logged in.";
}
?>
</body>
</html>

Als iemand hier antwoord op heeft erg bedankt alvast :).
 
Ik snap niet echt waarom je het ID mee laat sturen via de URL en dan ook nog in een HIDDEN zet:(

Je gebruikt het bij het verwerken voor een rare query, wat wil je precies hiermee doen?
PHP:
mysql_query("SELECT username AND password FROM painlessdesigns_users WHERE id='$id'");
Controleren of de gebruiker bestaat? Dat moet als het goed is altijd true zijn, anders had je niet kunnen inloggen lijkt mij...

Daarna ga je nog weer een rare manier toepassen voor de UPDATE query.
PHP:
$sql=mysql_query("UPDATE painlessdesigns_users SET username='$nusername' AND password='$npassword' WHERE id='$id'");
if($sql==1) {
  echo "Page has been successfully changed! Please <a href='login.php'>log in</a> with your new user details "; 
} else { 
  echo mysql_error() . "<hr>" . $sqlupdate; 
}
Waar haal je die $sqlupdate vandaan?

Je kunt het bovenste gedeelte waarschijnlijk makkelijker zo doen:
PHP:
$sql = mysql_query("UPDATE painlessdesigns_users SET username='$nusername' AND password='$npassword' WHERE id='$id'") or die(mysql_error());
echo "Page has been successfully changed! Please <a href='login.php'>log in</a> with your new user details ";
 
ik raad je ook aan de volgende code te gebruiken:

Code:
function cleanVariable($var) {
     $var = str_replace("'","",$var);
     $var = str_replace('"',"",$var);
     $var = str_replace("\\","",$var);
     $var = str_replace("--","",$var);
     $var = str_replace";","",$var);

     return $var;
}

deze code zal je inputs beschermen tegen SQL injectie, anders is je query code zeer oveilig
 
Bedankt voor de reply's :)

Ik heb de code veranderd dit is wat ik nu heb:
PHP:
<?php 

session_start();

include('config2.php'); 
	$username = $_SESSION['username'];
	$password = $_SESSION['password']; 
	$nusername = $_POST['username'];
	$npassword = $_POST['password'];
	$id = $_REQUEST['id'];

$sql = mysql_query("UPDATE painlessdesigns_users SET username='$nusername' AND password='$npassword' WHERE id='$id'") or die(mysql_error());
echo "Page has been successfully changed! Please <a href='login.php'>log in</a> with your new user details "; 

    mysql_close(); 
		
		
?>

Maar het werkt nog steeds niet, het geeft wel gewoon als antwoord dat de data veranderd is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan