Beste CP leden,
Ik wil graag in mijn aanmeld script dat hij controleert op IP-adres. Je kunt dus maar 1 account per ip-adres maken. hoe kun je dit het beste verwerken in je aanmeld script?
Aanmeld script
PHP
<?
// maak de database connectie
if (!@mysql_select_db("......", @mysql_connect("..........", "...............", "...................")))
{
echo "Er kon geen connectie worden gemaakt met de database.";
exit();
}
// functie om het e-mail adres te controleren op geldigheid
// ten eerste of de parameters goed zijn
// ten tweede of het domein achter het apestaartje bestaat
function check_email($mail)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
{
$email_adres = $mail;
$email = explode("@", $email_adres);
if (gethostbyname($email[1]) == $email[1])
$valid = "no";
}
else
$valid = "no";
return $valid;
}
// functie om een random key aan te maken
function makekey($num)
{
// genereer het random paswoord
mt_srand((double)microtime()*1000000);
// loop totdat het $pass(woord) dezelfde lengte heeft als $num
while (strlen($pass) <= $num)
{
$i = chr(mt_rand (0,255));
if (eregi("^[a-z0-9]$", $i))
$pass = $pass.$i;
}
// return het random paswoord
return ($pass);
}
// defineer de tabel in een variabele
$table = "users";
// defineer het activatie URL adres
// BEGIN DE ACTIVATIE URL MET HTTP://!
// EINDIG DE ACTIVATIE URL --ZONDER-- SLASH (/)
$activatie_url = "http://www.maffiasolution.v3host.be";
// bekijk of de username al niet in gebruik is
if ($HTTP_POST_VARS["submit"] && $HTTP_POST_VARS["login"] && $HTTP_POST_VARS["pass"] && $HTTP_POST_VARS["email"] && !check_email($HTTP_POST_VARS["email"]))
{
$sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]'";
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1)
$usrname = 1;
}
// bekijk of alle velden zijn ingevuld
if ($usrname || !$HTTP_POST_VARS["submit"] || !$HTTP_POST_VARS["login"] || !$HTTP_POST_VARS["pass"] || !$HTTP_POST_VARS["email"] || check_email($HTTP_POST_VARS["email"]))
{
if ($HTTP_POST_VARS["submit"])
echo "<p><b>U heeft niet alle velden ingevuld, uw e-mail adres is niet juist of de login naam is al in gebruik.</b></p>";
echo "
<html>
<head>
<title>Registreren</title>
</head>
<body>
<form method=\"post\" action=\"$PHP_SELF\">
Login naam:<br>
<input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>
Wachtwoord:<br>
<input type=\"text\" name=\"pass\" size=\"20\" maxlength=\"20\"><br>
E-mail adres:<br>
<input type=\"text\" name=\"email\" size=\"20\"><br>
<input type=\"submit\" name=\"submit\" value=\"Registreren\">
</form>
</body>
</html>";
}
// je weet nu dat alle velden ingevuld zijn
else
{
$insert_login = addslashes($HTTP_POST_VARS[login]);
$insert_pass = md5($HTTP_POST_VARS[pass]);
$key = makekey(5);
// zet de gegevens in de database
$sql = "INSERT INTO $table (id, login, pass, email, activeer) VALUES ('', '$insert_login', '$insert_pass', '$HTTP_POST_VARS[email]', '$key')";
$res = mysql_query($sql);
// kijk of het invoegen in de database goed ging
if ($res)
{
$aan = $HTTP_POST_VARS[email];
$subject = "Account activatie";
$van = "Maffiasolution <[email protected]>";
$bericht = "===========================================\n";
$bericht .= "Account activeren\n";
$bericht .= "===========================================\n\n";
$bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
$bericht .= "geactiveerd worden.\n\n";
$bericht .= "Uw login naam: $HTTP_POST_VARS[login]\n";
$bericht .= "Uw wachtwoord: $HTTP_POST_VARS[pass]\n\n";
$bericht .= "Uw wachtwoord is gecodeerd opgeslagen en kan dus \n";
$bericht .= "niet worden opgevraagt. Schrijf dus uw wachtwoord goed op \n";
$bericht .= "Activatie URL:\n";
$bericht .= "$activatie_url/activeer.php?email=$aan&key=$key\n\n";
$bericht .= "Bedankt voor het registreren.\n\n";
$bericht .= "===========================================\n";
$bericht .= "Einde automatisch gegenereerde bericht\n";
$bericht .= "===========================================";
// kijk of de e-mail verstuurd kan worden
if (mail($aan, $subject, $bericht, "From: $van"))
{
echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";
echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
echo "account eerst activeren voordat u kunt inloggen.</p>";
}
// als het e-mail niet verstuurd kan worden, geef dan een error bericht
else
{
echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";
echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
}
}
// als het niet goed ging
else
{
echo "<p>Uw account is niet aangemaakt.</p>";
echo "<p>Probeer het a.u.b. nogmaals. Werkt het vervolgens weer niet, neemt dan contact op.</p>";
}
}
?>
Toon Meer
Login script
PHP
<?
session_start();
// maak de database connectie
if (!@mysql_select_db(".........", @mysql_connect("..........", "...............", "..............")))
{
echo "Er kon geen connectie worden gemaakt met de database.";
exit();
}
// defineer de tabel in een variabele
$table = "users";
// bekijk of de gene al is ingelogd
if ($HTTP_SESSION_VARS["ingelogd"] && !$loguit)
{
echo "<p>U bent ingelogd. U kunt nu nog niks ;).</p>";
echo "<p><a href=\"$PHP_SELF?loguit=1\">uitloggen</a></p>";
}
// uitloggen
elseif ($HTTP_GET_VARS["loguit"])
{
session_unregister(ingelogd);
echo "<p>U bent uitgelogd.</p>";
echo "<p><a href=\"$PHP_SELF\">inloggen</a></p>";
}
// bekijk of het formulier verzonden is en de gegevens juist zijn
elseif ($HTTP_POST_VARS["submit"] && $HTTP_POST_VARS["login"] && $HTTP_POST_VARS["pass"])
{
// encrypt pass om te matchen met encrypte pass in de database
$passwd = md5($HTTP_POST_VARS[pass]);
// selecteer login/pass uit de database en match ze met ingevoerde gegevens
$sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]' AND pass = '$passwd' AND activeer IS NULL";
$res = mysql_query($sql);
// bekijk of de gegevens juist zijn
if (mysql_num_rows($res) >= 1)
{
// registreer sessie (of cookie)
$ingelogd = mysql_result($res, 0);
session_register(ingelogd);
// setcookie("ingelogd", "$ingelogd", time() + 1 * 86400);
echo "<p>U bent succesvol ingelogd.</p>";
echo "<p>Ga <a href=\"$PHP_SELF\">verder</a>.</p>";
echo "<p><a href=\"$PHP_SELF?loguit=1\">uitloggen</a></p>";
}
// zo niet, geef foutmelding
else
{
echo "<p>U heeft een ongeldige login naam of wachtwoord ingevuld.</p>";
echo "<p>Ook kan het zijn dat uw account nog niet is geactiveerd.</p>";
echo "<p>Probeert u het <a href=\"$PHP_SELF\">opnieuw</a>.</p>";
}
}
// toon formulier
else
{
echo "<form method=\"post\" action=\"$PHP_SELF\">";
echo "Login naam:<br>";
echo "<input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>";
echo "Wachtwoord:<br>";
echo "<input type=\"password\" name=\"pass\" size=\"20\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"inloggen\">";
echo "</form>";
}
?>
Toon Meer
:cheer: