Volledige versie bekijken : Login met registratie script (php) wil niet lukken



kurt0015
24 May 2006, 17:24
Ik ben dus bezig met een site en heb op het internet een login script gevonden namelijk: http://www.phpfreakz.nl/library.php?sid=3423 ik heb het iets aangepast zodat ik hem in men layout kon inwerken. Wat me ook lukte maar nu zit ik vast het inloggen werkt blijkbaar niet. Het registeren doet het want hij maakt het aan in de database en codeert het wachtwoord. Hier is mijn code:

Config.php:

<?php

ob_start();
session_start();

$host = "localhost";
$username = "dbuser";
$password = "wachtwoord";
$database = "db";

mysql_connect("$host","$username","$password") or die (mysql_error());
mysql_select_db("$database") or die (mysql_error());

?> (Heb deze gegevens er even uitgelaten voor veiligheidsredenen maar deze kloppen.)

invoegen in database:

CREATE TABLE login (
id int(11) NOT NULL auto_increment,
gebruikersnaam varchar(20) NOT NULL,
wachtwoord varchar(20) NOT NULL,
email varchar(50) NOT NULL,
status varchar(20) NOT NULL,
PRIMARY KEY (id)
)

login.php:

<?php
include "layout/header.php";
echo "<tr>\n";
echo "<td>\n";
include "layout/menu.php";
echo "</td>\n";
echo "<td class=\"inhoud\">\n";
echo "<!-- Begin Inhoud -->\n";
echo "<head>\n";
echo "<title>Pcstekje.be » Login</title>\n";
echo "<META NAME=\"keywords\" CONTENT=\"downloads, programma's, antispyware, antivirussen, internet downloads\">\n";
echo "<META NAME=\"description\" CONTENT=\"Hier vind je allerlei downloads (freeware, shareware). Zoals browsers, Anti virus-Spyware, ...\">\n";
echo "</head>\n";
echo "<div class=\"titel\">Login</div>\n";
echo " <br />\n";

if ($_SESSION['login'] == 1 && $_SESSION['status'] == "admin") {

echo "<B>Ingelogd:</B><BR>$_SESSION[gebruikersnaam]<BR><BR><a href='$PHP_SELF?loguit'>Loguit</a>"; // admin extra's
} elseif ($_SESSION['login'] == 1) {
echo "<B>Ingelogd:</B><BR>$_SESSION[gebruikersnaam]<BR><BR><a href='$PHP_SELF?loguit'>Loguit</a>"; // normal user

} else {


if ($_POST['login']) {
$md5_pass = md5($_POST[wachtwoord]);
$query = mysql_query("SELECT * FROM login WHERE gebruikersnaam = '$_POST[gebruikersnaam]' AND wachtwoord = '$md5_pass'");
$results = mysql_num_rows($query);
if ($results == 1) {
while ($obj = mysql_fetch_object($query)) {
$status = $obj->status;
$login = 1;
session_register("login");
session_register("status");
session_register("gebruikersnaam");
header("Location: ".$_SERVER['PHP_SELF']);
}
} else {
echo "<FONT COLOR=\"#FF0000\">Gebruikersnaam en/of<br />Wachtwoord onjuist!</FONT><BR><BR>\n";
}
}


echo "<FORM METHOD=\"post\" ACTION=\"$_SERVER[PHP_SELF]\">\n";
echo "Gebruikersnaam:<BR><INPUT TYPE=\"text\" NAME=\"gebruikersnaam\" SIZE=\"20\"><BR>\n";
echo "Wachtwoord:<BR><INPUT TYPE=\"password\" NAME=\"wachtwoord\" SIZE=\"20\"><BR><BR>\n";
echo "<INPUT TYPE=\"submit\" NAME=\"login\" VALUE=\"login\">\n";
echo "<a href=\"../../meldaan.php\" class=\"aanmelden\">Registeren</a>\n";
echo "</FORM>\n";

}

if ($_SERVER["QUERY_STRING"] == "loguit") {
session_unset();
session_destroy();
header("Location: ".$_SERVER['PHP_SELF']);
}

echo "<!-- Einde Inhoud -->\n";
echo "</td>\n";
echo "</td>\n";
include "layout/footer.php";
?>
meldaan.php:

<?php
include "layout/header.php";
echo "<tr>\n";
echo "<td>\n";
include "layout/menu.php";
echo "</td>\n";
echo "<td class=\"inhoud\">\n";
?>
<!-- Begin Inhoud --><head>
<title>Pcstekje.be » Login</title>
<META NAME="keywords" CONTENT="downloads, programma's, antispyware, antivirussen, internet downloads">
<META NAME="description" CONTENT="Hier vind je allerlei downloads (freeware, shareware). Zoals browsers, Anti virus-Spyware, ...">
</head>
<div class="titel">Meld je aan</div>
<br />
<?php

if ($_SERVER["QUERY_STRING"] != "aangemeld") {
if ($_POST['meldaan']) {
if ($_POST['gebruikersnaam'] != "" && $_POST['wachtwoord'] !="" && $_POST['email'] !="") {
if ($_POST['wachtwoord'] == $_POST['wachtwoord2']) {
$query = mysql_query("SELECT * FROM login WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
if(mysql_num_rows($query) >= 1) {
echo "<FONT COLOR=\"#FF0000\">De <B>Gebruikersnaam</B> is al aangemeld!</FONT>";
} else {
if (preg_match("/(?i)^([a-z0-9._-])+@([a-z0-9.-])+\.([a-z0-9]){2,4}$/",$_POST['email'])) {
$md5_pass = md5($_POST[wachtwoord]);
mysql_query("INSERT INTO login (gebruikersnaam, wachtwoord, email) VALUES ('$_POST[gebruikersnaam]','$md5_pass','$_POST[email]')") or die (mysql_error());
header("Location: $_SERVER[PHP_SELF]?aangemeld");
} else {
echo "<FONT COLOR=\"#FF0000\">Geen juiste <B>E-mail</B> ingevuld!</FONT><BR>\n";
}
}
} else {
echo "<FONT COLOR=\"#FF0000\">De <B>Wachtwoorden</B> zijn niet hetzelfde!</FONT>";
}
} else {
echo "<FONT COLOR=\"#FF0000\">Geen <B>Gebruikersnaam</B>, <B>Wachtwoord</B> en/of <B>E-mail</B> ingevuld!</FONT>";
}
}

echo "<FORM METHOD=\"post\" ACTION=\"$_SERVER[PHP_SELF]\">\n";
echo "Gebruikersnaam:<BR><INPUT TYPE=\"text\" NAME=\"gebruikersnaam\" VALUE=\"$gebruikersnaam\"><BR><BR>\n";
echo "Wachtwoord:<BR><INPUT TYPE=\"password\" NAME=\"wachtwoord\"><BR><BR>\n";
echo "Herhaal Wachtwoord:<BR><INPUT TYPE=\"password\" NAME=\"wachtwoord2\"><BR><BR>\n";
echo "E-mail:<BR><INPUT TYPE=\"text\" NAME=\"email\"><BR><BR>\n";
echo "<INPUT TYPE=\"submit\" NAME=\"meldaan\" VALUE=\"Meld Aan\">\n";
echo "</FORM>";

} else {
echo "Okey, je profiel is aangemaakt!<BR>\n";
echo "Klik <A HREF=\"login.php\">hier</A> om te gaan inloggen.";
}
?>
<!-- Einde Inhoud -->
</td>
<?php
echo "</td>\n";
include "layout/footer.php";
?>

Ik hoop dat iemand mij kan helpen en het inloggen kan laten werken. Ik ben een beginner php en moet het dus allemaal nog leren en zie de fout niet.

jeroentje
24 May 2006, 18:34
$md5_pass = md5($_POST[wachtwoord]);

zou het niet kunnen dat dit je fout is je gebruikt md5 maar maakt verbinding met mysql??

kurt0015
24 May 2006, 18:59
Denk zelf dat da juist klopt. Het staat ook in de meldaan.php waar het dus werkt. Maar ben zelf nog beginner dus zou het niet direct weten.

kurt0015
27 May 2006, 00:23
Het is opgelost mijn neef heeft het opgelost een fout in de database en andere in login script weet niet juist wat het was maar nu werkt het tenminste.

Bedankt iedereen voor jullie hulp.
Hier mag dan een slotje op.