echo $user_data['password'] werkt maar die met checken werkt niet.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mathieu Posthumus

Mathieu Posthumus

22/06/2014 00:33:34
Quote Anchor link
Hey mensen.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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.


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
 
PHP hulp

PHP hulp

05/11/2024 07:55:27
 
- Ariën  -
Beheerder

- Ariën -

22/06/2014 00:39:30
Quote Anchor link
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.
 
Erwin H

Erwin H

22/06/2014 07:10:50
Quote Anchor link
Waarom denk je dat die error gaat over de $user_data array en niet over de $_POST array?
 
- Ariën  -
Beheerder

- Ariën -

22/06/2014 09:54:04
Quote Anchor link
Ja, ook dat kan nog.
 
Mathieu Posthumus

Mathieu Posthumus

22/06/2014 10:11:02
Quote Anchor link
- 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.


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)
PHP script in nieuw venster Selecteer het PHP script
1
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.';
        }
    }
}

?>
Gewijzigd op 22/06/2014 10:37:33 door Mathieu Posthumus
 
Obelix Idefix

Obelix Idefix

22/06/2014 10:34:15
Quote Anchor link
Voeg eens regels tussen op regel 15 en zet daar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo md5($_POST['password']).'<br>';
echo $user_data['password'];
?>

neer.
Zijn die dan inderdaad hetzelfde (wat jij vermoedt)?
 
Mathieu Posthumus

Mathieu Posthumus

22/06/2014 10:36:59
Quote Anchor link
Obelix bij

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo md5($_POST['new_password']).'<br>';


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:
Voeg eens regels tussen op regel 15 en zet daar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo md5($_POST['password']).'<br>';
echo $user_data['password'];
?>

neer.
Zijn die dan inderdaad hetzelfde (wat jij vermoedt)?


Hij geeft wel hetzelfde
Gewijzigd op 22/06/2014 10:44:19 door Mathieu Posthumus
 
Obelix Idefix

Obelix Idefix

22/06/2014 10:47:44
Quote Anchor link
Stop eens met al dat quoten. Lijkt wel een virus; zoveel mensen doen dat.
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
 
Mathieu Posthumus

Mathieu Posthumus

22/06/2014 10:53:38
Quote Anchor link
Obelix,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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';
}

?>


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
 
- Ariën  -
Beheerder

- Ariën -

22/06/2014 11:08:42
Quote Anchor link
Tellen van karakters doe je met strlen()
Gewijzigd op 22/06/2014 11:09:01 door - Ariën -
 
Mathieu Posthumus

Mathieu Posthumus

22/06/2014 11:09:58
Quote Anchor link
Aar ben ik het weer vergeten. dankje :)
Toppers jullie echtwaar!!!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.