inlog met .txt bestand
Pagina: « vorige 1 2 3 ... 5 6 7
je hoeft toch geen array aan te maken hiervoor?
Heb je andere sugestie dan?
- Aar - op 04/10/2011 23:20:36:
je hoeft toch geen array aan te maken hiervoor?
En je doet dat ook nog op de verkeerde plaats want daar weet je nog helemaal niet of er wel gePOST is. Verder weer het onlogische dat je iets aanmaakt en dan kijkt of het er wel is. Tuurlijk is het er want je maakt het net aan.
Gewijzigd op 04/10/2011 23:30:19 door - SanThe -
Je kunt alleen maar een bestand uitlezen. De wachtwoorden worden niet gecodeerd of dergelijke, dat is een zorg voor later, denk ik.
Ik heb even vlug iets gemaakt. Ik ben pas bezig met PHP, dus schiet me niet af. Mijn Engels is ook niet zo goed (ik begrijp alles, maar schrijven...)
Dus hier gaan we dan:
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
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
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
<?php
// If a persons click the submit button:
if(isset($_POST['submit'])) {
// Get the content of that file:
$content = file_get_contents('gebruikers.txt');
// Seperate the user and the password (suap = seperate user and password):
$suap = explode('_', $content);
// Normal variables:
$error = '';
$username = trim($_POST['username']);
$password = trim($_POST['password']);
// Check the username:
if(strlen($username) < 5) {
$error .= 'Your username need at least 5 charachters.'; }
if(strlen($password) > 20) {
$error .= 'Your username has too much charachters.'; }
// Check the password:
if((preg_match("/^.*(?=.{5,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", trim($_POST['password'])) === 0)) {
$error .= 'Your password need caps, small letter, numbers and at least 5 charachters.'; }
if(strlen($password) > 20) {
$error .= 'Your password is too long.'; }
// If there aren't any errors:
if($error == '') {
// Check if the password and username is correct:
if(($suap[0] == $username) && ($suap[1] == $password)) {
echo 'You are now logged in!'; /*** Do something **/ }
else {
$error .= 'Your password or username isn\'t correct.'; } }
// If there are errors:
else {
/*** Do nothing ***/ } }
// If nobody pushed the submit button:
else {
$error = '';
/*** Do nothing ***/ }
?>
<?php echo $error; ?>
<form action="" method="POST">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="login" name="submit" /></td>
</tr>
</table>
</form>
// If a persons click the submit button:
if(isset($_POST['submit'])) {
// Get the content of that file:
$content = file_get_contents('gebruikers.txt');
// Seperate the user and the password (suap = seperate user and password):
$suap = explode('_', $content);
// Normal variables:
$error = '';
$username = trim($_POST['username']);
$password = trim($_POST['password']);
// Check the username:
if(strlen($username) < 5) {
$error .= 'Your username need at least 5 charachters.'; }
if(strlen($password) > 20) {
$error .= 'Your username has too much charachters.'; }
// Check the password:
if((preg_match("/^.*(?=.{5,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", trim($_POST['password'])) === 0)) {
$error .= 'Your password need caps, small letter, numbers and at least 5 charachters.'; }
if(strlen($password) > 20) {
$error .= 'Your password is too long.'; }
// If there aren't any errors:
if($error == '') {
// Check if the password and username is correct:
if(($suap[0] == $username) && ($suap[1] == $password)) {
echo 'You are now logged in!'; /*** Do something **/ }
else {
$error .= 'Your password or username isn\'t correct.'; } }
// If there are errors:
else {
/*** Do nothing ***/ } }
// If nobody pushed the submit button:
else {
$error = '';
/*** Do nothing ***/ }
?>
<?php echo $error; ?>
<form action="" method="POST">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="login" name="submit" /></td>
</tr>
</table>
</form>
In het gebruikers.txt bestandje:
Username: Declerck
Password: Hallo123
Met deze code kun je wel maar een regel controleren en je kunt ook niet schrijven!
Een database is veel gemakkelijker, efficiënter!
@aaron ik vroeg niet om een kant en klare code dus hier ga ik niet op in.
nogmaals, ik wil username en password tegelijk controleren of ze zijn ingevuld, hoe doe ik dit?
Je hoeft aarons script ook niet te kopiëren en plakken, maar je kan wel kijken wat hij doet, dan zie je dat hij gebruikersnaam en wachtwoord beide controleert.
Jerry php op 05/10/2011 10:15:46:
@victor bedankt.
@aaron ik vroeg niet om een kant en klare code dus hier ga ik niet op in.
nogmaals, ik wil username en password tegelijk controleren of ze zijn ingevuld, hoe doe ik dit?
@aaron ik vroeg niet om een kant en klare code dus hier ga ik niet op in.
nogmaals, ik wil username en password tegelijk controleren of ze zijn ingevuld, hoe doe ik dit?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
// Check if the password and username is correct:
if(($suap[0] == $username) && ($suap[1] == $password)) {
echo 'You are now logged in!'; /*** Do something **/ }
else {
$error .= 'Your password or username isn\'t correct.'; } }
if(($suap[0] == $username) && ($suap[1] == $password)) {
echo 'You are now logged in!'; /*** Do something **/ }
else {
$error .= 'Your password or username isn\'t correct.'; } }
De == en && operator dus. Met een isset() combinatie kan je dan kijken of ze zijn ingevuld.
Gewijzigd op 05/10/2011 11:31:52 door - Ariën -
Maar als mijn txt bestand dit is:
username:password
username:password
username:password
username:password
(met uiteraard een username en password ;) )
dan is de 2e username toch $suap[3]??
krijg nu al username:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$file = file_get_contents('users.txt');
$los = explode(":", $file);
print_r ($los[0]);
?>
$file = file_get_contents('users.txt');
$los = explode(":", $file);
print_r ($los[0]);
?>
dan krijg ik: jerry.
maar één keer, terwijl er al 3 jerry's in users.txt staat
Gewijzigd op 05/10/2011 14:28:43 door Jerry php
En er mis een foreach..
Laas anders maar even terug, want het antwoord heb ik gegeven.
Gewijzigd op 05/10/2011 14:32:18 door - Ariën -
Toevoeging op 05/10/2011 20:00:07:
ik krijg nu als de vergelijking niet klopt, krijg ik een foutmelding voor élke username.
Ik had het namelijk getest, had er wat meer aangemeld, en toen kreeg ik de errors nog meer. dit is mijn code:
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
25
26
27
28
29
30
31
32
33
34
35
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
<?php
$file = file('users.txt');
$name = $_POST['user'];
$pass = $_POST['pass'];
$error = array();
foreach($file as $value)
{
if(isset($name))
{
if(isset($pass))
{
$los = explode(":", $value);
if(($los[0] == $name) && ($los[1] == $pass))
{
echo "U heeft zich succesvol aangemeld";
}
else
{
$error[] = "U heeft uw wachtwoord niet ingevoerd";
}
}
}
}
foreach($error as $serror)
{
echo $serror;
}
?>
$file = file('users.txt');
$name = $_POST['user'];
$pass = $_POST['pass'];
$error = array();
foreach($file as $value)
{
if(isset($name))
{
if(isset($pass))
{
$los = explode(":", $value);
if(($los[0] == $name) && ($los[1] == $pass))
{
echo "U heeft zich succesvol aangemeld";
}
else
{
$error[] = "U heeft uw wachtwoord niet ingevoerd";
}
}
}
}
foreach($error as $serror)
{
echo $serror;
}
?>