echo $user_data['password'] werkt maar die met checken werkt niet.
Ik ben bezig met een change_password script.
als ik mijn variable $user_data['password'] echo werkt ie laat ie zien wat er in mijn database staat.
Maar als ik hem check dat zegt ie undifined variable password.
changepassword.php
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if (md5($_POST['password']) != $user_data['password']) {
$errors[] = 'The password you filled in as old password is incorrect.';
}
echo $user_data['password'];
//geeft de string wat er in mijn database staat.
$errors[] = 'The password you filled in as old password is incorrect.';
}
echo $user_data['password'];
//geeft de string wat er in mijn database staat.
error_message: Notice: Undefined index: password in C:\xampp\htdocs\ProjectTut\changepassword.php on line 16
en lijn 16 is: if (md5($_POST['password']) != $user_data['password']) {
Dus wat kan het nou zijn dat ie niet wil werken?
Gewijzigd op 22/06/2014 00:34:11 door Mathieu Posthumus
En dan nog iets... Waarom gebruik je het onbetrouwbare md5?
Bcrypt() is een veel veiliger alternatief.
Waarom denk je dat die error gaat over de $user_data array en niet over de $_POST array?
Ja, ook dat kan nog.
- Aar - op 22/06/2014 00:39:30:
Ik gok dat je het veld password niet ophaalt in je SELECT? Kijk eens met print_r() naar je $user-data array anders.
En dan nog iets... Waarom gebruik je het onbetrouwbare md5?
Bcrypt() is een veel veiliger alternatief.
En dan nog iets... Waarom gebruik je het onbetrouwbare md5?
Bcrypt() is een veel veiliger alternatief.
Het lijkt mij dat ie hem wel ophaald want met het uitprinten werkt het wel gewoon.
En ik heb md5 even snel geprobeerd want ik kreeg voor het inloggen wat problemen maar da ga ik later achterna
Toevoeging op 22/06/2014 10:12:55:
Erwin H op 22/06/2014 07:10:50:
Waarom denk je dat die error gaat over de $user_data array en niet over de $_POST array?
Srry ik heb even de naam veranderd en hij veranderd in de error mee dus daar ligt het aan. Maar wat kan ik er tegen doen?
Toevoeging op 22/06/2014 10:33:58:
Mijn hele check list is dit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST) == false) {
if (empty($_POST['current_password']) == true) {
$errors[] = 'Fill in your current password';
}
if (empty($_POST['new_password']) == true) {
$errors[] = 'Fill in your new password';
}
if (empty($_POST['new_password_again'])) {
$errors[] = 'Fill in your second new password';
}
if (md5($_POST['new_password']) != $user_data['password']) {
$errors[] = 'The password you filled in is incorrect.';
}
if ($_POST['new_password'] < 6 || $_POST['new_password'] > 30) {
$errors[] = 'The new password is to short or to long. The minimum and maximum lenth is between 6 and 30';
}
if ($_POST['new_password'] != $_POST['new_password_again']) {
$errors[] = 'The two password are not equal.';
}
}
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST) == false) {
if (empty($_POST['current_password']) == true) {
$errors[] = 'Fill in your current password';
}
if (empty($_POST['new_password']) == true) {
$errors[] = 'Fill in your new password';
}
if (empty($_POST['new_password_again'])) {
$errors[] = 'Fill in your second new password';
}
if (md5($_POST['new_password']) != $user_data['password']) {
$errors[] = 'The password you filled in is incorrect.';
}
if ($_POST['new_password'] < 6 || $_POST['new_password'] > 30) {
$errors[] = 'The new password is to short or to long. The minimum and maximum lenth is between 6 and 30';
}
if ($_POST['new_password'] != $_POST['new_password_again']) {
$errors[] = 'The two password are not equal.';
}
}
}
?>
Gewijzigd op 22/06/2014 10:37:33 door Mathieu Posthumus
neer.
Zijn die dan inderdaad hetzelfde (wat jij vermoedt)?
geeft ie dus de error aan van undifined.
Toevoeging op 22/06/2014 10:43:11:
Obelix en Idefix op 22/06/2014 10:34:15:
Hij geeft wel hetzelfde
Gewijzigd op 22/06/2014 10:44:19 door Mathieu Posthumus
Quote alleen datgeen wat nodig is om je antwoord te verduidelijken of als er bv. een lange reactie is waarop je in delen wilt reageren.
Je hebt mijn code in je 1e reactie hierboven veranderd naar new_password. Dat stond niet in jouw openingspost en mijn reactie. Waar komt dat new_password vandaan?
Je krijgt op mijn code geen foutmelding?! Of krijg je daar die undefined op?
Als dat laatste het geval is, betekent dit dus simpelweg dat je de waarde niet bestaat en je code fout is.
edit: Je had in je vorige reactie eerst staan dat ze _niet_ hetzelfde waren.
Nu heb je het gewijzigd naar wel. Wat is het nou?
Je hebt je formulier ook gewijzigd, met de juiste veldnamen????
Gewijzigd op 22/06/2014 10:50:09 door Obelix Idefix
Ik heb het veranderd naar new_password omdat ik dan kon kijken of het wel die variable was.
undifined krijg ik nogsteeds.
ik had het dus veranderd omdat ik toen de verkeerde variable had gebruikt maar daarna de goeie.
en ja ik heb ze met de goeie veld namen weer gewijzigd.
Toevoeging op 22/06/2014 11:03:10:
Srry Obelix,
Stom dit van me..
ik had in mijn formulier wel een fout. ik had dus new_passowrd geschreven in de plaats van new_password
Toevoeging op 22/06/2014 11:06:28:
Wat ik nu wel heb is dat ie de hele tijd deze error meegeeft.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if ($_POST['new_password'] < 6 || $_POST['new_password'] > 30) {
$errors[] = 'The new password is to short or to long. The minimum and maximum lenth is between 6 and 30';
}
?>
if ($_POST['new_password'] < 6 || $_POST['new_password'] > 30) {
$errors[] = 'The new password is to short or to long. The minimum and maximum lenth is between 6 and 30';
}
?>
terwijl ik wel meer dan 6 chars en minder dan 30 chars heb ingevuld
Gewijzigd op 22/06/2014 11:07:45 door Mathieu Posthumus
Gewijzigd op 22/06/2014 11:09:01 door - Ariën -
Toppers jullie echtwaar!!!