maildomein blokkeren in aanmeldscript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Joshua Tijssen

joshua Tijssen

23/01/2010 00:10:00
Quote Anchor link
Ik heb onderstaand aanmeldscript voor mijn site, maar ik wil emaildomeinen kunnen blokkeren.
bv. @mailinator.com.
Is dit mogelijk en zo ja hoe?
Ik heb internet al rond gesnuffeld en kom niet verder dan email validatie scripts en dat is nou net niet wat ik zoek.
En aangezien degene die dit script voor mij beschikbaar heeft gesteld met de noorderzon is vertrokken kan ik me helaas ook niet bij hem melden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php /* ------------------------- */

  $login2                                       = $_POST['login2'];
  $pass                                         = $_POST['pass'];
  $passconfirm                                  = $_POST['passconfirm'];
  $email                                        = $_POST['email'];
  $email1                                       = $_POST['email1'];
  $type                                         = 1;
  $land                                         = $_POST['land'];
  $recruiter                                    = $_POST['recruiter'];
  $IP                                           = $_SERVER['REMOTE_ADDR'];
  ${"select$type"}                              = "selected";

  if(isset($_POST['submit'])) {
    $message                                        = Array(
        "Je login mag alleen A-Z, a-z, 0-9, _ en - hebben",
        "De wachtwoorden die je gaf zijn niet identiek",
        "Vul een geldig e-mail adres in",
        "Er bestaat al iemand met die E-Mail",
        "Er is al iemand met die Login",
        "Er is al iemand aangemeld op dit IP",
        "Vul een geldig E-mail adres in.",
        "Er bestaat al iemand met die E-Mail",
        "De e-mail adressen die je gaf zijn niet identiek");


    $msgnum                                        = -1;
    if(preg_match('/^[a-zA-Z0-9_\-]+$/',$login2) == 0)
      $msgnum                                        = 0;
    if($pass == "" || $pass != $passconfirm)
      $msgnum                              = 1;
    if($email == "" || $email != $email1)
      $msgnum                                         = 8;
    if(preg_match('/^.+@.+\..+$/',$email) == 0)
      $msgnum                                        = 2;
    if(preg_match('/^.+@.+\..+$/',$email1) == 0)
      $msgnum                                        = 6;
    else {
      $dbres                                        = mysql_query("SELECT `id` FROM `[users]` WHERE `login`='$login2'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                        = 4;
      $dbres                                        = mysql_query("SELECT `id` FROM `[users]` WHERE `email`='$email'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                        = 3;
      $dbres                                        = mysql_query("SELECT `id` FROM `[users]` WHERE `email`='$email1'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                        = 7;
      $dbres                                        = mysql_query("SELECT * FROM `[users]` WHERE `IP` LIKE '$IP'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                      = 5;
      $dbres                                        = mysql_query("SELECT * FROM `[users]` WHERE `IP` LIKE '$IP'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                      = 5;

        if($msgnum == -1) {
        $code                                        = rand(100000,999999);
        mysql_query("INSERT INTO `[temp]`(login,IP,code,area,time) values('$login2','$IP',$code,'signup',NOW())");
        $id                    = mysql_insert_id();

      ?>
Gewijzigd op 01/01/1970 01:00:00 door Joshua Tijssen
 
PHP hulp

PHP hulp

18/12/2024 18:15:32
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 00:12:00
Quote Anchor link
Kan je a.u.b. relevante code geven, en die tussen en plaatsen?
 
Pepijn

Pepijn

23/01/2010 00:14:00
Quote Anchor link
Kijk eens wat ik op PHP.net vond:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
  $string
= 'Hello World!';
  if(stristr($string, 'earth') === FALSE) {
    echo '"earth" not found in string';
  }

// outputs: "earth" not found in string
?>
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 00:21:00
Quote Anchor link
Ik gebruik dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// etc....
} elseif(mysql_num_rows(mysql_query("SELECT domein FROM mailblacklist WHERE '".sqlsafe(trim($domainsplit[1]))."' LIKE domein"))>=1) {
                echo "Wegens misbruik is dit mail-domein (".$domainsplit[1].") niet toegestaan. Mocht je hier meer informatie
                over willen hebben, dan kan je ons contacteren via de contact-pagina op de site.<br>
                Klik <strong><a href='/aanmelden'>hier</a></strong> om terug te gaan."
;
[
/code]
Deze moet je wel zelf in je code inpassen. En het voordeel is dat deze mailadressen of domeinen in de database staan, en makkelijker te beheren zijn.
 
Joshua Tijssen

joshua Tijssen

23/01/2010 00:33:00
Quote Anchor link
Aar dank je wel, heb mij topic aangepast en zal het eens uitproberen.
Code in mijn code invoegen is het probleem niet zo zeer, nu even stuntelen met nieuwe tabel in de database aanmaken
 
Joshua Tijssen

joshua Tijssen

23/01/2010 11:51:00
Quote Anchor link
ik heb de code ingevoerd en een tabel in de databse aangemakt met daarin het domein mailinator.com, maar als ik dan een user aanmeld met een emailadres uit dat domein word hij gewoon goedgekeurd

ik heb hem zo ingevoegd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php /* ------------------------- */

  $login2                                       = $_POST['login2'];
  $pass                                         = $_POST['pass'];
  $passconfirm                                  = $_POST['passconfirm'];
  $email                                        = $_POST['email'];
  $email1                                       = $_POST['email1'];
  $type                                         = 1;
  $land                                         = $_POST['land'];
  $recruiter                                    = $_POST['recruiter'];
  $IP                                           = $_SERVER['REMOTE_ADDR'];
  ${"select$type"}                              = "selected";

  if(isset($_POST['submit'])) {
    $message                                        = Array(
        "Je login mag alleen A-Z, a-z, 0-9, _ en - hebben",
        "De wachtwoorden die je gaf zijn niet identiek",
        "Vul een geldig e-mail adres in",
        "Er bestaat al iemand met die E-Mail",
        "Er is al iemand met die Login",
        "Er is al iemand aangemeld op dit IP",
        "Vul een geldig E-mail adres in.",
        "Er bestaat al iemand met die E-Mail",
        "De e-mail adressen die je gaf zijn niet identiek");
}
elseif(mysql_num_rows(mysql_query("SELECT domein FROM mailblacklist WHERE '".sqlsafe(trim($domainsplit[1]))."' LIKE domein"))>=1) {
                echo "Wegens misbruik is dit mail-domein (".$domainsplit[1].") niet toegestaan. Mocht je hier meer informatie
                over willen hebben, dan kan je ons contacteren via de contact-pagina op de site.<br>
                Klik <strong><a href='/aanmelden'>hier</a></strong> om terug te gaan."
; ?>
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 14:50:00
Quote Anchor link
Als je logisch kijkt gebeurt het volgende:

Als $_POST['submit'] een waarde heeft (en dus op die submitbutton is geklikt.) Dan krijg je dus een array met foutmeldingen, als er NIET is geklikt, dan controleren of het mailadres geblokkeerd is.
Dat lijkt me verre van logisch Afbeelding

Overigens raad ik aan om te controleren of er gePOST is, dan te kijken of $_POST['submit'] een waarde heeft (isset() )
Je kan die controle overigens beter afhandelen met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_SERVER['REQUEST_METHOD'] == "POST") {


Verder is de rest van de code zo goed als een enkeltje afvalbak, zo slecht en onduidelijk opgebouwd. Maar ja, dat heb je altijd met Criminals-scripts... On-onderhoudbaar.
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
 
Joshua Tijssen

joshua Tijssen

23/01/2010 20:25:00
Quote Anchor link
zoals ik al had aangegeven heeft iemand dit voor mij gedaan, alleen aangezien hij nergens meer te bekennen is sta ik met mijn rug tegen de muur.
Nu is er iemand dioe aan de lopende band nieuwe accounts aanmaakt met emaildomein @mailinator.com, dus die wil ik blokken, ik kom er alleen niet uit waar ik de code aan moet [passen om het werkend te krijgen.
Kan jij met hetgene wat ik als code heb aangegeven dit passend krijgen met jouw code erbij?
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 20:27:00
Quote Anchor link
Kijk eens logisch?
Waar gebeuren de overige controles? Mailadres check? Kijken of veld ingevuld is?
 
Joshua Tijssen

joshua Tijssen

23/01/2010 20:43:00
Quote Anchor link
dat is het probleem juist, ik ben niet bepaald thuis in php, daarom heb ik ook iemand anders dit script laten maken.

als ik probeer logisch na te denken kom ik uit op onderstaande.
Indien dit wederom niet goed is geef ik de moed op en laat ik het gewoon zoals het is en verwijder ik gewoon steeds handmatig die users

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php /* ------------------------- */

  $login2                                       = $_POST['login2'];
  $pass                                         = $_POST['pass'];
  $passconfirm                                  = $_POST['passconfirm'];
  $email                                        = $_POST['email'];
  $email1                                       = $_POST['email1'];
  $type                                         = 1;
  $land                                         = $_POST['land'];
  $recruiter                                    = $_POST['recruiter'];
  $IP                                           = $_SERVER['REMOTE_ADDR'];
  ${"select$type"}                              = "selected";

if($_SERVER['REQUEST_METHOD'] == "POST") {
    $message                                        = Array(
        "Je login mag alleen A-Z, a-z, 0-9, _ en - hebben",
        "De wachtwoorden die je gaf zijn niet identiek",
        "Vul een geldig e-mail adres in",
        "Er bestaat al iemand met die E-Mail",
        "Er is al iemand met die Login",
        "Er is al iemand aangemeld op dit IP",
        "Vul een geldig E-mail adres in.",
        "Er bestaat al iemand met die E-Mail",
        "De e-mail adressen die je gaf zijn niet identiek");


    $msgnum                                        = -1;
    if(preg_match('/^[a-zA-Z0-9_\-]+$/',$login2) == 0)
      $msgnum                                        = 0;
    if($pass == "" || $pass != $passconfirm)
      $msgnum                              = 1;
    if($email == "" || $email != $email1)
      $msgnum                                         = 8;
    if(preg_match('/^.+@.+\..+$/',$email) == 0)
      $msgnum                                        = 2;
    if(preg_match('/^.+@.+\..+$/',$email1) == 0)
      $msgnum                                        = 6;
    if(mysql_num_rows(mysql_query("SELECT domein FROM mailblacklist WHERE '".sqlsafe(trim($domainsplit[1]))."' LIKE domein"))>=1) {
                echo "Wegens misbruik is dit mail-domein (".$domainsplit[1].") niet toegestaan. Mocht je hier meer informatie
                over willen hebben, dan kan je ons contacteren via de contact-pagina op de site.<br>
                Klik <strong><a href='/aanmelden'>hier</a></strong> om terug te gaan."
;
    else {
      $dbres                                        = mysql_query("SELECT `id` FROM `[users]` WHERE `login`='$login2'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                        = 4;
      $dbres                                        = mysql_query("SELECT `id` FROM `[users]` WHERE `email`='$email'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                        = 3;
      $dbres                                        = mysql_query("SELECT `id` FROM `[users]` WHERE `email`='$email1'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                        = 7;
      $dbres                                        = mysql_query("SELECT * FROM `[users]` WHERE `IP` LIKE '$IP'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                      = 5;
      $dbres                                        = mysql_query("SELECT * FROM `[users]` WHERE `IP` LIKE '$IP'");
      if(mysql_num_rows($dbres) > 0)
        $msgnum                                      = 5;

        if($msgnum == -1) {
        $code                                        = rand(100000,999999);
        mysql_query("INSERT INTO `[temp]`(login,IP,code,area,time) values('$login2','$IP',$code,'signup',NOW())");
        $id                    = mysql_insert_id();

      ?>
Gewijzigd op 01/01/1970 01:00:00 door joshua Tijssen
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 20:48:00
Quote Anchor link
Quote:
dat is het probleem juist, ik ben niet bepaald thuis in php

En is het wel eens opgekomen om zelf eens PHP te leren. Al is het maar de basis?

Verder zou ik zeggen: Verlies niet de moed, en probeer het.
 
Joshua Tijssen

joshua Tijssen

23/01/2010 20:51:00
Quote Anchor link
ik heb nu geen andere keuze, wil het ook graag leren, maar moet zowiezo vanaf de basis beginnen en dit is wel iets meer gevorderd heb ik het idee van.
het is alleen nadelig dat nu mijn scripter weg is ik niet verder kom en iemand mij het leven zuur maakt door maar accounts te blijven aanmaken via steeds weer nieuwe mailadressen en ipadressen.
Die blok ik steeds, maar het is gewoon dweilen met de bierkraan open.
daarom had ik gehoopt dat iemand mij hier even mee kon helpen, zodat dit lek gedicht was en ik rustig verder kon
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 20:56:00
Quote Anchor link
Probeer het script en laat je ervaringen weten.
 
Joshua Tijssen

joshua Tijssen

23/01/2010 20:58:00
Quote Anchor link
gaat helemaal goed komen, tot nu toe alvast heel erg bedankt.
Kan je misschienw el aangeven of ik met mijn laast geposte code een deel in de goede richting zit?
Gewijzigd op 01/01/1970 01:00:00 door joshua Tijssen
 
- Ariën  -
Beheerder

- Ariën -

23/01/2010 21:10:00
Quote Anchor link
probeer het eens?
Je PC of de server van je hosting-partij gaat heus niet stuk.
 
Joshua Tijssen

joshua Tijssen

23/01/2010 22:37:00
Quote Anchor link
helaas wil het niet lukken, ik krijg nu onderstaande foutmelding:

Fatal error: Call to undefined function sqlsafe() in ......../signup123.php on line 62

Word met domein in "SELECT domein FROM mailblacklist " bedoeld de kolom domein in de tabel mailblacklist?
en haalt hij daar dan zelf het domein uit?
Of zie ik het nou helemaal verkeerd?
 

23/01/2010 22:44:00
Quote Anchor link
Waarom wil je dat domein blokkeren?
 
Joshua Tijssen

joshua Tijssen

23/01/2010 22:48:00
Quote Anchor link
er is een user op de game die een ban heeft gekregen en nu steeds nieuwe accounts aanmaakt met emailadressen van het domain mailinator.com en dan de forums vol spamt.
Telkens neemt hij ook een ander ip, dus ip ban heeft niet veel nut.
Momenteel verwijder ik steeds de accounts en blok ik de ip's waar hij mee online is gekomen
ik wil dus dat domein geblokkeerd hebben, zodat hij in ieder geval op die manier geen nieuwe accounts meer aan kan maken
 

23/01/2010 22:50:00
Quote Anchor link
Er ook ontzettend veel verschillende sites zoals mailinator, met andere domeinen (bieden ze ook zelf aan). Zo'n ban op dat domein helpt dus waarschijnlijk niks, net zoals dat een ban op de user en ip niks werkt.
 
Joshua Tijssen

joshua Tijssen

23/01/2010 22:54:00
Quote Anchor link
is wellicht het proberen waard.
als ik het werkend krijg met de code van aar dan kan ik die domeinen in de database zetten en scheelt dat weer een hoop werk, dan maak ik het hem steeds ;lastiger om te spammen zeg maar.
Ik krijg het alleen met geen mogelijkheid werkend, daarvoor heb ik gewoon helaas 0 php kennis
 

23/01/2010 22:57:00
Quote Anchor link
Die domeinen wisselen heel snel.
Onbegonnen werk dus.

(En bovendien, door hem op deze manieren tegen te werken blijft hij jou lastig vallen gok ik. Waarom mag ie niet meer op jou website?)
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.