wachtwoord reset vraagt welk account ?
hallo ik ben bezig met het ontwikkelen van een website voor het bijhouden van een kasboek het schiet al lekker op maar ik probeer op het moment een script toe te passen dat er voor zorgt dat de gebruikers hun wachtwoord kunnen wijzigen dit script werkt overegens prima maar op het moment dat ik op submit klik in mijn formulier krijg ik een popup venster met de vraag voor welk account ik mijn wachtwoord wil wijzigen ik gebruik een session en na aanleiding van het unieke id laat ik mijn wachtwoord wijzigen maar de server lijkt te denken dat ik me root wachtwoord van mysql wil aanpassen heb al meerdere pagina's bekeken of ik een oplossing kan vinden om deze popup niet in beeld te krijgen maar tot nu toe nog niks kunnen vinden ik zou graag een tip willen hoe dit op te lossen zodat ik verder kan met mijn website
if ( ! empty( $_POST ) ) {
// Connect to MySQL
$mysqli = new mysqli( 'localhost', 'root', 'pass', 'db_name' );
// Check our connection
if ( $mysqli->connect_error ) {
die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}
//try to build check to see if password's match
// Insert our data
$sql = "UPDATE gebruikers SET password='{$mysqli->real_escape_string($_POST['password'])}' WHERE id='" . $_SESSION["id"] . "'";
$insert = $mysqli->query($sql);
// Print response from MySQL
if ( $insert ) {
echo "Success! Row ID: {$mysqli->insert_id}";
} else {
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
// Close our connection
$mysqli->close(); // Only process the form if $_POST isn't empty
$sql = "UPDATE gebruikers SET user_pass='{$mysqli->real_escape_string($_POST['user_pass'])}' WHERE id='" . $_SESSION["id"] . "'";
krijg nog steeds het zelfde scherm ik heb me kolom naam veranderd naar "user_pass" en im mijn script
Bedoel je dat je ergens een script hebt gevonden dat iets in die richting leek te doen, en dat je dat rechtstreeks in jouw code geduwd hebt?
Op zich is wachtwoord-vergeten een redelijk simpel proces dat je het best zelf kunt maken.
De kans dat jouw database structuur precies aansluit bij die van het gevonden script is namelijk klein.
stappen:
1) vraag account naam / username van de gebruiker
2) registreer in je database dat user X zijn pass wil resetten door bijvoorbeeld het huidige tijdstip in de usertabel te zetten. Maak ook direct een unieke code aan die je ook in die tabel zet. Bijvoorbeeld "ksjflksajdflkadjs"
3) stuur een link met die code naar het mailadres uit de usertabel
4) als de gebruiker binnen 60 minuten die code gebruikt:
- verwijder de geheime code in je tabel
- toon gebruiker een 2tal velden waarin hij een nieuw password mag opslaan.
Toevoeging op 21/06/2016 12:17:07:
"reset" zette me op het been dat het om een ww-vergeten script ging.
Bij nadere lezing kan het ook zijn dat je gewoon het password wilt aanpassen van een gebruiker:
in dat geval heb je een form nodig met 3 velden
huidige password
nieuw password
nieuw password nogmaals.
Je checkt of huidige-password voor de ingelogde user klopt
dan of de 2 nieuwe passwords gelijk zijn.
Zo ja, dan hash je het nieuwe password en sla je dat op in de tabel users.
--
maar komt deze popup wel uit het script.
Is het niet zo dat jouw browser voor een aantal accounts het password onthouden heeft voor deze site
Je browser herkent mogelijk dat je een verander pw. script uitvoert en vraagt vervolgens of je zijn lijstje ook wilt aanpassen. Zo ja, voor welk account dan.
Als jij een tool als phpmyadmin gebruikt, dan kan het zijn dat die in mijnsite.nl/phpmyadmin staat en dat je browser daarom de mysql users verbindt met gebruikers van de site.
en "Ivo P" ik gebruik navicat premium om mijn database te beheren vind ik persoonlijk prettiger werken
bedant voor de hulp bedankt voor de tip "- Ariën -" ik gebruik voornamelijk firefox als webbrowser en als ik mijn script in google chrome uitvoer krijg ik het venster niet dan maar verder knutselen in chrome hopen dat ik niet nog meer van dit soort problemen krijg
update : heb de opgeslagen wachtwoorden verwijdert en krijg nu het dialoogvenster niet meer ik heb mijn eigen xampp server draaien omdat ik eerst wil dat alles werkt naar behoren. heb het ook nog voordat ik hier kwam aan een kennis van mij gevraagd het blijkt nu dat ik in mijn opgeslagen wachtwoorden van firefox op "127.0.0.1" 2 gebruikers staan genaamd "root" en "raymond" had op mijn vorige laptop ook xampp draaien en waarschijnlijk het daar aangemaakt en overgenomen naar deze browser dus ga ik deze verwijderen en nog een keer testen hopelijk werkt dit.
Kun je een deel van het script posten dat het wachtwoord wijzigt?
if ( ! empty( $_POST ) ) {
// Connect to MySQL
$mysqli = new mysqli( 'localhost', 'root', 'pass', 'db_name' );
// Check our connection
if ( $mysqli->connect_error ) {
die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}
//try to build check to see if password's match
// Insert our data
$sql = "UPDATE gebruikers SET password='{$mysqli->real_escape_string($_POST['password'])}' WHERE id='" . $_SESSION["id"] . "'";
$insert = $mysqli->query($sql);
// Print response from MySQL
if ( $insert ) {
echo "Success! Row ID: {$mysqli->insert_id}";
} else {
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
// Close our connection
$mysqli->close();
gereserveerd woord. Je kunt dit probleem omzeilen door de kolomnaam `password` in de query $sql tussen backticks te plaatsen — of, beter nog, door de kolom een andere naam te geven.
In MySQL is PASSWORD een $sql = "UPDATE gebruikers SET user_pass='{$mysqli->real_escape_string($_POST['user_pass'])}' WHERE id='" . $_SESSION["id"] . "'";
krijg nog steeds het zelfde scherm
Raymond van den Hoek op 21/06/2016 10:23:25:
ik probeer op het moment een script toe te passen dat er voor zorgt dat de gebruikers hun wachtwoord kunnen wijzigen
Bedoel je dat je ergens een script hebt gevonden dat iets in die richting leek te doen, en dat je dat rechtstreeks in jouw code geduwd hebt?
Op zich is wachtwoord-vergeten een redelijk simpel proces dat je het best zelf kunt maken.
De kans dat jouw database structuur precies aansluit bij die van het gevonden script is namelijk klein.
stappen:
1) vraag account naam / username van de gebruiker
2) registreer in je database dat user X zijn pass wil resetten door bijvoorbeeld het huidige tijdstip in de usertabel te zetten. Maak ook direct een unieke code aan die je ook in die tabel zet. Bijvoorbeeld "ksjflksajdflkadjs"
3) stuur een link met die code naar het mailadres uit de usertabel
4) als de gebruiker binnen 60 minuten die code gebruikt:
- verwijder de geheime code in je tabel
- toon gebruiker een 2tal velden waarin hij een nieuw password mag opslaan.
Toevoeging op 21/06/2016 12:17:07:
"reset" zette me op het been dat het om een ww-vergeten script ging.
Bij nadere lezing kan het ook zijn dat je gewoon het password wilt aanpassen van een gebruiker:
in dat geval heb je een form nodig met 3 velden
huidige password
nieuw password
nieuw password nogmaals.
Je checkt of huidige-password voor de ingelogde user klopt
dan of de 2 nieuwe passwords gelijk zijn.
Zo ja, dan hash je het nieuwe password en sla je dat op in de tabel users.
--
maar komt deze popup wel uit het script.
Is het niet zo dat jouw browser voor een aantal accounts het password onthouden heeft voor deze site
Je browser herkent mogelijk dat je een verander pw. script uitvoert en vraagt vervolgens of je zijn lijstje ook wilt aanpassen. Zo ja, voor welk account dan.
Als jij een tool als phpmyadmin gebruikt, dan kan het zijn dat die in mijnsite.nl/phpmyadmin staat en dat je browser daarom de mysql users verbindt met gebruikers van de site.
Ik durf te wedden dat deze dialoog inderdaad van de autocomplete van je browser is, die aan de hand van je username je wachtwoord automatisch invult. Dit staan dan los van je server.
en "Ivo P" ik gebruik navicat premium om mijn database te beheren vind ik persoonlijk prettiger werken
bedant voor de hulp
Het is dan ook een functie van Firefox, waardoor je dit niet in Chrome krijgt. Je past alleen onthouden wachtwoord aan voor je browser, en niet het daadwerkelijke wachtwoord op de server.
update : heb de opgeslagen wachtwoorden verwijdert en krijg nu het dialoogvenster niet meer
Gewijzigd op 21/06/2016 13:27:38 door Raymond van den Hoek