Die in JAVA SCRIPT?

Status
Niet open voor verdere reacties.

rikietje

Gebruiker
Lid geworden
17 nov 2010
Berichten
154
Hallo ik heb een vraagje, op internet wordt ik er niet veel wijzer van.

Ik heb het volgende script :

PHP:
<script type="text/Javascript">
<!--

function antibot(){
	var antibotcheck = prompt("Hallo, om spam te voorkomen moet je het volgende woord opgeven : gastenboek.", "")
	if(antibotcheck == "gastenboek" ){
	}
	else{
		alert('AntiBot check mislukt. Bericht is niet toegevoegd aan het gastenboek.')
		// Hier moet een die() komen??
	}
}
//-->
</script>

Op de plaats waar staat hier moet een die() komen.
Zou ik een soort van code willen. (als dat bestaat) die gelijk is aan de die(); in PHP.

Ofwel, dat de pagina niet verder gaat met het uitvoeren van de rest van het script.

Ik wil dat als mijn bezoekers een bericht in het gastenboek plaatsen ze als controle woord gastenboek moeten invullen om spam tegen te gaan.

Het gaat dan om de volgende pagina

PHP:
<html> 
<head> 
<title>Rik Beernink : Gastenboek </title> 
<link rel="Stylesheet" type="text/css" href="main_css.css" /> 
<script type="text/Javascript"> 
<!-- 

function antibot(){ 
    var antibotcheck = prompt("Hallo, om spam te voorkomen moet je het volgende woord opgeven : gastenboek.", "") 
    if(antibotcheck == "gastenboek" ){ 
    } 
    else{ 
        alert('AntiBot check mislukt. Bericht is niet toegevoegd aan het gastenboek.') 
        // Hier moet een die() komen?? 
    } 
} 
//--> 
</script> 



</head> 
<body> 
<?php 
require ("require_menu.php"); 
require ("require_favicon.php"); 
require ("require_connect_database.php"); 
require ("require_reclame01.php"); 
echo "<br />"; 
echo "<div class='div_text_left' > 
Welkom op het gastenboek.<br /> 
Het is hier mogelijk om een berichtje achter te laten op de website! <br /><br /> 
Het zou leuk zijn als je hier commentaar over de website achterlaat!</div>"; 
echo "<br /><br />"; 

if ($_SERVER['REQUEST_METHOD'] == "POST"){ 
    if (antibotcheck == "true"){ 
    echo "Bedankt, je bericht is toegevoegd aan het gastenboek!<br /><br />"; 
    $naam = $_POST['naam']; 
    $bericht = $_POST['bericht']; 
    $datum = date("F j, Y, g:i a"); 
     
    mysql_query("INSERT 
    INTO tbl_guestbook  
    VALUES ('','$naam', '$bericht', '$datum')") 
    or die(mysql_error());  
     
    echo "<script type='text/javascript'> 
    alert('Het bericht is succesvol toegevoegd aan het gastenboek!') 
    </script>"; 
    } 
     
    else { 
    die(); 
    } 

     
     

         
} 
else { 
  
    echo "<script type='text/javascript'> 
    function formValidator(){ 
         var naam = document.getElementById('naam'); 
         var bericht = document.getElementById('bericht'); 
          
         if(isAlphabet(naam, 'Vul alstublieft uw naam in.')){ 
             if(berichtcheck(bericht, 10, 250)){ 
                 return true; 
             } 
         } 
         return false; 
     } 
      
     function isAlphabet(elem, helperMsg){ 
    var alphaExp = /^[a-zA-Z]+$/; 
    if(elem.value.match(alphaExp)){ 
        return true; 
    }else{ 
        alert(helperMsg); 
        elem.focus(); 
        return false; 
        } 
    } 
     
    function berichtcheck(elem, min, max){ 
    var uInput = elem.value; 
    if(uInput.length >= min && uInput.length <= max){ 
        return true; 
    }else{ 
        alert('Het bericht moet uit minstens 10 karakters en maximaal 250 karakters bestaan.'); 
        elem.focus(); 
        return false; 
    } 
} 
     


     
    </script>"; 
    echo "<div class='div_text_home'>"; 
    echo "<form action='' method='POST' onsubmit='return formValidator()'> 
    <br /> 
    Naam <input type='text' name='naam' id='naam' /> 
    <br /> 
    Bericht <textarea name='bericht' id='bericht' rows='5' ></textarea>  
    <br /><br /> 
    <input type='submit' name='submit' onclick='antibot()' /> 
    </form></div>"; 
     
    echo "<br /><br />"; 
     
         
} 

echo "<table border =\"1\" align = \"center\">"; 
echo "<p><tr><th>Bericht nummer</th>"; 
echo "<th>Naam</th>"; 
echo "<th>Bericht</th>"; 
echo "<th>Datum</th>"; 

$result = mysql_query("SELECT * FROM tbl_guestbook order by ID DESC") 
or die(mysql_error());   

while ($row = mysql_fetch_array($result)) { 
echo "<tr>"; 
echo "<td>"; 
echo $row['ID']; 
echo "<td>"; 
echo $row['naam']; 
echo "</td>"; 
echo "<td>"; 
echo $row['bericht']; 
echo "</td><td>"; 
echo $row['datum']; 
echo "</td></tr></p>"; 
} 
echo "</table>"; 


?> 
</body> 
</html>

Ik wil dus dat bovenin de <head> op de plaats waar moet een die komen staat. Een code komt die gelijk is aan die(); in php. Wat er voor zorgt dat het script stopt.

Bestaat dit?
 
Het nadeel van javascript is wel dat als een gebruiker javascript uit heeft staan je functie niet zal werken.

in plaats daarvan zou ik ervoor kiezen om 2 hidden fields te maken.

1) bv name spambot en die laat je leeg. (Spambots zullen die wel vullen met tekst en gebruikers zien hem niet, dus blijft hij leeg)

2) bv name uni en die geef je een uniek nummer die je met php genereer.
bv md5(date(ymd)."KeyString"). die sla je ook op in een SESSION.
Op de verwerkingspagina vergelijk je de $_POST tegen de $_SESSION
(zo zorg je dat de verwerkingspagina niet zonder je form gebruikt kan worden)
Aan het einde van de verwerkingspagina vernietig je de session.

er zullen nog wel meer dingen zijn die je kunt doen. Maar dit zijn er 2 die het volgens mij al aardig dicht timmeren.
 
Het nadeel van javascript is wel dat als een gebruiker javascript uit heeft staan je functie niet zal werken.

in plaats daarvan zou ik ervoor kiezen om 2 hidden fields te maken.

1) bv name spambot en die laat je leeg. (Spambots zullen die wel vullen met tekst en gebruikers zien hem niet, dus blijft hij leeg)

2) bv name uni en die geef je een uniek nummer die je met php genereer.
bv md5(date(ymd)."KeyString"). die sla je ook op in een SESSION.
Op de verwerkingspagina vergelijk je de $_POST tegen de $_SESSION
(zo zorg je dat de verwerkingspagina niet zonder je form gebruikt kan worden)
Aan het einde van de verwerkingspagina vernietig je de session.

er zullen nog wel meer dingen zijn die je kunt doen. Maar dit zijn er 2 die het volgens mij al aardig dicht timmeren.

Oke dit vind ik een erg goed idee.

IK heb al wat op internet rond lopen kijken naar PHP sessions en denk dat dit redelijk te halen is. Nu heb ik een paar vragen.

Vraag 1 :Een session start ik toch gewoon simpelweg met :
PHP:
session_start();


Vraag 2: Genereer ik dat unieke nummer dus als volgt:

PHP:
 $uni = md5(date(ymd)."KeyString")

Vraag 3: Hoe zou je het voorbeeld bij 1 over het veld spambot aanmaken? Ik snap niet echt wat je hiermee bedoeld.

Vraag 4: Is zon sessie en dit hele idee ook mogelijk, als de procespagina op dezelfde pagina is?

(Hiervoor gebruik ik nu de :
PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST"){

Alvast hartelijk bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan