Hoi allemaal,

Ik heb een vraagje... ik ben volledig ervaringloos met PHP, dus als ik iets raars vraag weet je waar het aan ligt.

Ik ben bezig met een website voor ons Volleybalteam... nu wilde ik daar graag een loginpagina maken, zodat alleen degenen die in het team zitten de berichten kunnen lezen...
Nu heb ik een paar codes die hier gewoon online staan geprobeerd, maar die werken geen van allen, ik heb de codes naar Kladblok gekopiëerd en de pagina opgeslagen als "inloggen.htm"... heeft iemand enig idee wat ik fout doe?

Robert-Jan
wil je het script eens posten ;)??
ik heb de codes naar Kladblok gekopiëerd en de pagina opgeslagen als "inloggen.htm"


PHP... Opslaan als inloggen.php ipv htm :) Code moet nog parsed worden, of het zal niet lukken... :)
Ik heb hem veranderd... als ik hem nu open krijg ik een hele waslijst met de letterlijke code... volgens mij doe ik nog iets fout:s


Ik heb alle scripts in "beveiliging" die iets met inloggen te maken hebben geprobeerd...
heb je de code wel tussen

<? .... ?> staan ?
Ondersteunt je server wel PHP?

Maak een nieuw document, zet hier het volgende in:
<?
phpinfo();
?>
En sla het op als phpinfo.php
Zet dit vervolgens op je webserver, en ga hierheen...

Wat krijg je dan te zien? :)

@Tim: Editen gaat ook -->
post anders gewoon even het script ;)

ok volgende keer edit ik sorry :P
de code staat tussen
<? ... ?>


Ik zie een leeg veld



Het script:
//sql
CREATE TABLE `gebruikers` (
`id` int(8) NOT NULL auto_increment,
`naam` varchar(50) NOT NULL default '',
`wachtwoord` varchar(50) NOT NULL default '',
`status` varchar(10) NOT NULL default '',
`email` varchar(220) NOT NULL default '',
`actief` char(1) NOT NULL default '',
`act_code` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;

//activeren.php
<html>
<head>
<title>Activeren</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?
include("config.php");
if($_GET['naam'] != "" AND $_GET['code'] != "") {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_GET['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$act_code = htmlspecialchars($rij->act_code);
$actief = htmlspecialchars($rij->actief);
if($_GET['code'] == $act_code) {
$update = "UPDATE gebruikers SET actief='1',act_code='' WHERE naam='".$_GET['naam']."'";
$resultaat = mysql_query($update) OR die ("Kon geen verbinding maken met MySQL");
echo "Bedankt voor het activeren van je account. Je kunt nu <a href='inloggen.php'>hier</a> inloggen.";
}else{
echo "<font color='red'><b>Je activatiecode komt niet overeen met je gebruikersnaam.</b></font>";
}
}else{
echo "<font color='red'><b>Je hebt geen activatiecode en/of naam opgegeven.</b></font>";
}
?>

</body>
</html>

//config.php
<?
// MySQL instellingen
$sitenaam = ""; //de naam van je site
$sitemail = ""; //emailaders van je site
$inlogp = "inloggen.php"; //pagina waar je heen moet gaan als je bent ingelogd
$actiefurl = ""; //de volledige link naar de pagina waar je je activatie code in kunt voeren. bv http://mijnsite.ext/activeren.php
$npassurl = ""; //de volledige link naar de pagina waar je je nieuwe wachtwoord in kunt voeren. bv http://mijnsite.ext/nieuwpass.php
$dbhost = ""; // host van je database, bijna altijd localhost
$dbuser = ""; // username voor je mysql database
$dbpass = ""; // wachtwoord van je database
$dbname = ""; // de database

mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
?>

//inloggen.php
<html>
<head>
<title>Inloggen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2 align="center">Inloggen</h2>
<?
session_start();
ob_start();
include("config.php");
if($_SESSION['naam'] == "" AND $_SESSION['status'] == "") {
if($_COOKIE['naam'] == "" AND $_COOKIE['wachtwoord'] == "" AND $_COOKIE['email'] == "") {
if(isset($_GET['login'])) {
if($_POST['naam'] != "" AND $_POST['wachtwoord'] != "") {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_POST['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbpass = htmlspecialchars($rij->wachtwoord);
$status = htmlspecialchars($rij->status);
$email = htmlspecialchars($rij->email);
$actief = htmlspecialchars($rij->actief);
$pass = md5($_POST['wachtwoord']);
if($dbpass == $pass) {
if($actief == 1) {
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['status'] = $status;
if($_POST['blijven'] == "1") {
setcookie("naam", $_POST['naam'], time() + 365 * 86400);
setcookie("wachtwoord", $pass, time() + 365 * 86400);
}
header("Location: $inlogp");
}else{
echo "<font color='red'><b>Je account is nog niet geactiveerd!</b><font>";
}
}else{
echo "<font color='red'><b>Je wachtwoord en/of naam is incorrect!</b></font>";
}
}else{
echo "<font color='red'><b>Je bent een veld vergeten in te vullen!</b></font>";
}

}else{ }
?>


<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>?login">
<table>
<tr>
<td>Naam:</td><td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="wachtwoord"></td>
</tr>
<tr>
<td></td><td><input type="checkbox" name="blijven" value="1"> Ingelogd blijven</td>
</tr>
<tr>
<td></td><td><input type="submit" value="Inloggen"></td>
</tr>
</table>
<a href="wachtwoord_vergeten.php"><small>Wachtwoord vergeten?</small></a>
</form>
<?

}else{
$sql = "SELECT * FROM gebruikers WHERE naam='".$_COOKIE['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbnaam = htmlspecialchars($rij->naam);
$dbstatus = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);

$pass = $_COOKIE['wachtwoord'];
$naam = $_COOKIE['naam'];
if($dbpass == $pass AND $dbnaam == $naam) {
$_SESSION['naam'] = $dbnaam;
header("Location: $inlogp");
}else{
echo "<font color='red'><b>Eén van je cookies klopt niet met wat in de db staat!</b></font>";
}
}
}else{
?>
Je bent al ingelogd..
<?
}
?>
</body>
</html>

//meldaan.php
<html>
<head>
<title>Aanmelden</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2 align="center">Aanmelden</h2>
<?
include("config.php");
function act_code($num) {
mt_srand((double)microtime()*1000000);
while (strlen($pass) <= $num) {
$i = chr(mt_rand (0,255));
if (eregi("^[a-z0-9]$", $i))
$pass = $pass.$i;
}
return ($pass);
}
if(isset($_POST['submit'])) {
if($_POST['naam'] != "" AND $_POST['wachtwoord'] != "" AND $_POST['wachtwoord2'] != "" AND $_POST['email'] != "") {
if($_POST['wachtwoord'] == $_POST['wachtwoord2']) {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_POST['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
if(mysql_num_rows($resultaat) == 0) {
$md5pass = md5($_POST['wachtwoord']);
$act_code = act_code(10);
$insert = "INSERT INTO gebruikers (naam,wachtwoord,email,actief,act_code) VALUES ('".$_POST['naam']."','".$md5pass."','".$_POST['email']."','0','".$act_code."')";
mysql_query($insert) OR die ("Kon geen verbinding maken met MySQL");
$url = $actiefurl."?naam=".$_POST['naam']."&code=".$act_code;
mail($_POST['email'],"Activatie account op ".$sitenaam,"Je kunt je account activeren op\n".$url."\nKopieer bovenstaande link in je browser en je account zal geactiveerd worden.","From: ".$sitenaam." <".$sitemail.">");
echo "Bedankt je voor je registratie. Zodra je je account geactiveerd hebt (zie je mailbox) kun je inloggen op ".$sitenaam;
}else{
echo "<font color='red'><b>De gebruikersnaam bestaat al.</b></font>";
}
}else{
echo "<font color='red'><b>Je wachtwoord en controle wachtwoord komen niet overeen.</b></font>";
}
}else{
echo "<font color='red'><b>Je bent een vak vergeten in te vullen.</b></font>";
}
}else{ }
?>


<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>">
<table>
<tr>
<td>Naam:</td><td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="wachtwoord"></td>
</tr>
<tr>
<td>Wachtwoord herhalen:</td><td><input type="password" name="wachtwoord2"></td>
</tr>
<tr>
<td>E-mail:</td><td><input type="text" name="email"></td>
</tr>
<tr>
<td></td><td><input type="submit" value="Aanmelden" name="submit"></td>
</tr>
</table>
</form>
</body>
</html>

//nieuw_wacht.php
<html>
<head>
<title>Wachtwoord vergeten</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2 align="center">Wachtwoord vergeten - Wachtwoord resetten/aanpassen</h2>
<?
include("config.php");
if(isset($_GET['reset'])) {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_GET['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$code = htmlspecialchars($rij->act_code);
if($code == $_GET['code']) {
mysql_query("UPDATE gebruikers SET actief='1',act_code='' WHERE naam='".$_GET['naam']."'") OR die ("Kon geen verbinding maken met MySQL");
echo "Je wachtwoord is teruggezet, je kunt weer gewoon inloggen.";
}else{
echo "<font color='red'><b>Je code is incorrect.</b></font>";
}
}elseif($_GET['naam'] != "" AND $_GET['code'] != "") {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_GET['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$code = htmlspecialchars($rij->act_code);

if($code == $_GET['code']) {
if(isset($_POST['submit'])) {
if($_POST['pass'] != "" AND $_POST['pass2'] != "") {
if($_POST['pass'] == $_POST['pass2']) {
$pass = md5($_POST['pass']);
mysql_query("UPDATE gebruikers SET actief='1',act_code='',wachtwoord='".$pass."' WHERE naam='".$_GET['naam']."'") OR die ("Kon geen verbinding maken met MySQL");
echo "Je wachtwoord is succesvol gewijzigd en je accounts is weer geactiveerd.";
}else{
echo "<font color='red'><b>Het wachtwoord en controle wachtwoord komen niet overeen</b></font>";
}
}else{
echo "<font color='red'><b>Je bent vergeten een veld in te vullen.</b></font>";
}
}else{ }
?>
<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>">
<table>
<tr>
<td>Nieuw wachtwoord:</td><td><input type="password" name="pass"></td>
</tr>
<tr>
<td>Herhaal wachtwoord:</td><td><input type="password" name="pass2"></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Wijzigen"></td>
</tr>
</table>
</form>
<?
}else{
echo "<font color='red'><b>Je code is incorrect.</b></font>";
}
}else{
echo "<font color='red'><b>Je hebt geen naam en/of code opgegeven.</b></font>";
}
?>
</body>
</html>

//safe.php (includen om pagina te beveiligen)
<?
session_start();
ob_start();
//deze pagina include je in wat beveiligd moet worden
include("config.php");
if($_SESSION['naam'] == "" AND $_SESSION['status'] == "") {
if($_COOKIE['naam'] == "" AND $_COOKIE['wachtwoord'] == "") {

echo "Je bent niet ingelogd!<br>Klik <a href='inloggen.php'>hier</a> om in te loggen.";
exit;
}else{
$sql = "SELECT * FROM gebruikers WHERE naam='".$_COOKIE['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbnaam = htmlspecialchars($rij->naam);
$dbstatus = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);

$pass = $_COOKIE['wachtwoord'];
$naam = $_COOKIE['naam'];
if($dbpass == $pass AND $dbnaam == $naam) {
$_SESSION['naam'] = $dbnaam;
header("Location: $_SERVER[PHPSELF]");
}else{
echo "<font color='red'><b>Eén van je cookies klopt niet met wat in de db staat!</b></font>";
exit;
}
}
}else{
}
?>

//safe_status.php
<?
session_start();
ob_start();
$status = "admin"; //de status die een persoon moet hebben om deze pagina te bekijken
include("config.php");
if($_SESSION['naam'] == "" AND $_SESSION['status'] == "") {
if($_COOKIE['naam'] == "" AND $_COOKIE['wachtwoord'] == "") {
echo "Je bent niet ingelogd!<br>Klik <a href='inloggen.php'>hier</a> om in te loggen.";
exit;
}else{
$sql = "SELECT * FROM gebruikers WHERE naam='".$_COOKIE['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbnaam = htmlspecialchars($rij->naam);
$dbstatus = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);

$pass = $_COOKIE['wachtwoord'];
$naam = $_COOKIE['naam'];
if($dbpass == $pass AND $dbnaam == $naam) {
$_SESSION['naam'] = $dbnaam;
header("Location: $_SERVER[PHPSELF]");
}else{
echo "<font color='red'><b>Eén van je cookies klopt niet met wat in de db staat!</b></font>";
exit;
}
}
}else{
$sql = "SELECT status FROM gebruikers WHERE naam='".$_SESSION['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbstatus = htmlspecialchars($rij->status);
if($status == $dbstatus) {
echo "Klopt";
}else{
echo "<font color='red'><b>Je hebt niet de juiste rechten om deze pagina te bekijken!</b></font>";
exit;
}
}
?>

//style.css
body,td {
font-family: Verdana, Tahoma, Arial;
color: black;
font-size: smaller;
}
body {
background-color: white;
margin-top: 0px;
margin-bottom: 0px;
}
input, option, textarea, select, checkbox {
font-family: Verdana, Tahoma, Arial;
font-size: 8pt;
color: black;
font-weight: none;
border: 1px solid lightgray;
background-color: white;
}
a:link,a:visited {
color: darkblue;
text-decoration: none;
}
a:hover {
text-decoration: none;
color: blue;
}
a:active {
text-decoration: none;
color: darkblue;
font-weight: bold;
}
h1, h2, h3, h4, h5, h6 {
color: darkblue;
}

//uitloggen.php
<?
session_start();

session_unset();
session_destroy();

if(isset($_GET['cookie'])) {
setcookie("email");
setcookie("naam");
setcookie("wachtwoord");
}
?>
<html>
<head>
<title>Uitloggen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
Je bent nu uitgelogd.
</body>
</html>

//wachtwoord.php
<?
include("safe.php");
?>
<html>
<head>
<title>Wachtwoord wijzigen</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?
if(isset($_POST['submit'])) {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_SESSION['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$dbpass = htmlspecialchars($rij->wachtwoord);

$pass = md5($_POST['huidigpass']);
if($dbpass == $pass) {
if($_POST['newpass'] == $_POST['newpass2']) {
$newpass = md5($_POST['newpass']);
$update = "UPDATE gebruikers SET wachtwoord='".$newpass."' WHERE naam='".$_SESSION['naam']."'";
$resultaat = mysql_query($update) OR die ("Kon geen verbinding maken met MySQL");
echo "Je wachtwoord is succesvol gewijzigd.";
}else{
echo "<font color='red'><b>Je nieuwe wachtwoord en controle wachtwoord komen niet overeen.</b></font>";
}
}else{
echo "<font color='red'><b>Je huidige wachtwoord komt niet overeen met je wachtwoord in de database.</b></font>";
}
}else{
?>
<h2 align="center">Wachtwoord wijzigen</h2>
<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>">
<table>
<tr>
<td>Huidige wachtwoord:</td><td><input type="password" name="huidigpass"></td>
</tr>
<tr>
<td>Nieuwe wachtwoord:</td><td><input type="password" name="newpass"></td>
</tr>
<tr>
<td>Herhaal wachtwoord:</td><td><input type="password" name="newpass2"></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Wijzigen"></td>
</tr>
</table>
</form>
<?
}
?>
</body>
</html>

//wachtwoord_vergeten.php
<html>
<head>
<title>Wachtwoord vergeten</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2 align="center">Wachtwoord vergeten</h2>
<?
include("config.php");
function act_code($num) {
mt_srand((double)microtime()*1000000);
while (strlen($pass) <= $num) {
$i = chr(mt_rand (0,255));
if (eregi("^[a-z0-9]$", $i))
$pass = $pass.$i;
}
return ($pass);
}
if(isset($_POST['submit'])) {
$sql = "SELECT * FROM gebruikers WHERE naam='".$_POST['naam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$rij = mysql_fetch_object($resultaat);
$email = htmlspecialchars($rij->email);
$act_code = act_code(10);
mail($email,"Nieuw wachtwoord".$sitenaam,"Je hebt op ".$sitenaam." je wachtwoord opgevraagd. Je accounts is op niet-actief gezet. Je moet onderstaande link naar je browser kopieeren en dan daar je nieuwe wachtwoord invoeren om je wachtword te wijzigen.\nIndien je je wachtwoord NIET wilt wijzigen, druk dan op de 2e link.\nWACHTWOORD WIJZIGEN: ".$npassurl."?naam=".$_POST['naam']."&code=".$act_code."\nNIKS DOEN (huidige wachtwoord behouden): ".$npassurl."?naam=".$_POST['naam']."&code=".$act_code."&reset","From: ".$sitenaam." <".$sitemail.">");
echo "Check je mail...";

mysql_query("UPDATE gebruikers SET actief='0',act_code='".$act_code."' WHERE naam='".$_POST['naam']."'") OR die ("Kon geen verbinding maken met MySQL");

}else{
}
?>
<form method="post" action="<? echo $_SERVER['PHPSELF']; ?>">
<table>
<tr>
<td>Naam:</td><td><input type="text" name="naam"></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Opvragen"></td>
</tr>
</table>
<small><b>LET OP:</b> Als je dit doet, word je account op niet-actief gezet (kun je niet meer inloggen) en krijg je naar je
e-mail adres een e-mail gestuurd met daarin een link om je account opnieuw te activeren.<br>
Zodra je dit hebt gedaan, kun je je wachtwoord daarin wijzigen. Indien jij het dan niet gewijzigd hebt, dan druk je op de
andere link, en dan zal je oude wachtwoord weer actief worden.<br>
Pas als je in dit e-mailadres op activeren klikt, word je acount weer actief, met het nieuwe wachtwoord.

</body>
</html>
laten we op het begin beginnen ik zie dit staan:

CREATE TABLE `gebruikers` (
`id` int(8) NOT NULL auto_increment,
`naam` varchar(50) NOT NULL default '',
`wachtwoord` varchar(50) NOT NULL default '',
`status` varchar(10) NOT NULL default '',
`email` varchar(220) NOT NULL default '',
`actief` char(1) NOT NULL default '',
`act_code` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;



Dat is de query die je in je mysql database moet invoegen. Dat hoort niet bij het script op de pagina's ;)
Ik heb hem veranderd... als ik hem nu open krijg ik een hele waslijst met de letterlijke code... volgens mij doe ik nog iets fout:s


Je ziet de code? Easy, je server ondersteunt geen PHP... :)
Ik probeer hem uit als hij nog op m'n harde schijf staat...

Reageren