Gå til innhold

phpBB spam (captcha)


Anbefalte innlegg

Jeg har et forum som blir spammet noe helt jævelig mye. Saken er det at jeg vil ha en captcha som du må taste inn når du kommer: domene/phpBB2/index.php Altså captchaen jeg bruker: http://www.helgeprat.com/getimage.php den må du altså taste inn når du kommer til index.php siden. Vil dette hjelpe?

 

 

Denne delen skjekker om den er rett:

	//--------------------------------------------------------------------------
//---------   Sjekker først om CGI-variabel 'captcha' kommer fra skjemaet.
//---------   I så fall har bruker trykket Submit-knappen
//--------------------------------------------------------------------------

if (isset ( $_POST [ 'captcha' ] )) {
	if ($_POST [ 'captcha' ] != $_SESSION [ 'captcha' ]){
		echo '<p>FEIL kode</p>';
		exit;
	}
	else {
		unset ($_SESSION['captcha']);			// This is important if you use stream mode!
		//----   CAPTCHA OK
		echo '<p">Korrekt kode</p>';	
	}
}

 

 

Kan dere helst komme med eksemplet som er ferdige? :D

 

 

Som dette: http://www.helgeprat.com/diskusjon.php

Endret av Tagliano
Lenke til kommentar
Videoannonse
Annonse
Jeg har et forum som blir spammet noe helt jævelig mye. Saken er det at jeg vil ha en captcha som du må taste inn når du kommer: domene/phpBB2/index.php Altså captchaen jeg bruker: http://www.helgeprat.com/getimage.php den må du altså taste inn når du kommer til index.php siden. Vil dette hjelpe?

 

 

Denne delen skjekker om den er rett:

	//--------------------------------------------------------------------------
//---------   Sjekker først om CGI-variabel 'captcha' kommer fra skjemaet.
//---------   I så fall har bruker trykket Submit-knappen
//--------------------------------------------------------------------------

if (isset ( $_POST [ 'captcha' ] )) {
	if ($_POST [ 'captcha' ] != $_SESSION [ 'captcha' ]){
		echo '<p>FEIL kode</p>';
		exit;
	}
	else {
		unset ($_SESSION['captcha']);			// This is important if you use stream mode!
		//----   CAPTCHA OK
		echo '<p">Korrekt kode</p>';	
	}
}

 

 

Kan dere helst komme med eksemplet som er ferdige? :D

 

 

Som dette: http://www.helgeprat.com/diskusjon.php

 

...

Lenke til kommentar
Jeg har et forum som blir spammet noe helt jævelig mye. Saken er det at jeg vil ha en captcha som du må taste inn når du kommer: domene/phpBB2/index.php Altså captchaen jeg bruker: http://www.helgeprat.com/getimage.php den må du altså taste inn når du kommer til index.php siden. Vil dette hjelpe?

 

 

Denne delen skjekker om den er rett:

	//--------------------------------------------------------------------------
//---------   Sjekker først om CGI-variabel 'captcha' kommer fra skjemaet.
//---------   I så fall har bruker trykket Submit-knappen
//--------------------------------------------------------------------------

if (isset ( $_POST [ 'captcha' ] )) {
	if ($_POST [ 'captcha' ] != $_SESSION [ 'captcha' ]){
		echo '<p>FEIL kode</p>';
		exit;
	}
	else {
		unset ($_SESSION['captcha']);			// This is important if you use stream mode!
		//----   CAPTCHA OK
		echo '<p">Korrekt kode</p>';	
	}
}

 

 

Kan dere helst komme med eksemplet som er ferdige? :D

 

 

Som dette: http://www.helgeprat.com/diskusjon.php

 

...

 

INGEN som har noen ideer?? Trenger dere mer info: SKRIK UT!!!

Lenke til kommentar
Er greit å google litt før du spør om noen kan gjøre ting for deg..

Tok meg 2 sek å finne dette.. How to add a custom CAPTCHA to phpBB2

 

Hvis du hadde lest, hadde du funnet ut at det IKKE var det jeg var ute etter.

 

Poenget mitt var ikke å gi deg en eksakt løsning, men å få deg til å lese litt slik at du kan løse det selv...

 

Hvorfor tvinge alle som leser forumet til å taste inn en kode? er det ikke nok å ha den ved registrering for å unngå at robot'er registrerer seg og spam'er? hvorfor ikke legge til CAPTCHA ved innlogging slik at bare de som skal poste må taste inn kode?

Lenke til kommentar
Er greit å google litt før du spør om noen kan gjøre ting for deg..

Tok meg 2 sek å finne dette.. How to add a custom CAPTCHA to phpBB2

 

Hvis du hadde lest, hadde du funnet ut at det IKKE var det jeg var ute etter.

 

Poenget mitt var ikke å gi deg en eksakt løsning, men å få deg til å lese litt slik at du kan løse det selv...

 

Hvorfor tvinge alle som leser forumet til å taste inn en kode? er det ikke nok å ha den ved registrering for å unngå at robot'er registrerer seg og spam'er? hvorfor ikke legge til CAPTCHA ved innlogging slik at bare de som skal poste må taste inn kode?

 

det du linkt til førte meg jo ikke på rett spor en gang. Siden skal altså være slik: http://www.helgeprat.com/diskusjon.php Om du taster inn riktig kode blir du overført til en annen side f.eks "blblb.php"

 

 

phpBB var bare et eksempel. Bare glem det.

Lenke til kommentar
det du linkt til førte meg jo ikke på rett spor en gang. Siden skal altså være slik: http://www.helgeprat.com/diskusjon.php Om du taster inn riktig kode blir du overført til en annen side f.eks "blblb.php"

 

 

phpBB var bare et eksempel. Bare glem det.

 

Bestem deg hva du mener da mann.. Du nevner jo spesifikt at du skal ha captcha til forumet ditt, og linken viser til et phpBB2 forum...

 

Jeg har et forum som blir spammet noe helt jævelig mye. Saken er det at jeg vil ha en captcha som du må taste inn når du kommer: domene/phpBB2/index.php Altså captchaen jeg bruker: http://www.helgeprat.com/getimage.php den må du altså taste inn når du kommer til index.php siden.

 

Hvis jeg har forstått deg rett nå, så ønsker du noe slik som dette

 

Legg dette inn i diskusjon.php:

if (isset($_POST['captcha'])) {
if ($_POST['captcha'] != $_SESSION['captcha']) {
	echo '<p>FEIL kode</p>';
	exit;
}
else {
	unset($_SESSION['captcha']);// This is important if you use stream mode!
	//----   CAPTCHA OK
	$_SESSION['captcha_ok'] = true;

//Overføre bruker til en annen side
	header("Location: http://www.helgeprat.com/blblb.php");
}
}

 

Dette legger du inn på hver side du vil beskytte med captcha:

//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
//Sende bruker tilbake til captcha-sjekk
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

 

Har ikke testet om det fungerer, men det skal være ganske korrekt.

Lenke til kommentar
det du linkt til førte meg jo ikke på rett spor en gang. Siden skal altså være slik: http://www.helgeprat.com/diskusjon.php Om du taster inn riktig kode blir du overført til en annen side f.eks "blblb.php"

 

 

phpBB var bare et eksempel. Bare glem det.

 

Bestem deg hva du mener da mann.. Du nevner jo spesifikt at du skal ha captcha til forumet ditt, og linken viser til et phpBB2 forum...

 

Jeg har et forum som blir spammet noe helt jævelig mye. Saken er det at jeg vil ha en captcha som du må taste inn når du kommer: domene/phpBB2/index.php Altså captchaen jeg bruker: http://www.helgeprat.com/getimage.php den må du altså taste inn når du kommer til index.php siden.

 

Hvis jeg har forstått deg rett nå, så ønsker du noe slik som dette

 

Legg dette inn i diskusjon.php:

if (isset($_POST['captcha'])) {
if ($_POST['captcha'] != $_SESSION['captcha']) {
	echo '<p>FEIL kode</p>';
	exit;
}
else {
	unset($_SESSION['captcha']);// This is important if you use stream mode!
	//----   CAPTCHA OK
	$_SESSION['captcha_ok'] = true;

//Overføre bruker til en annen side
	header("Location: http://www.helgeprat.com/blblb.php");
}
}

 

Dette legger du inn på hver side du vil beskytte med captcha:

//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
//Sende bruker tilbake til captcha-sjekk
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

 

Har ikke testet om det fungerer, men det skal være ganske korrekt.

 

 

Hmm, funket dårlig.

 

Slik ser "diskusjon.php" ut:

 

<?php

//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
//Sende bruker tilbake til captcha-sjekk
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

if (isset($_POST['captcha'])) {
if ($_POST['captcha'] != $_SESSION['captcha']) {
	echo '<p>FEIL kode</p>';
	exit;
}
else {
	unset($_SESSION['captcha']);// This is important if you use stream mode!
	//----   CAPTCHA OK
	$_SESSION['captcha_ok'] = true;

//Overføre bruker til en annen side
	header("Location: http://www.helgeprat.com/");
}
}


echo('<img border="1px" src="./getimage.php">');

echo('<input type="text" size="4" name="captcha">');

echo('<input type="submit" name="submit_skjema" value="Lever besvarelse">');

?>

 

Hva er gale? :S

Lenke til kommentar
Skulle den siste delen din inn i koden i det hele tatt?

 

Ja, men ikke i samme script som den andre.

 

//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

Virker ikke som at du skjønner hva denne kodesnutten gjør..

Den sjekker om variabelen captcha_ok er satt i session og dersom den ikke er det så blir brukeren sendt til captcha-siden. Den stopper også resten av scriptet fra å bli utført.

Denne koden bruker du på alle andre sider enn der du har captcha-siden. Dette er for å unngå at folk unngår captcha-sjekke ved å gå direkte til sidene du prøver å beskytte.

Lenke til kommentar
Skulle den siste delen din inn i koden i det hele tatt?

 

Ja, men ikke i samme script som den andre.

 

//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

Virker ikke som at du skjønner hva denne kodesnutten gjør..

Den sjekker om variabelen captcha_ok er satt i session og dersom den ikke er det så blir brukeren sendt til captcha-siden. Den stopper også resten av scriptet fra å bli utført.

Denne koden bruker du på alle andre sider enn der du har captcha-siden. Dette er for å unngå at folk unngår captcha-sjekke ved å gå direkte til sidene du prøver å beskytte.

 

 

Om jeg fjerner:

//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

fra diskusjon.php skjer det ingenting om jeg trykker "ok" knappen.

Endret av Tagliano
Lenke til kommentar
Om jeg fjerner:
//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

fra diskusjon.php skjer det ingenting om jeg trykker "ok" knappen.

Kan du poste hele diskusjon.php her?

Lenke til kommentar
Om jeg fjerner:
//Sjekke om bruker ikke er validitert med captcha
if (!isset($_SESSION['captcha_ok'])) {
header("Location: http://www.helgeprat.com/diskusjon.php");
exit();
}

fra diskusjon.php skjer det ingenting om jeg trykker "ok" knappen.

Kan du poste hele diskusjon.php her?

 

Jeg har postet diskusjon.php lengre oppe i tråden.

Lenke til kommentar
Jeg har postet diskusjon.php lengre oppe i tråden.

 

Er det alt som er i filen diskusjon.php?

 

Den produserer ikke ei gyldig html-side om det er alt den inneholder.

Hvor har du <html>, <head>, og <body> elementene? eller har du droppet disse?

 

<input type="text" size="4" name="captcha">
<input type="submit" name="submit_skjema" value="Lever besvarelse">

Må ligge i et form-element for at det skal skje noe. Form-elementet må inneholde en action-attributt som sier hvilken side vi vil sende data til. Form-elementet må også inneholde attributten method="post" som sier hvilken metode vi skal benytte for å sende data. Da du henter data via $_POST['captcha'] må du bruke POST som metode i formen.

 

F.eks

 

<form name="skjema" action="diskusjon.php" method="post">
<input type="text" size="4" name="captcha">
<input type="submit" name="submit_skjema" value="Lever besvarelse">
</form>

 

Alt dette er veldig elementært i både php og html...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...