:slotje:
1 Account Per IP!
-
-
Guest, wil je besparen op je domeinnamen? (ad)
-
Tel je hoeveel accounts er in de database zijn met dat IP... Als dat vijf of hoger is kan je geen account aanmaken...
-
Post het script eens waar dit in staat, dan kunnen we je beter helpen.
-
Bij registratie zal vast een query staan die met iets in de trand van $_SERVER['REMOTE_ADDR']; het IP op vraagt en in die query zal dan ook wss in de richting staan van " > 1" die aanpassen naar 5
-
PHP
$query= mysql_query("Select ip from Users where ip='".$_SERVER['REMOTE_ADDR']."'"); if(mysql_num_rows($query) >= 5){ die("Er zijn al 5 accounts geregistreerd op deze website."); }
Met zoiets als bovenstaand, zal het je geheid lukken, ik ga niet alles voorkauwen.. het kan ook nog simpeler. maar dan maak ik het jou te gemakkelijk, je moet er ook van leren namelijk.
-
Citaat van ZiraXPHP
$query= mysql_fetch_assoc(mysql_query("Select ip,COUNT(*) AS ammount from Users where ip='".$_SERVER['REMOTE_ADDR']."'")); if($query['ammount'] >= 5){ die("Er zijn al 5 accounts geregistreerd op deze website."); }
Met zoiets als bovenstaand, zal het je geheid lukken, ik ga niet alles voorkauwen.. het kan ook nog simpeler. maar dan maak ik het jou te gemakkelijk, je moet er ook van leren namelijk.
Heb de code veranderd naar wat mijn mening netter is -
ok thnx sorry dat er geen reactie kwam :p maar was eff op school
Nieuwe reactie samengevoegd met originele reactie op 21.04.11 16:28:40:PHP
Toon Meer<?php if(isset($_POST['submit']) && $_POST['submit'] == "Registreer") { $fout = array(); $match = mysql_query("SELECT id FROM users WHERE login = '" . $_POST['login'] . "'"); $dubbel = mysql_query("SELECT id FROM users WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'"); if (preg_match ("/[&<>%\+\$\*\,\. ]/i", $_POST['login'])) { $fout[] = "- Je gebruikersnaam mag geen speciale tekens bevatten"; } if(strlen($_POST['login']) > 15) { $fout[] = "- Je gebruikersnaam is te lang: max. 15 tekens"; } if(strlen($_POST['login']) < 3) { $fout[] = "- Je gebruikersnaam is te kort: min. 3 tekens"; } if(strlen($_POST['pass']) < 6) { $fout[] = "- Je wachtwoord moet uit minstens 6 tekens bestaan"; } if(strlen($_POST['pass']) > 18) { $fout[] = "- Je wachtwoord mag niet meer dan 18 tekens bevatten"; } if($_POST['pass'] != $_POST['pass_repeat']) { $fout[] = "- De wachtwoorden komen niet overeen"; } if($_POST['pass'] == $_POST['login']) { $fout[] = "- Je wachtwoord mag niet hetzelfde zijn als je gebruikersnaam"; } if(!preg_match("/.+@[a-zA-Z0-9_-]+\..+/", $_POST['email'])) { $fout[] = "- Er is geen geldig e-mail adres ingevuld"; } if(mysql_num_rows($match) > 0) { $fout[] = "- Er bestaat al iemand met deze inlognaam"; } if(mysql_num_rows($dubbel) > 0) { $fout[] = "- Je mag maar 1 account per ip registreren!"; } if(!isset($_POST['agree'])) { $fout[] = "- Je moet akkoord gaan met de regels en voorwaarden"; } if(empty($fout[0])) { $activatiecode = rand(1000000000, 9999999999); $bericht = "Hallo " . $_POST['login'] . "! Bedankt voor het registreren op " . gamenaam . "! We hebben jouw registratie succesvol verwerkt, en je kunt bijna inloggen. Het enige dat je nog hoeft te doen is op de onderstaande link klikken: http://" . url . "/index.php?p=activate&user=" . $_POST['login'] . "&code=" . $activatiecode . " Nadat je dit gedaan hebt, kun je inloggen op http://" . url . " met de volgende gegevens: Gebruikersnaam: " . $_POST['login'] . " Wachtwoord: " . $_POST['pass'] . " Veel plezier namens de crew!"; mysql_query("INSERT INTO users (login, pass, email, activatiecode, stad) VALUES('" . $_POST['login'] . "', '" . SHA1($_POST['pass']) . "', '" . $_POST['email'] . "', '" . $activatiecode . "', '" . rand(0, count($steden) - 1) . "')") or die(mysql_error()); if(isset($_GET['i'])) { if(mysql_num_rows(mysql_query("SELECT id FROM users WHERE id = '" . $_GET['i'] . "'")) > 0) { mysql_query("UPDATE users SET power = power + '5000', kogels = kogels + '20', bank = bank + '20000', callcredits = callcredits + '3' WHERE id = '" . $_GET['i'] . "'"); mysql_query("UPDATE users SET refferals = refferals + '1' WHERE id = '" . $_GET['i'] . "'"); mysql_query("INSERT INTO berichten (onderwerp, bericht, afzender, geaddresseerde, datum, outbox) VALUES('Refferal aangemeld', 'Beste crimineel,\r\n\r\nEr heeft zojuist een refferal aangemeld: " . $_POST['login'] . ". Je hebt je beloning zojuist ontvangen!\r\nMet vriendelijke groet,\r\nAnoniem.', 'Anoniem', '" . $_GET['i'] . "', '" . get_global_date("Y-m-d H:i:s") . "', 'False')"); } } mail($_POST['email'], "Registratie op " . gamenaam, $bericht, "From: " . gamenaam . " automailer <" . noreply_mail . ">"); $goed = "<div class=\"dark\"><font color=\"green\" style=\"font: bold\">Je account is succesvol aangemaakt! Er staat een activatiemailtje in je inbox.</font></div><br />"; unset($fout); } else { foreach($fout as $tekst) { @$foutje .= "<br />\n\r" . $tekst; } $fout = "<div class=\"dark\"><font color=\"red\" style=\"font: bold\">De volgende dingen gingen verkeerd:</font>" . $foutje . "</div><br />"; } } ?>
Dit is De inc.register Script -
-
Nou ben ik niet zo'n scripter, maar als het uberhoupt een functie moet hebben om maar 1 gebruiker per ip te registreren moet het toch ook IPV:
Dit zijn?:
Of zie ik het verkeerd?
Gr G.vdBosch
-
Je ziet het verkeerd
Beide werken even goed. Behalve dat bij de 2e de 0 nog meetelt. Maar als het 0 is betekend het dat er nog geen account is. Dus maak het voor het script niet uit. -
maar hij wil er 5 per ip toestaan, maximaal.
-
-
Post je huidige script eens?
Ik ben bang dat je iets weg hebt gehaald ;). -
PHP
Toon Meer<?php if(isset($_POST['submit']) && $_POST['submit'] == "Registreer") { $fout = array(); $match = mysql_query("SELECT id FROM users WHERE login = '" . $_POST['login'] . "'"); $dubbel = mysql_query("SELECT id FROM users WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'"); if (preg_match ("/[&<>%+$*,. ]/i", $_POST['login'])) { $fout[] = "- Je gebruikersnaam mag geen speciale tekens bevatten"; } if(strlen($_POST['login']) > 15) { $fout[] = "- Je gebruikersnaam is te lang: max. 15 tekens"; } if(strlen($_POST['login']) < 3) { $fout[] = "- Je gebruikersnaam is te kort: min. 3 tekens"; } if(strlen($_POST['pass']) < 6) { $fout[] = "- Je wachtwoord moet uit minstens 6 tekens bestaan"; } if(strlen($_POST['pass']) > 18) { $fout[] = "- Je wachtwoord mag niet meer dan 18 tekens bevatten"; } if($_POST['pass'] != $_POST['pass_repeat']) { $fout[] = "- De wachtwoorden komen niet overeen"; } if($_POST['pass'] == $_POST['login']) { $fout[] = "- Je wachtwoord mag niet hetzelfde zijn als je gebruikersnaam"; } if(!preg_match("/.+@[a-zA-Z0-9_-]+..+/", $_POST['email'])) { $fout[] = "- Er is geen geldig e-mail adres ingevuld"; } if(mysql_num_rows($match) > 0) { $fout[] = "- Er bestaat al iemand met deze inlognaam"; } if(mysql_num_rows($dubbel) >= 5) { $fout[] = "- Je mag maar 5 accounts per ip registreren!"; } if(!isset($_POST['agree'])) { $fout[] = "- Je moet akkoord gaan met de regels en voorwaarden"; } if(empty($fout[0])) { $activatiecode = rand(1000000000, 9999999999); $bericht = "Hallo " . $_POST['login'] . "! Bedankt voor het registreren op " . gamenaam . "! We hebben jouw registratie succesvol verwerkt, en je kunt bijna inloggen. Het enige dat je nog hoeft te doen is op de onderstaande link klikken: http://" . url . "/index.php?p=activate&user=" . $_POST['login'] . "&code=" . $activatiecode . " Nadat je dit gedaan hebt, kun je inloggen op http://" . url . " met de volgende gegevens: Gebruikersnaam: " . $_POST['login'] . " Wachtwoord: " . $_POST['pass'] . " Veel plezier namens de crew!"; mysql_query("INSERT INTO users (login, pass, email, activatiecode, stad) VALUES('" . $_POST['login'] . "', '" . SHA1($_POST['pass']) . "', '" . $_POST['email'] . "', '" . $activatiecode . "', '" . rand(0, count($steden) - 1) . "')") or die(mysql_error()); if(isset($_GET['i'])) { if(mysql_num_rows(mysql_query("SELECT id FROM users WHERE id = '" . $_GET['i'] . "'")) > 0) { mysql_query("UPDATE users SET power = power + '5000', kogels = kogels + '20', bank = bank + '20000', callcredits = callcredits + '3' WHERE id = '" . $_GET['i'] . "'"); mysql_query("UPDATE users SET refferals = refferals + '1' WHERE id = '" . $_GET['i'] . "'"); mysql_query("INSERT INTO berichten (onderwerp, bericht, afzender, geaddresseerde, datum, outbox) VALUES('Refferal aangemeld', 'Beste crimineel,rnrnEr heeft zojuist een refferal aangemeld: " . $_POST['login'] . ". Je hebt je beloning zojuist ontvangen!rnMet vriendelijke groet,rnAnoniem.', 'Anoniem', '" . $_GET['i'] . "', '" . get_global_date("Y-m-d H:i:s") . "', 'False')"); } } mail($_POST['email'], "Registratie op " . gamenaam, $bericht, "From: " . gamenaam . " automailer <" . noreply_mail . ">"); $goed = "<div class=\"dark\"><font color=\"green\" style=\"font: bold\">Je account is succesvol aangemaakt! Er staat een activatiemailtje in je inbox.</font></div>"; unset($fout); } else { foreach($fout as $tekst) { @$foutje .= "nr" . $tekst; } $fout = "<div class=\"dark\"><font color=\"red\" style=\"font: bold\">De volgende dingen gingen verkeerd:</font>" . $foutje . "</div>"; } } ?>
Probeer dit is?
-
Waarom staat deze nou op 6 dan?
Als je maar 5 gebruikers op 1 ip wil hebben moet je
Of zelfs
Met de 0 mee gerekend?
MVG G.vdBosch
-
Topic Closed! Admin Please Close This Topic!
Topic Gesloten! Admin Alsjeblieft sluit deze topic!
-
Werkt het ?
-
-
Ja het werkt dus slotje erop :slotje:
Participate now!
Heb je nog geen account? Registreer je nu en word deel van onze community!