empty() functie
Terwijl ik beide gegevens wel heb ingevuld. Wie kan mij raad geven?
Mvg willem
Quote:
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
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
<?php
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);
$cgebruikersnaam = '-';
$cwachtwoord = '-';
if($_POST)
{
if(empty($_POST['gebruikersnaam']))
{
if(empty($_POST['wachtwoord']))
{
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
else
{
echo "U heeft geen gebruikersnaam ingevuld!";
}
}
else
{
echo "U heeft geen wachtwoord ingevuld!";
}
}
else
{
echo "U heeft geen gegevens ingevult.";
}
?>
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);
$cgebruikersnaam = '-';
$cwachtwoord = '-';
if($_POST)
{
if(empty($_POST['gebruikersnaam']))
{
if(empty($_POST['wachtwoord']))
{
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
else
{
echo "U heeft geen gebruikersnaam ingevuld!";
}
}
else
{
echo "U heeft geen wachtwoord ingevuld!";
}
}
else
{
echo "U heeft geen gegevens ingevult.";
}
?>
Code (php)
Controle klopt niet... als de gebruikersnaam leeg is dan.... ZO NIET (gebruikersnaam is dus ingevuld) toon "U heeft geen wachtwoord ingevuld!".
Hij werkt nu. Wat vind je van mijn werk-style?
Quote:
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
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
<?php
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);
$cgebruikersnaam = '-';
$cwachtwoord = '-';
if($_POST)
{
if(empty($_POST['gebruikersnaam']))
{
echo "U heeft geen gebruikersnaam ingevuld!";
}
else
{
if(empty($_POST['wachtwoord']))
{
echo "U heeft geen wachtwoord ingevuld!";
}
else
{
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
}
}
else
{
echo "U heeft geen gegevens ingevult.";
}
?>
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);
$cgebruikersnaam = '-';
$cwachtwoord = '-';
if($_POST)
{
if(empty($_POST['gebruikersnaam']))
{
echo "U heeft geen gebruikersnaam ingevuld!";
}
else
{
if(empty($_POST['wachtwoord']))
{
echo "U heeft geen wachtwoord ingevuld!";
}
else
{
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
}
}
else
{
echo "U heeft geen gegevens ingevult.";
}
?>
Gewijzigd op 11/01/2011 22:17:55 door Ocirina Ocirina
Onduidelijk. Tevens is de buitenste POST check niet eens nodig. Je checkt of er een POST is en dan ga je checken of gebruikersnaam is ingevuld...beetje dubbelop...
Wat vind je onduidelijk aan mijn schrijfstijl?
Dankje voor je sneller reactie!
Je laat bij een inlog formulier niet precies zien wat er mis is. Je laat alleen zien dat er een fout is. Hackers kunnen precieze data zoals 'verkeerd wachtwoord' misbruiken.
if($_POST)
Duidelijk? Nee.
Gebruik hier bv. eens spaties.
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
En wees consequent met inspringen. Nu lijkt het wel random.
Waarom maak je $gebruikersnaam aan? Je hebt de informatie toch al in de POST?
Waarom maak je $cgebruikersnaam en $cwachtwoord aan? Je gebruikt ze verderop in een vergelijking, maar daar kun je toch ook de waarde die je nu toekent aan de variabele gewoon gebruiken? Overigens twijfel ik of $wachtwoord==$cwachtwoord gaat werken.
$wachtwoord is md5 gecodeerd en dat vergelijk je met -
Je maakt gebruik van POST, dus er hoort nog een formulier bij. Je kent eerst $gebruikersnaam toe (regel 3) en op regel 8 controleer je of er een POST is.
Owja, niet onnodig variabelen kopiëren. Als je niks hebt gedaan met de data die in $_POST zit, laat je die ook gewoon lekker in $_POST zitten en ga je die niet in een nieuwe variabele stoppen.
@SanThe, ook bedankt voor jou reactie. Ik ga er aan werken. Als ik over 10 min. het script weer post zou je dan weer willen kijken?
Willem van Lent op 11/01/2011 22:32:24:
@Karl Karl, dankje voor je reactie. Ik heb een vriend die doet een hbo webdev opleiding. Zoals jij meld had ik het ook, maar die vriend van mij zeg dat dat niet efficiënt is.
Wat doet?
Jammer genoeg leer je het niet altijd goed op het HBO...
Ik heb mijn script herzien, graag zou ik jullie mening willen horen.
Quote:
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
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
<?php
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);
$cgebruikersnaam = '-';
$cwachtwoord = '-';
if(empty($_POST['gebruikersnaam']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if(empty($_POST['wachtwoord']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
}
?>
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);
$cgebruikersnaam = '-';
$cwachtwoord = '-';
if(empty($_POST['gebruikersnaam']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if(empty($_POST['wachtwoord']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if($gebruikersnaam==$cgebruikersnaam&&$wachtwoord==$cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
}
?>
HELAAS! Sorry, dat ik de reactie niet gelezen had. Ik ga het opnieuw herzien.
Gewijzigd op 11/01/2011 22:40:01 door Ocirina Ocirina
Je kopieert nog steeds een variabele. En je kunt het logischer maken.
Willem van Lent op 11/01/2011 22:32:24:
@Karl Karl (...) Zoals jij meld had ik het ook, maar die vriend van mij zeg dat dat niet efficiënt is.
(...)
(...)
Kan je dit nog verduidelijken?
Willem van Lent op 11/01/2011 22:37:32:
Ik heb mijn script herzien, graag zou ik jullie mening willen horen.
Even alleen het inspringen:
De 'else' op regel 25 staat nog niet goed.
Gewijzigd op 11/01/2011 22:50:14 door - SanThe -
Ik heb net verwerkt wat je zij. De else op regel '25' (nu anders) heb ik aangepast. Ik zag hem ook staan.
@Karl Karl, Ik weet niet precies wat hij precies bedoelde maar het scheelde ergens in?
Quote:
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
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
<?php
$cwachtwoord = '-';
if(empty($_POST['gebruikersnaam']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if(empty($_POST['wachtwoord']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if($_POST['gebruikersnaam'] == 'admin' and md5($_POST['wachtwoord']) == $cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
}
?>
$cwachtwoord = '-';
if(empty($_POST['gebruikersnaam']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if(empty($_POST['wachtwoord']))
{
echo "De gebruikersnaam of het wachtwoord klopt niet!";
}
else
{
if($_POST['gebruikersnaam'] == 'admin' and md5($_POST['wachtwoord']) == $cwachtwoord)
{
echo "U bent ingelogd!";
}
else
{
echo "U bent niet ingelogd, de gegevens waren niet correct.";
}
}
}
?>
Gewijzigd op 11/01/2011 22:51:26 door Ocirina Ocirina
Gebeurt het op gelijk welke andere plek dat je iets zet rechts van een accolade?
Hoe past dit dan in een globaal systeem van indentering?"
Ik snap niet wat je nu bedoelt, doe ik volgens jou iets niet goed?
Gewijzigd op 12/01/2011 10:14:14 door Ozzie PHP
Maar, wat is dan voor jullie het meest overzichtelijk?
Zoals ik het zelf doe vind ik fijn, eventueel de acco. zo neer zetten:
Code (php)
Gewijzigd op 12/01/2011 10:21:24 door Ocirina Ocirina
Het schrijfstijl topic is gesloten. We gaan hier verder.
Ik hoop daar al een hoop van te leren. Maar zoals je zegt, een real_escape_string gebruiken. Is dit veilig? voor bijvoorbeeld een online punten systeem?
mvg