Ongewenste (lege) berichten plaatsen in Gastboek
ook heeft hij er een filter in gebouwd die controleert of er geen url's in de velden ingevuld zijn of onzedelijke woorden. is dat wel het geval dan wordt het script niet verder verwerkt. indien het bericht wel geldig is wordt het bijgewerkt en tevens een mail verstuurd met bericht zodat hij weet of er wat bijgeschreven is.
nu wil het nog steeds gebeuren dat er wel bericht bijgeschreven wordt maar dat bericht is leeg. hier wordt ook op gecontroleerd of de velden wel invoer hebben. alle velden zijn leeg en ook geen IP adres komt boven water.
Ik weet niet waar dat vandaan komt en hoe dit ontstaat en het belangrijkste : hoe vangen we dat af
herkent iemand dit probleem en welke truc moeten we toepassen om dit te kunnen blokeren.?
Het kan werkelijk aan van alles liggen. Het makkelijkste is als je de relevante code plaatst en een linkje naar het gastenboek. Dan is het probleem en de oplossing het makkelijkst en snelst aan te dragen.
De relevante code zou zijn het gedeelte waar het fout gaat (het controleren dus). Waar en hoe worden de velden gecontroleerd?
Gewijzigd op 01/01/1970 01:00:00 door Arend a
Of je server ondersteunt geen super globals(geen ip)?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$query= "INSERT INTO tabel (kolom1, kolom2, kolom3) VALUES ('".$waarde1."', '".$waarde2."' , '".$waarde3."')";
$result = mysql_query($query);
if($result && mysql_affected_rows($result) == 1){
echo 'Bijgewerkt';
}
else{
trigger_error(mysql_error(). '<br />In query: '.$query;
}
?>
$query= "INSERT INTO tabel (kolom1, kolom2, kolom3) VALUES ('".$waarde1."', '".$waarde2."' , '".$waarde3."')";
$result = mysql_query($query);
if($result && mysql_affected_rows($result) == 1){
echo 'Bijgewerkt';
}
else{
trigger_error(mysql_error(). '<br />In query: '.$query;
}
?>
http://www.10872.08jn.thinkquest.nl/
er wordt geen gebruik gemaakt van mysql maar de data wordt direct in een html bestand gezet. Dit is dus de eenvoudige versie en dat moet ook want ze zijn 12 jaar
code ingekort op 1 veld
de controle code ziet er als volgt uit:
Code (php)
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
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
<?php
//Het formulier guestbook_new.php is ingevuld en verzonden
if(isset($_POST['GWVeroveraars'])){
//HTML- en PHP-tags verwijderen
$name=strip_tags($_POST['name']);
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
//controleren url=http en ongewenste taal uit de strings indien aanwezig afbreken
include('filter.inc.php');
//*** invoer controleren ****
//Geen echte naam opgegeven
if(strlen(trim($name))<5){
$error_msg="Typ uw naam";
}
//Extra Check op invoer naam omdat er toch nog steeds lege velden worden weggeschreven
if(trim($name)==""){
$error_msg="Typ uw naam";
}
}
//*** Einde controle ****
if($error_msg){
//inhoud klopt niet - foutmelding weergeven en velden niet verwerken
$message ="<br>Helaas kunnen we uw bericht niet in ons gastenboek opnemen ivm onvolledige gegevens:<br><br>";
$message.=$error_msg;
$message.="<br><br>Klik op <a href=javascript:history.back(1)>Vorige</a> om alle velden in te vullen.<br><br>";
else
// gastenboek opmaken en email versturen
}
>?
//Het formulier guestbook_new.php is ingevuld en verzonden
if(isset($_POST['GWVeroveraars'])){
//HTML- en PHP-tags verwijderen
$name=strip_tags($_POST['name']);
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
//controleren url=http en ongewenste taal uit de strings indien aanwezig afbreken
include('filter.inc.php');
//*** invoer controleren ****
//Geen echte naam opgegeven
if(strlen(trim($name))<5){
$error_msg="Typ uw naam";
}
//Extra Check op invoer naam omdat er toch nog steeds lege velden worden weggeschreven
if(trim($name)==""){
$error_msg="Typ uw naam";
}
}
//*** Einde controle ****
if($error_msg){
//inhoud klopt niet - foutmelding weergeven en velden niet verwerken
$message ="<br>Helaas kunnen we uw bericht niet in ons gastenboek opnemen ivm onvolledige gegevens:<br><br>";
$message.=$error_msg;
$message.="<br><br>Klik op <a href=javascript:history.back(1)>Vorige</a> om alle velden in te vullen.<br><br>";
else
// gastenboek opmaken en email versturen
}
>?
Gewijzigd op 01/01/1970 01:00:00 door Jonet L