login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hoe blokkeer je een domeinnaam in mailform ? (Opgelost)

Offline k1978 - 17/09/2008 12:06
Avatar van k1978Nieuw lid Hoi ,

Momenteel heb ik het mailform al een beetje aangepast, ( ip adres meesturen naar de database) .. Maar daarmee is het momenteel nog niet opgelost. De persoon ( gebruikt altijd dezelfde domeinnaam , maar telkens een ander ip adres )..
Misschien is dat een spambot ... ? Ken daar niet zoveel van .

Is het mogelijk om een domainnaam te blokkeren in het mailform ? Bijvoorbeeld wanneer @kereza.com ingevult wordt deze beschouwd wordt als een ongeldig emailadres ?

Thanks,
Kris

13 antwoorden

Gesponsorde links
Offline marten - 17/09/2008 12:13
Avatar van marten Beheerder Na de submit van je formulier ga je exploden op een @. Je krijgt dan een array terug met wat voor de @ staat en wat er na. Je kan dan aan de hand daarvan controleren voordat je een vervol actie gaat maken.
Offline k1978 - 17/09/2008 12:16 (laatste wijziging 17/09/2008 12:22)
Avatar van k1978 Nieuw lid Hoi Marten,

in de php file heb ik de volgende code staan :
  1. if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$posts['e-mail']))



kan ik daar dan de waarde : @kereza.com bijvoegen
Offline marten - 17/09/2008 12:19
Avatar van marten Beheerder zet je code even tussen code tags. 4e button van links in de ubb hier. Dat staat wat netter.
Offline Martijn - 17/09/2008 13:12 (laatste wijziging 17/09/2008 13:17)
Avatar van Martijn Crew PHP
  1. $email="emailtje@voorbeeld.com"; // hier uiteraard de form mail
  2. $verbodenEmailsArray=array ("domein1.nl","voorbeeld.com");
  3.  
  4. $emailCheck=explode("@",$email);
  5. //$emailCheck[0] -> emailtje
  6. //$emailCheck[1] -> voorbeeld.com
  7. if(in_array($emailCheck[1],$verbodenEmailsArray)){echo "kthnxbye";}
Offline k1978 - 17/09/2008 14:33
Avatar van k1978 Nieuw lid hoi DeviourSoul,

die code die u heeft geplaatst waar mag ik die juist plaatsen ?

dit is de een deel van de code ( voor emailadres )die staat bij het formulier van de website :

  1. $posts[$key] = htmlentities(strip_tags($value));
  2.  
  3. if(empty($value) && in_array($key,$verplicht))
  4. {
  5. $errors[] = $key;
  6. }
  7. }
  8.  
  9. if(!empty($errors))
  10. {
  11. foreach($errors as $error)
  12. {
  13. echo '<p>'.ucfirst($error).' is een verplicht veld!</p>';
  14. }
  15. }else{
  16.  
  17. if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$posts['e-mail']))
  18.  
  19. {
  20. echo '<p>Sorry, dit email adres accepteer ik niet!</p>';
  21. }else{
  22. foreach($_POST as $key => $value)
  23. {
  24. $posts[$key] = quote_smart(htmlentities(strip_tags($value)));
  25. }


Alvast bedankt voor te reageren,
Kris
Offline henver - 17/09/2008 17:58 (laatste wijziging 17/09/2008 18:07)
Avatar van henver HTML gevorderde De code van DeviourSoul werkt inderdaad wanneer je last hebt van een beperkt aantal bots. Wanneer je in de toekomst echter (zonder dat je handmatig de domeinnamen moet ingeven) meer last zou hebben, kan je misschien beter één van volgende mogelijkheden gebruiken:

1. Je maakt een extra invoerveld dat je verbergt. Nadat het formulier gepost is, ga je kijken of dat veld ingevuld is. Als het ingevuld is, wil het zeggen dat het formulier is ingevuld door een bot (doordat mensen het invoerveld niet kunnen zien).

Invoerveld:
  1. <input type="text" style="visibility: hidden;" name="controle">


Controle:
  1. if(!isset($_POST['controle'])){
  2. // De rest van je controle / Inbrengen in de database
  3. }else{
  4. // Hier een melding dat het posten mislukt is en eventueel het ip-adres in de database zetten
  5. }


2. CAPTCHA (genoeg scriptjes te vinden op SiteMasters)
Offline k1978 - 17/09/2008 20:43 (laatste wijziging 18/09/2008 11:44)
Avatar van k1978 Nieuw lid Hoi Henver,

Ik heb uw code ingevoegd in de website , werkt op het eerste gezicht prima te zijn. Maar ik ben niet zeker van het volgende..

Als ik het goed had , heb ik een extra veld in de database aangemaakt met naam : controle (hiervoor heb ik varchar 90 gebruikt).



Kris
Offline Martijn - 18/09/2008 11:57 (laatste wijziging 18/09/2008 11:57)
Avatar van Martijn Crew PHP nee dat hoef je niet te doen. Ik zal je een snel voorbeeldje geven

  1. if(isset($_POST['opslaan']) && empty($_POST['ohjee'])){
  2. echo"je mag door";
  3. }
  4.  
  5. /// of:
  6.  
  7. if(isset($_POST['opslaan'])){
  8. if(!empty($_POST['ohjee'])){echo"fout!";}
  9. else{
  10. echo"je mag door";
  11. }
  12. }
  1. <form method='post' action='pagina.php'>
  2. <input type='text' name='naam' />
  3. <input type='text' name='berichtje' />
  4. <input type='submit' name='opslaan value='Opslaan!' />
  5. <input type='text' name='ohjee' style="visibility: hidden;" />
  6. </form>
Offline Kr4nKz1n - 18/09/2008 13:09
Avatar van Kr4nKz1n Onbekend
  1. If($_SERVER['REQUEST_METHOD'] == 'POST')
  2. {
  3. $aForbiddenDomains = Array('domain.nl', 'enzo.nl');
  4. $sEmail = Explode('@', $_POST['email']);
  5.  
  6. If(In_Array($sEmail[1], $aForbiddenDomains))
  7. {
  8. echo 'Je domein is verboden.';
  9. }
  10. Else
  11. {
  12. echo 'Goed genoeg';
  13. }
  14. }
Offline k1978 - 19/09/2008 00:22
Avatar van k1978 Nieuw lid Beste Kr4nKz1n,

Ik heb uw code toegevoegd in het formuliertje , bij :

Array heb ik tussen de haakjes een test domeinnaam geplaatst ( gewoon om zelf even te testen ) maar het blijkt niet te werken.

geeft gewoon na input : goed genoeg , advertentie is geplaatst.

maar toch bedankt om te reageren net als alle anderen..

groeten,
kris
Offline jc2 - 19/09/2008 11:57
Avatar van jc2 PHP interesse Kr4nkzin's oplossing werkt gewoon hoor, althans bij mij wel
Offline Kr4nKz1n - 19/09/2008 13:32
Avatar van Kr4nKz1n Onbekend Ik wou hem eerst inbouwen in jouw script, maar dat is een zooitje :S
Offline k1978 - 20/09/2008 15:31
Avatar van k1978 Nieuw lid Hoi iedereen ,

het probleem is opgelost ! Het was inderdaad een spambot die via het hidden field ook gegevens na liet.
Heb enkele toepassingen gebruikt naast het hidden field uit deze topic. Maar door collega op het werk die meer ervaring heeft in php en scripts dan ikzelf ben ik tot een oplossing gekomen om de spambot uit te schakelen.

Alvast nogmaals dank aan iedereen voor de moeite !!

Greets,
Kris
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.247s