2 forms includen, meerdere errors

Gestart doorVandijkdesign11 reacties36 weergaven

12 berichten · pagina 1 van 1

Vandijkdesign

Lid · Topicstarter

Berichten
753
Reputatie
0
Punten
0,06
Lid sinds
Laatst gezien
Hoi allen,

Ik ben bezig met een persoonlijk CMS, waarbij ik al mijn sportmomenten bijhoudt.
Nu zit ik met een probleem op mijn "Wijzig instellingen" pagina.

Op deze pagina include ik 2 forms, dat ik op de volgende manier doe:

Codeblok (wijziginstellingen.php):

1
2

include_once(nieuw-wachtwoord.php) ?>
include_once(nieuw-email.php) ?>

Nu is het probleem: als ik alleen mijn email wil wijzigen en ik druk op bijwerken, krijg ik ik melding dat het gelukt is, maar omdat ik ook de form "nieuw-wachtwoord.php" include, krijg ik hier een melding dat het niet gelukt is omdat ik daar niets ingevuld heb.

Mijn vraag: is het mogelijk dat als ik op de bijwerk button van mijn "nieuw-email.php" form klik, ik alleen die meldingen zie, en als ik op de bijwerk button van mijn "nieuw-wachtwoord.php" form klik ik ook alleen die meldingen zie?

Mochten jullie de php files nodig hebben, vraag gerust.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Zijn het twee verschillende formulieren voor dus twee verschillende acties?
Waarom includeer je ze beiden?
0
Vandijkdesign

Lid · Topicstarter

Berichten
753
Reputatie
0
Punten
0,06
Lid sinds
Laatst gezien
Aarclay schreef:
Zijn het twee verschillende formulieren voor dus twee verschillende acties?
Waarom includeer je ze beiden?
De ene is voor het wijzigen van het wachtwoord en de andere voor het wijzigen van je emailadres.
Het leek mij overzichtelijker om voor deze 2 acties een aparte .php pagina aan te maken.
Maar omdat ik 1 pagina heb waar je álle instellingen kunt veranderen, include ik deze 2 acties/formulieren in die betreffende pagina.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Laat eens wat *relevante* code van je forumier zien, met je
0
Vandijkdesign

Lid · Topicstarter

Berichten
753
Reputatie
0
Punten
0,06
Lid sinds
Laatst gezien
Aarclay schreef:
Laat eens wat *relevante* code van je forumier zien, met je
(nieuw-wachtwoord.php)
Codeblok (nieuw-wachtwoord.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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137


/*
Below is a very simple example of how to process a login request.
Some simple validation (ideally more is needed).
*/

//Forms posted

if(!empty($_POST))
{

$errors = array();
$password = $_POST["password"];
$password_new = $_POST["passwordc"];
$password_confirm = $_POST["passwordcheck"];

//Perform some validation
//Feel free to edit / change as required


if(trim($password) == "")
{

$errors[] = lang("ACCOUNT_SPECIFY_PASSWORD");
}

else if(trim($password_new) == "")
{

$errors[] = lang("ACCOUNT_SPECIFY_NEW_PASSWORD");
}

else if(minMaxRange(8,50,$password_new))
{

$errors[] = lang("ACCOUNT_NEW_PASSWORD_LENGTH",array(8,50));
}

else if($password_new != $password_confirm)
{

$errors[] = lang("ACCOUNT_PASS_MISMATCH");
}


//End data validation
if(count($errors) == 0)
{

//Confirm the hashs match before updating a users password
$entered_pass = generateHash($password,$loggedInUser->hash_pw);

//Also prevent updating if someone attempts to update with the same password
$entered_pass_new = generateHash($password_new,$loggedInUser->hash_pw);

if($entered_pass != $loggedInUser->hash_pw)
{

//No match
$errors[] = lang("ACCOUNT_PASSWORD_INVALID");
}

else if($entered_pass_new == $loggedInUser->hash_pw)
{

//Dont update, this fool is trying to update with the same password Àƒ?À‚¬Àƒ?À‚¬
$errors[] = lang("NOTHING_TO_UPDATE");
}

else
{
//This function will create the new hash and update the hash_pw property.
$loggedInUser->updatePassword($password_new);
}
}
}

?>
  1. Dashboard
  2. Wijzig gegevens

Wijzig gegevens


if(!empty($_POST))
{

if(count($errors) > 0)
{

?>
errorBlock($errors); ?>
} else { ?>

echo lang("ACCOUNT_DETAILS_UPDATED"); ?>

} }?>

Wachtwoord veranderen


(nieuw-email.php)
Codeblok (nieuw-email.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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86


/*
Below is a very simple example of how to process a login request.
Some simple validation (ideally more is needed).
*/

//Forms posted

if(!empty($_POST))
{

$errors = array();
$email = $_POST["email"];

//Perform some validation
//Feel free to edit / change as required


if(trim($email) == "")
{

$errors[] = lang("ACCOUNT_SPECIFY_EMAIL");
}

else if(!isValidEmail($email))
{

$errors[] = lang("ACCOUNT_INVALID_EMAIL");
}

else if($email == $loggedInUser->email)
{

$errors[] = lang("NOTHING_TO_UPDATE");
}

else if(emailExists($email))
{

$errors[] = lang("ACCOUNT_EMAIL_TAKEN");
}


//End data validation
if(count($errors) == 0)
{

$loggedInUser->updateEmail($email);
}
}

?>

if(!empty($_POST))
{

if(count($errors) > 0)
{

?>
errorBlock($errors); ?>

} else { ?>

echo lang("ACCOUNT_DETAILS_UPDATED"); ?>

} }?>

Emailadres wijzigen

0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Niet practisch dat je beide formulieren naar hetzelfde script laat wijzen vanuit: wijziginstellingen.php

Waarom maak je niet gewoon twee losse paginas van? Toch een stuk duidelijker en makkelijker?
Anders kan je e.v.t met $_GET werken.

wijziginstellingen.php?action=nieuw-email
wijziginstellingen.php?action=nieuw-wachtwoord
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Of isset gebruiken. Want nu post je naar 2 paginas met e zelfde values, logisch dat er dan bij 1 een error komt
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Of isset gebruiken. Want nu post je naar 2 paginas met e zelfde values, logisch dat er dan bij 1 een error komt
Kan ook,ik neem aan dat je daarop op de name-attribuut van de verschillende submits doelt?

Onthoud wel dat een name aangepast kan worden, en dat het voor errors kan zorgen als iemand er mee speelt, wat weer kan zorgen voor een veiligheidsprobleem.

AJAX is overigens nog toffer yummie
0
Vandijkdesign

Lid · Topicstarter

Berichten
753
Reputatie
0
Punten
0,06
Lid sinds
Laatst gezien
Hoe kan ik $_GET dan het beste toepassen?
Ik ben nog niet zo ver met mijn PHP-kennis
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]action[/COLOR][COLOR= #007700]] ==[/COLOR][COLOR= #DD0000]"nieuw-email"[/COLOR][COLOR= #007700]) {[/COLOR]
  [COLOR= #FF8000]// nieuwe-mail afhandeling[/COLOR]
[COLOR= #007700]}[/COLOR] [URL="http://www.php.net/elseif"]elseif[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]action[/COLOR][COLOR= #007700]] ==[/COLOR][COLOR= #DD0000]"nieuw-wachtwoord"[/COLOR][COLOR= #007700]) {[/COLOR]
 [COLOR= #FF8000]// nieuwe-wachtwoord afhandeling [/COLOR]
[COLOR= #007700]}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
 [COLOR= #FF8000]// onbekende actie[/COLOR]
[COLOR= #007700]}[/COLOR]
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Maar wel even controleren of de get wel gezet is (isset)
0
Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
of je verandert de $_POST naar $_POST[nieuw_email] or something like that.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren