XxStefkuHxX
Gebruiker
- Lid geworden
- 22 jul 2003
- Berichten
- 445
Hallo jongens, ik heb een login, alleen hij zegt dattie geen verbinding kan maken met Mysql, wie weet waar de fout zit ?
PHP:
Tabellen
CREATE TABLE leden (
userid int(10) unsigned not null auto_increment primary key,
username varchar(200),
password varchar(32),
email varchar(200),
ip varchar(20),
aanmelddatum int(10),
hash int( 8 ),
actief tinyint(1)
);
PHP:
configuratie.php
<?php
// Vul hier je MySQL database gegevens in
$db['host'] = 'localhost'; // MySQL host, 99% van de gevallen: localhost
$db['user'] = 'user'; // MySQL gebruikersnaam
$db['pass'] = 'pass'; // Wachtwoord voor bovenstaande gebruiker
$db['name'] = 'dbnaam'; // Database naam
// Hieronder hoef je niets te wijzigen
// Sessie starten
session_start();
// MySQL verbinding maken
if (!@mysql_connect($db['host'],$db['user'],$db['pass
']))
{
exit("Geen MySQL verbinding, controleer de gegevens.");
}
// MySQL database selecteren
if (!@mysql_select_db($db['name']))
{
exit("Kan database niet selecteren.");
}
// Inlog functie
// Retourneerd TRUE als user is ingelogd
function is_logged_in()
{
global $HTTP_SESSION_VARS;
if (!IsSet($HTTP_SESSION_VARS['userid']))
{
return (0);
}
return (1);
}
?>
PHP:
aanmelden.php
<?php
// Als je script werkt met deze regel bovenaan
// is het een goed script
error_reporting(E_ALL);
// Config includen om met de MySQL databeest verbinding
// te maken
include("configuratie.php");
// Eerst kijken we of er iets verstuurd is
// De submit button geven we de naam 'submit' en bevind
// zich tussen de geposte variabelen
if (IsSet($HTTP_POST_VARS['submit']))
{
// Nu gaan we alle variabelen langs
// en kijken of er een variabele is leeggelaten, zoja
// breken we het script af
foreach ($HTTP_POST_VARS as $variabele => $waarde)
{
if (!trim($HTTP_POST_VARS[$variabele]))
{
// Spaties zijn weggehaald uit de variabele
// en hij heeft nu geen waarde, afbreken dus
exit("Niet alle velden zijn ingevuld, ga terug en probeer het opnieuw.");
}
}
// Nu kijken of het email adres of de username al niet voorkomt
// in de database
$VoorkomQ = @mysql_query("SELECT COUNT(*)
FROM leden
WHERE username = '".addslashes($HTTP_POST_VARS['username'])."'
OR email = '".addslashes($HTTP_POST_VARS['email'])."'
");
$ResultsVoorkomQ = mysql_result($VoorkomQ,0);
if (!$VoorkomQ)
{
exit("Kan niets uit tabel selecteren, tabel wel aangemaakt?");
}
// Meer dan 0 resultaten; script afbreken
if ($ResultsVoorkomQ > 0)
{
exit("Je e-mail adres of gebruikersnaam is al geregistreerd.");
}
// Alle variabelen zijn gevuld, nu even de hash
// declareren om met het bevestigingsmailtje mee te sturen
// time() is altijd een uniek getal.
$hash = time();
// De user in de tabel zetten
if (!@mysql_query("INSERT INTO
leden
(username,password,email,ip,aanmelddatum,hash,
actief)
VALUES
('".addslashes($HTTP_POST_VARS['username'])."',
'".md5($HTTP_POST_VARS['password'])."',
'".addslashes($HTTP_POST_VARS['email'])."',
'".$HTTP_SERVER_VARS['REMOTE_ADDR']."',
'".time()."',
'".$hash."',
'0')
"))
{
exit("Kan niets in tabel zetten, tabel wel aangemaakt?");
}
// Nu even de user mailen
// mysql_insert_id() is de net ingevoerde ID in de tabel
mail($HTTP_POST_VARS['email'],"Bevestig registratie",
"Beste {$HTTP_POST_VARS['username']},
Je hebt je net geregistreerd op mijn site, je moet je
registratie nog even bevestigen, klik daarvoor op deze
link:
[url]http://sitenaam.nl/bevestig.php?userid=[/url]".mysql_insert_id()."&hash=$hash",
"From: Jouw sitenaam<jouw email>");
// Registratie bijna voltooid, dat zeggen we ook even vriendelijk tegen de user
echo "Je registratie is bijna voltooid, klik op de link in je mailbox om de registratie te voltooien.";
} else {
// Er is niet op submit gedrukt, dus geven we een formuliertje weer
// waar we de naam, het wachtwoord en het email adres kunnen invullen
echo "<form action=\"aanmelden.php\" method=\"post\">";
echo "Kies een gebruikersnaam: ";
echo " <input name=\"username\">";
echo "Kies een wachtwoord: ";
echo " <input name=\"password\">";
echo "Type een geldig e-mail adres in: ";
echo " <input name=\"email\">";
echo "<input type=\"submit\" name=\"submit\" value=\"Registreer je!\">";
echo "</form>";
}
?>
PHP:
bevestig.php
<?php
// Als je script werkt met deze regel bovenaan
// is het een goed script
error_reporting(E_ALL);
// Config includen om met de MySQL databeest verbinding
// te maken
include("configuratie.php");
// Kijken of er wel een userid en een hash in de adresbalk staat
if (!IsSet($HTTP_GET_VARS['userid']) || !IsSet($HTTP_GET_VARS['hash']))
{
exit("Je hebt een ongeldige link gevolgd, geen userid of hash gevonden.");
}
// Zitten die er wel, kijken of ze correct zijn
$HashIsCorrect = mysql_query("SELECT COUNT(*)
FROM leden
WHERE userid = '".$HTTP_GET_VARS['userid']."'
AND hash = '".$HTTP_GET_VARS['hash']."'
AND actief = 0
");
$IsCorrect = mysql_result($HashIsCorrect,0);
// 0 resultaten, dan klopt het niet.
if ($IsCorrect == 0)
{
exit("De hash/userid combinatie klopt niet of de registratie is al bevestigd.");
}
// User op actief zetten
mysql_query("UPDATE leden SET actief = 1 WHERE userid = '".$HTTP_GET_VARS['userid']."' AND hash = '".$HTTP_GET_VARS['hash']."'");
// Voltooid
echo "Je registratie is voltooid.";
?>
PHP:
inloggen.php
<?php
// Als je script werkt met deze regel bovenaan
// is het een goed script
error_reporting(E_ALL);
// Config includen om met de MySQL databeest verbinding
// te maken
include("configuratie.php");
// Kijken of het formulier is gesubmit
if (IsSet($HTTP_POST_VARS['submit']))
{
// Kijken of de user wel een gebruikersnaam en pass heeft ingevuld
if (!IsSet($HTTP_POST_VARS['password']) || !IsSet($HTTP_POST_VARS['username']))
{
exit("Je moet wel een password/user combinatie invullen.");
}
// Het wachtwoord is gecodeerd (md5), dus gaan we kijken of deze combi van user/pass ook in de DB bestaat
$CombiCheckQ = mysql_query("SELECT username,userid,email
FROM leden
WHERE username = '".addslashes($HTTP_POST_VARS['username'])."'
AND password = '".md5($HTTP_POST_VARS['password'])."'
AND actief = 1
");
// Kijken of er resultaten zijn, zoja, is de user ingelogd
if (mysql_num_rows($CombiCheckQ) == 0)
{
exit("Een ongeldige user/pass combinatie is ingevoerd.");
}
// Sessie registreren
$gegevens = mysql_fetch_array($CombiCheckQ);
$HTTP_SESSION_VARS['username'] = $gegevens['username'];
$HTTP_SESSION_VARS['userid'] = $gegevens['userid'];
$HTTP_SESSION_VARS['email'] = $gegevens['email'];
// Redirecten naar beveiligde_pagina.php
if (headers_sent())
{
echo "<script language=\"JavaScript\">";
echo "document.location='beveiligde_pagina.php'";
echo "</script>";
} else {
header("location: beveiligde_pagina.php");
}
// Stoppen met parsen
exit();
} else {
// Formulier voor inloggen laten zien
echo "<form action=\"inloggen.php\" method=\"post\">";
echo "Username: ";
echo " <input name=\"username\">";
echo "Password: ";
echo " <input name=\"password\" type=\"password\">";
echo "<input type=\"submit\" name=\"submit\" value=\"Log in\">";
echo "</form>";
}
?>
PHP:
beveiligde_pagina
<?php
// Als je script werkt met deze regel bovenaan
// is het een goed script
error_reporting(E_ALL);
// Config includen om met de MySQL databeest verbinding
// te maken
include("configuratie.php");
// Voorbeeld van een pagina die je kan beveiligen
if (!is_logged_in())
{
echo "Je bent niet ingelogd.";
} else {
echo "Je bent ingelogd! Welkom ".$HTTP_SESSION_VARS['username']."";
echo "Log <a href=\"uitloggen.php\">hier</a> uit.";
}
?>
PHP:
uitloggen.php
<?php
// Als je script werkt met deze regel bovenaan
// is het een goed script
error_reporting(E_ALL);
// Config includen om met de MySQL databeest verbinding
// te maken
include("configuratie.php");
// Alle session variabelen unsetten
foreach ($HTTP_SESSION_VARS as $var => $val)
{
unset($HTTP_SESSION_VARS[$var]);
}
// Alles weghalen
session_destroy();
// Gelukt!
echo "Je bent uitgelogd.";
?>