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>
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 ;)
?
Onbekende gebruiker
27-05-2004 15:32
Wie kan er een script maken van een login.
met mysQl enzow
?
Onbekende gebruiker
27-05-2004 15:51
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:
$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
);