Login PHP en MySQL
<form action="member_login.php" method="post">
Nickname:
<select name="nickname" id="nickname" class="form">
<option selected="selected" value=" ">Your Nickname:</option>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// Een rij met gebruikersnamen maken, zodat de gebruiker sneller kan inloggen. Vaak
// zijn ze vergeten of hun naam nou met een kleine of grote hoofdletter geschreven
// werd.
$query = mysql_query("SELECT `nickname` FROM `login` ORDER BY nickname ASC");
while ($rij = mysql_fetch_object($query)) {
print "<option value=\"".$rij->nickname."\">".$rij->nickname."</option>\n";
}
?>
// Een rij met gebruikersnamen maken, zodat de gebruiker sneller kan inloggen. Vaak
// zijn ze vergeten of hun naam nou met een kleine of grote hoofdletter geschreven
// werd.
$query = mysql_query("SELECT `nickname` FROM `login` ORDER BY nickname ASC");
while ($rij = mysql_fetch_object($query)) {
print "<option value=\"".$rij->nickname."\">".$rij->nickname."</option>\n";
}
?>
</select>
<br />
Password:
<input type="password" name="password" id="password" size="15" maxlength="15" class="form" />
<br />
<input type="checkbox" name="requestpw" id="requestpw" value="1" />
Sent password to my e-mail
<br />
<br />
<input type="submit" value="Login" class="button" name="submit" />
</form>
En wat doet die \n achter </option>?
dat houd de html weer een stuk netter
Maar ik dacht wat moet dat ernou achter :)
en dan naar de html source kijken, wedden dat het met newlines makkelijker leest ;)
met mysQl enzow
<html>
<head>
<title>Login pagina</title>
</head>
<body>
<CENTER><P class="pagetitle"><font size="4">Inloggen configuratiescherm</font></P>
<form method="post" action="login.php">
<TABLE BORDER="0" WIDTH="200" BGCOLOR="#F0F0F0" ALIGN="center" CELLSPACING="2" CELLPADDING="2" CLASS="smallcontenttable">
<TR BGCOLOR="#0099CC">
<TD COLSPAN="2"><font color="#FFFFFF" face="Arial"> <B>Inloggen</B></FONT></TD>
</TR>
<TR>
<TD><font face="Arial">Gebruikersnaam</font>:</TD>
<TD><INPUT TYPE="text" NAME="LoginNaam" class="loginformveld"></TD>
</TR>
<tr>
<TD><font face="Arial">Wachtwoord:</font></TD>
<TD><INPUT TYPE="password" NAME="LoginPassword" class="loginformveld"></TD>
</tr>
</CENTER>
<INPUT TYPE="hidden" NAME="Submit" VALUE="1">
<TD COLSPAN="2" ALIGN="RIGHT"><INPUT TYPE="submit" VALUE="Login" class="loginformveld"></TD>
</TR>
</TABLE>
</form>
<p>
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
If ($Submit) {
$DBHost = "******";
$DBLogin = "******";
$DBPassword = "******";
$DBDatabase = "******";
mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
@mysql_select_db("$DBDatabase");
$LoginNaam = addslashes($LoginNaam);
$LoginPassword = addslashes($LoginPassword);
$Query = mysql_query("SELECT * FROM gebruikers WHERE gebruiker = '$LoginNaam' AND password = '$LoginPassword'");
$Results = mysql_num_rows($Query);
if ($Results == '1') {
$Login = "1";
session_register("Login");
echo "Je bent ingelogd. Klik <a href=\"vervolg.php\">hier</a> om verder te gaan.\n";
}
else {
echo " Je gebruikersnaam of password klopt niet.\n";
}
}
?>
If ($Submit) {
$DBHost = "******";
$DBLogin = "******";
$DBPassword = "******";
$DBDatabase = "******";
mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
@mysql_select_db("$DBDatabase");
$LoginNaam = addslashes($LoginNaam);
$LoginPassword = addslashes($LoginPassword);
$Query = mysql_query("SELECT * FROM gebruikers WHERE gebruiker = '$LoginNaam' AND password = '$LoginPassword'");
$Results = mysql_num_rows($Query);
if ($Results == '1') {
$Login = "1";
session_register("Login");
echo "Je bent ingelogd. Klik <a href=\"vervolg.php\">hier</a> om verder te gaan.\n";
}
else {
echo " Je gebruikersnaam of password klopt niet.\n";
}
}
?>
</body>
</html>
Ik denk dat bovenstaande wel voor zich spreekt. Maak nu het bestand vervolg.php:
<!-- Hier komt de code voor de pagina. Als de gebruiker dit ziet is hij inderdaad ingelogd, want de variabele $Login bestaat. De PHP tag is afgesloten dus je kan gewoon HTML gebruiken -->
<!-- De gebruiker is niet van tevoren ingelogd. Hier komt dus een waarschuwing voor de gebruiker dat er eerst ingelogd moet worden. Het is slim om een apart PHP bestand te maken voor deze waarschuwing, en die hier te includen omdat je deze code vaker nodig zult hebben (elke pagina moet immers controleren of er is ingelogd. Dit scheelt een lap code in elk bestand, terwijl die code overal hetzelfde is. -->
Als je dit tweede script op alle pagina's die beveiligd moeten worden zet, dan controleert hij elke keer of je bent aangemeld. Voordeel hiervan is dat er niet iemand via een zoekbox toch intern kan komen.
Maak verder de volgende tabel aan in MySQL:
CREATE TABLE `gebruikers` (
`gebruiker` VARCHAR(15) NOT NULL,
`password` VARCHAR(33) NOT NULL
);
Ik hoop dat je hier wat aan hebt
Zoals bijvoorbeeld unieke usernames, een primaire sleutel user_id.
create table gebruikers (
user_id int(5) auto_increment not null,
user_naam varchar(15) not null,
user_password varchar(33) not null,
primary key(user_id),
unique(user_naam)
);
Verder is het handig om voor passwords van de functie PASSWORD() gebruik te maken
$Query = mysql_query("SELECT * FROM gebruikers WHERE gebruiker = '$LoginNaam' AND password = PASSWORD('$LoginPassword')");
Zelfde dient bij het inserten te geschieden
INSERT INTO gebruikers .. (user_naam, user_password) values ('$user', PASSWORD('$password');
Verder maak je geen gebruik van Superglobals, wat schandlig is, op zn minst.
voor sessie variabelen geld voor $Login:
$SESSION['Login'] om op te vragen of de user ingelogd is.
Grtz,
Adje
voor sessie variabelen geld voor $Login:
$SESSION['Login'] om op te vragen of de user ingelogd is.
Hartelijk dank tot zo ver iig
Dus toen heb ik in de tabel Site toegevoegd.
En de script als volget gemaakt:
<html>
<head>
<title>Login pagina</title>
</head>
<body>
<CENTER><P class="pagetitle"><font size="4">Inloggen configuratiescherm</font></P>
<form method="post" action="login.php">
<TABLE BORDER="0" WIDTH="200" BGCOLOR="#F0F0F0" ALIGN="center" CELLSPACING="2" CELLPADDING="2" CLASS="smallcontenttable">
<TR BGCOLOR="#0099CC">
<TD COLSPAN="2"><font color="#FFFFFF" face="Arial"> <B>Inloggen</B></FONT></TD>
</TR>
<TR>
<TD><font face="Arial">Gebruikersnaam</font>:</TD>
<TD><INPUT TYPE="text" NAME="LoginNaam" class="loginformveld"></TD>
</TR>
<tr>
<TD><font face="Arial">Wachtwoord:</font></TD>
<TD><INPUT TYPE="password" NAME="LoginPassword" class="loginformveld"></TD>
</tr>
</CENTER>
<INPUT TYPE="hidden" NAME="Submit" VALUE="1">
<TD COLSPAN="2" ALIGN="RIGHT"><INPUT TYPE="submit" VALUE="Login" class="loginformveld"></TD>
</TR>
</TABLE>
</form>
<p>
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
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
<?php
If ($Submit) {
$DBHost = "****";
$DBLogin = "****";
$DBPassword = "****";
$DBDatabase = "****";
mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
@mysql_select_db("$DBDatabase");
$LoginNaam = addslashes($LoginNaam);
$LoginPassword = addslashes($LoginPassword);
$LoginSite = addslashes($LoginSite);
$Query = mysql_query("SELECT * FROM gebruikers WHERE user_naam = '$LoginNaam' AND user_password = '$LoginPassword' AND user_site = '$LoginSite'");
$Results = mysql_num_rows($Query);
if ($Results == '1') {
$Login = "1";
session_register("Login");
echo "Je bent ingelogd. Klik <a href= $LoginSite>hier</a> om verder te gaan.\n";
}
else {
echo " Je gebruikersnaam of password klopt niet.\n";
}
}
?>
If ($Submit) {
$DBHost = "****";
$DBLogin = "****";
$DBPassword = "****";
$DBDatabase = "****";
mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
@mysql_select_db("$DBDatabase");
$LoginNaam = addslashes($LoginNaam);
$LoginPassword = addslashes($LoginPassword);
$LoginSite = addslashes($LoginSite);
$Query = mysql_query("SELECT * FROM gebruikers WHERE user_naam = '$LoginNaam' AND user_password = '$LoginPassword' AND user_site = '$LoginSite'");
$Results = mysql_num_rows($Query);
if ($Results == '1') {
$Login = "1";
session_register("Login");
echo "Je bent ingelogd. Klik <a href= $LoginSite>hier</a> om verder te gaan.\n";
}
else {
echo " Je gebruikersnaam of password klopt niet.\n";
}
}
?>
</body>
</html>
Ik heb verder nog niet zoveel kaas gegeten van PHP maar opzich leek mij dit wel een goede oplossing!! :D
Maar nu krijg ik de volgende fout:
Parse error: parse error in /data/members/paid/v/a/vakantielokaties.nl/htdocs/zwaluw/login2.php on line 62
Weet iemand wat ik hier mee moet?
Ik zou het zeer waarderen! :)
Groeten. Ell.
dat heb ik inmiddels veranderd. Maar wat bedoelen ze met die 2de warning dan?
Die kwam door de eerste.
Of beter gezegt.. kan het wel op de manier zoals ik dat nu wil???