Ik heb een vraag. Er zit een fout in het volgende script. Als ik het open, dan wordt de lijst met nicknames niet zichtbaar. Ik heb een database (genaamd login) met de velden id, nickname, password, email en status. Weet iemand hoe dat kan en waar de fout zit?? Alvast bedankt voor de medewerking!!


<form action="member_login.php" method="post">
Nickname:
<select name="nickname" id="nickname" class="form">
<option selected="selected" value=" ">Your Nickname:</option>
<?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";
}
?>
</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>
Kweenie hoeveel leden jij hebt maar dat nickname ding lijkt me sowieso nogal omslachtig ...
En wat doet die \n achter </option>?
\n geeft een newline, lijkt me toch duidelijk :)
dat houd de html weer een stuk netter
Sorry, ik heb hetal gevonden. Ik heb de pagins niet geopend met:

<?php
session_start();
?>

:S:S. Evengoed bedankt voor het bekijken van het script...
Dat het een newline geeft snapte ik jah
Maar ik dacht wat moet dat ernou achter :)
doe dit maar eens:
<?
for($i=0;$i<20;$i++){
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
en dan naar de html source kijken, wedden dat het met newlines makkelijker leest ;)
Wie kan er een script maken van een login.
met mysQl enzow
Doe gewoon copy - paste. Het enige wat je hoeft aan te passen zij nde plaatsen aangegeven met ******. Hier is gekozen voor sessies en noet van coockies, omdat sessies via de server gaan en dus niet aangepast kunnen worden. Noem het volgende bestand login.php:

<?php
session_start();
?>

<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">&nbsp;<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>

<?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";

}

}
?>

</body>
</html>

Ik denk dat bovenstaande wel voor zich spreekt. Maak nu het bestand vervolg.php:

<?php
session_start();

if ($Login == '1') {
?>

<!-- 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 -->

<?php
}
else {
?>

<!-- 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. -->

<?php
}
?>

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
het is ook nog wel grappig om een niet compleet brakke mysql tabel te hebben.

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
Wat bedoel je met dat laatste? Hoe voer ik dat in?


voor sessie variabelen geld voor $Login:

$SESSION['Login'] om op te vragen of de user ingelogd is.


Hartelijk dank tot zo ver iig
Script werkt perfect... Maar nu wil ik graag meerdere gebruikers die ik allemaal naar een eigen site toe stuur...

Dus toen heb ik in de tabel Site toegevoegd.

En de script als volget gemaakt:


<?php
session_start();
?>

<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>

<?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";

}

}
?>

</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.

Reageren