wachtwoord veranderen in database

Status
Niet open voor verdere reacties.

Milenko

Gebruiker
Lid geworden
27 aug 2009
Berichten
465
Beste helpmij'ers,

Ik heb een formuliertje gemaakt waarin je je wachtwoord (zou moeten kunnen) veranderen. Helaas werkt dit niet echt, omdat hij bij het uitvoeren van de query blijft hangen. Dit is de code die waarnaar het formulier verwijst:

PHP:
<?php
session_start();
include 'db_connect.php';
if (!$connected)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("db_name", $connected);

$oldpassword=$_POST['oldpassword'];
$newpassword=$_POST['newpassword'];

mysql_query("UPDATE '$tbl_name' SET wachtwoord = '$newpassword' WHERE wachtwoord = '$oldpassword'");

mysql_close($con);
?>

Ik heb al erg veel geprobeerd en kan er maar niet uitkomen. Ook heb ik allerlei verschillende dingen van internet geprobeerd, maar helaas....

Hopelijk weet iemand wat er niet klopt.

Groetjes Milenko
 
Laatst bewerkt:
Als je verwijst naar values dan moet je aanhalingstekens gebruiken. Als je geen aanhalingstekens hebt wordt het beschouwt als een veldnaam en dan crasht de boel.

[sql]
UPDATE tabelnaam
SET veld = 'value'
WHERE veld = 'other value'
[/sql]
 
Ik heb de variabelen al is tussen enkele quotes gezet, maar nog steeds hetzelfde probleem :(
(ik zal het wel even aanpassen, want dat scheelt alweer een fout :P)
 
Probeer;
Code:
mysql_query("UPDATE $tbl_name SET wachtwoord = $newpassword WHERE wachtwoord = $oldpassword");

eens zo;
Code:
mysql_query("UPDATE $tbl_name SET wachtwoord = $newpassword WHERE wachtwoord = '$oldpassword'");

Vaak zijn het van dit soort problemen.. ik kan zo snel even geen grote problemen vinden!

Code:
mysql_query("UPDATE $tbl_name SET wachtwoord = $newpassword WHERE 'wachtwoord' = $oldpassword");
aanhalingstekens kunnen de vervelende zijn!

Ik test mijn query's altijd in Navicat uit.. en ga pas verder de query aanpassen als hij daar werkt ;-)
 
Als je verwijst naar values dan moet je aanhalingstekens gebruiken. Als je geen aanhalingstekens hebt wordt het beschouwt als een veldnaam en dan crasht de boel.

[sql]
UPDATE tabelnaam
SET veld = 'value'
WHERE veld = 'other value'
[/sql]

Ja, dit klopt inderdaad, dit heb ik als voorbeeldje gedaan in mijn post.. die ik was vergeten te verzenden :P

Hoop dat hij er wat mee kan :)
 
Alles wat jullie gereageerd hebben heb ik geprobeerd, maar het werkt nog steeds niet. De pagina blijft hangen op een wit scherm (wat ook logisch is, want hij wordt niet doorgestuurd o.i.d.), maar het wachtwoord wordt ook niet aangepast in mijn database :(
 
Volgens mij moet:
PHP:
mysql_close($con);

dit worden:
PHP:
mysql_close($connected);

maar dat heeft verder niet echt toevoeging voor mijn probleem.
 
Ja die moet je inderdaad aanpassen, want je connectie word ook niet gesloten zo..

ik zal eens even goed kijken of ik je probleem kan vinden.

Probeer eens die
Code:
 mysql_query("UPDATE [B][I][U]$tbl_name[/U][/I][/B] SET wachtwoord = $newpassword WHERE wachtwoord = $oldpassword");
te vervangen met de normale naam van de tabel?
 
Laatst bewerkt:
Heb ik nu gedaan. Maar ook dat werkt helaas niet. :(
 
Maar dit werkt wel:

PHP:
mysql_query("UPDATE members SET wachtwoord = '$newpassword' WHERE wachtwoord = '$oldpassword'");

de enkele quotes moesten nog om de variabelen heen!
 
Laatst bewerkt:
Maar dan vraag ik me nu nog af waarom '$tbl_name' niet werkte, aangezien er in db_connect.php dit staat: $tbl_name="members";
 
Je moet geen quotes om een tabelnaam zetten, hooguit backticks, maar dat is ook beter van niet.

Let er ook op dat je de waardes escaped en dus niet zomaar de tekst die een gebruiker invoert in een database query stopt. (Dit levert anders grote beveiligingsproblemen op)

Daarnaast moet je wachtwoorden ook hashen in de database en niet als plaintext erin zetten.
Een sitebeheerder hoort namelijk helemaal niet te weten welk wachtwoord ik gebruik om in te loggen, daarnaast is het ook veiliger in het geval de database in verkeerde handen valt.
 
Laatst bewerkt:
wachtwoorden hashen moet ik inderdaad nog doen, maar ik ben nog niet heel bekend met php, dus ik wil eerst even kijken hoe alles werkt en wat er precies gebeurt (dus dat ik het wachtwoord ook daadwerkelijk zie veranderen in het woord dat ik intypte en niet in een of andere vage letter/cijfer combinatie)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan