inlog met .txt bestand
Pagina: « vorige 1 2 3 4 5 6 7 volgende »
Een documentatie pagina op php.net is opgebouwd uit 7 blokken. Deze blokken hebben allemaal een handige betekenis:
Description
Hierin zie je hoe je de functie moet aanspreken. In het code voorbeeld staat wat hij als parameters verwacht. Alles wat tussen [] staat is optioneel.
Ook staat er onder de code waar de functie voor dient (natuurlijk in het engels).
Voorbeeld
Hierin zien we dat isset een bool(ean (true/false)) terug geeft. Als parameters verwacht hij sowieso 1 var, deze kan verschillende types hebben (mixed). Eventueel kunnen er meerdere (zoveel je wilt) parameters toegevoegd worden.
Parameters
Om nou precies te weten wat de isset functie als parameters verwacht gaan we naar het blokje eronder. Hierin kun je per parameter lezen wat het moet zijn. Deze parameter naam is gelijk aan de naam die je in de description blok hebt gezien.
Voorbeeld
Ah, nu weten we dat de $var in de description een variabele is die wordt gecheckt. Eventueel kunnen we meerdere variabelen laten checken.
Return Values
We lazen bij description al dat de isset functie een boolean returned. Maar hoe zit dat dan precies? Dat kunnen we in dit blok lezen.
Voorbeeld
Quote:
Returns TRUE if var exists and has value other than NULL, FALSE otherwise.
Ah, als de $var bestaat returned de functie true en anders false.
Examples
Nu weten we hoe we de functie moeten aanroepen en wat hij terug geeft. Vervolgens krijgen we in dit blok een paar goede voorbeelden te zien van hoe we deze functie moeten toepassen.
Notes
Hier lees je de nog belangrijke extra's. Dus mocht er iets zijn wat belangrijk is om te weten, maar wat niet in de blokken hierboven kon dan staat het hier aangegeven. Altijd handig om te doorzoeken.
See Also
Mochten we na het lezen van de documentatie weten dat dit niet de juiste functie is zien we hier een aantal functies die in dezelfde categorie behoren. Misschien zit de functie hier wel tussen.
Reactions
Onderaan lezen we de reacties opd eze documentatie.
Hoe kom ik op de pagina van mijn functie?
Dat doe je door naar php.net/functieNaam te gaan.
Voorbeeld
http://php.net/isset
Nu weet ik al deels welke functie ik moet gaan gebruiken, de bool isset!
Daar lees je geen bestanden mee...
- Aar - op 04/10/2011 18:52:21:
Haha... dat isset() was een voorbeeld.
Daar lees je geen bestanden mee...
Daar lees je geen bestanden mee...
Welke functie moet ik dan gebruiken?
Die fread, maar hoe ga ik die toepassen zodat hij kan kijken of de gebruikersnaam en wachtwoord in het .txt zit?
Obelix en Idefix op 04/10/2011 19:01:27:
Kijk anders even op http://www.pfz.nl/forum/topic/5683-login-met-txt-bestand/
Daar staat toch geen antwoord bij?
Ligt er maar net aan hoe je die data op hebt geslagen?
- Aar - op 04/10/2011 19:02:57:
Ligt er maar net aan hoe je die data op hebt geslagen?
Ik heb de data opgeslagen met een file_put_contents:
$res = file_put_contents($_SERVER['DOCUMENT_ROOT'].$file,$gebruikers);
Gewijzigd op 04/10/2011 19:06:19 door - Ariën -
- Aar - op 04/10/2011 19:05:53:
Hoe hoe is het onderscheid in user en pass? Wat staat er in $gebruikers?
Ik weet niet precies wat je bedoelt, daarom hier mijn php:
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
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
<?php
$error = array();
$naam = $_POST['naam']."\n";
$leeftijd = $_POST['leeftijd'];
$users = 'Naam: '.$naam;
$users .= 'Leeftijd: '.$leeftijd;
$users .= file_get_contents('users.txt');
$file = "/users.txt";
$gebruikers = $users;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($naam))
{
$veld = trim($naam);
if($veld == "")
{
$error[] = 'U heeft de naam niet ingevuld';
}
}
if(isset($leeftijd))
{
if($leeftijd <= 25)
{
$error[] = 'U moet een minimale leeftijd hebben van 26 jaar.';
}
}
if(empty($error))
{
$res = file_put_contents($_SERVER['DOCUMENT_ROOT'].$file,$gebruikers);
if($res)
{
echo "U bent succesvol aangemeld!";
}
}
else
{
foreach($error as $serror)
{
echo $serror . '<br />';
}
}
}
?>
$error = array();
$naam = $_POST['naam']."\n";
$leeftijd = $_POST['leeftijd'];
$users = 'Naam: '.$naam;
$users .= 'Leeftijd: '.$leeftijd;
$users .= file_get_contents('users.txt');
$file = "/users.txt";
$gebruikers = $users;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($naam))
{
$veld = trim($naam);
if($veld == "")
{
$error[] = 'U heeft de naam niet ingevuld';
}
}
if(isset($leeftijd))
{
if($leeftijd <= 25)
{
$error[] = 'U moet een minimale leeftijd hebben van 26 jaar.';
}
}
if(empty($error))
{
$res = file_put_contents($_SERVER['DOCUMENT_ROOT'].$file,$gebruikers);
if($res)
{
echo "U bent succesvol aangemeld!";
}
}
else
{
foreach($error as $serror)
{
echo $serror . '<br />';
}
}
}
?>
Hoe wordt het onderscheid erin gemaakt? Hoe staat dat opgeslagen?
Kwestie van zo'n inlog-bestand er even bij te pakken.
- Aar - op 04/10/2011 19:08:45:
je slaat twee dingen op, username en password.
Hoe wordt het onderscheid erin gemaakt? Hoe staat dat opgeslagen?
Kwestie van zo'n inlog-bestand er even bij te pakken.
Hoe wordt het onderscheid erin gemaakt? Hoe staat dat opgeslagen?
Kwestie van zo'n inlog-bestand er even bij te pakken.
Ooh, op die manier. dat is een .txt bestand. en het staat er zo in:
Naam: adfadsf
Leeftijd: 33
Naam: jerry
Leeftijd: 30
Onder elkaar zeg maar.
EDIT: Dit is inderdaad met een leeftijd, dat wordt natuurlijk password. maar dat is even terzijde.
Gewijzigd op 04/10/2011 19:12:56 door Jerry php
- SanThe - op 30/09/2011 23:18:12:
Klopt niks van de manier van testen.
Je neemt eerst gewoon aan dat de POST-vars bestaan.
Dan ga je kijken of $naam bestaat terwijl je die zojuist hebt aangemaakt.
Daarna komt de eigenlijke test pas.
Jerry php op 30/09/2011 22:53:24:
Klopt niks van de manier van testen.
Je neemt eerst gewoon aan dat de POST-vars bestaan.
Dan ga je kijken of $naam bestaat terwijl je die zojuist hebt aangemaakt.
Daarna komt de eigenlijke test pas.
wat zou er volgens jou weg moeten?
- SanThe - op 04/10/2011 19:13:53:
Je neemt eerst gewoon aan dat de POST-vars bestaan.
Dan ga je kijken of $naam bestaat terwijl je die zojuist hebt aangemaakt.
Daarna komt de eigenlijke test pas.
Dan ga je kijken of $naam bestaat terwijl je die zojuist hebt aangemaakt.
Daarna komt de eigenlijke test pas.
Logica ontbreekt.
Pietje:38ba44476aec40e95e1060e89129f1a9c05a97fc
Waarbij Pietje de username is, en die lange string naast de dubbele punt een leuke hash met het password (en een uiteraard een salt).
net als dit dus?
jerry:33
jerry:31
jerry:31
jerry:31
En nu?
EDIT:bedankt dat je me nu goed helpt
Gewijzigd op 04/10/2011 19:22:03 door Jerry php
Als je alle users gelijk opslaat (dus username : password )zoals Aar zegt, kan je er weer uithalen en onderscheid maken tussen de users.
Jerry php op 04/10/2011 19:21:44:
EDIT:bedankt dat je me nu goed helpt
Dat komt omdat je nu een keer laat zien dat je bezig bent.
Je wachtwoord moet je nooit zomaar als wachtwoord opslaan. Altijd sha1 of md5 erover en een salt + pepper.
Je vraag de pagina op met fread en dan stop je de hele pagina in een string. Deze kan je dan doorzoeken met bijv. preg_match.
Jerry php:
Wat is er fout aan?
De isset() functie kijkt of de variabele is aangemaakt. Wat jij nu doet is dat je de post variabele in een var stopt ($naam). Vervolgens kijk je of die naam is aangemaakt. Natuurlijk is die naam aangemaakt, want dat doe je een regel daarvoor.
Kijk dus eerst of de post variabele bestaat en ga vervolgens -onnodig- variabele kopiëren. Zoals ik al zeg, je kan beter gewoon de post variabelen in je script gebruiken dan de variabele kopiëren in een var.
Lichter dan een preg_match...