Autor Zpráva
woreshack!
Profil *
Aho lidi...Mám problém s antispamovou ochranou na návštěvní knize. Někde jsem okoukal výtečnej způsob, ale nedaří se mi ho zprovoznit...Nuže, věc se má takto:

U formulářů (email, text, jméno atp. )je jeden input skrytý. ( <input id="homepage" type="text" name="homepage" />)
Přičemž je skrytý pomocí neviditelné třídy v css.
Princip spočívá v tom, že naivní robot vyplní políčko...A to když je vyplněné, příspěvek se neodešle...Jednoduše geniální...Ale stále mi to z nepochopitelného důvodu nejde...

Zkoušel jsem to jednoduše podmínkou:
<?
// Antispam
    if ($homepage!="") {
      $vysledek = "FALSE";
       echo "Jste spammer a já to o Vás vím...<BR>"; 
     
}
?>

Ale nějak se to nedaří...Přitom když se políčko zaplní hodí to echo ale do databáze se to stejně přidá...:-(
Problém bude asi v tom, že přesně nevím, kam tu podmínku umístit...Už jsem zkoušel tolik kombinací, že jsem se to nakonec musel vzdát a poprosit Vás...

Zde jsem si dovolil umístit zdroják...

Děkuji mnohokrát za jakoukoliv radu...
Alphard
Profil
buď trochu drasticky takhle
if ($homepage!="") die ("Jste spammer a já to o Vás vím...");


nebo musí být celý zbytek v podmínce
Str4wberry
Profil
Odpovídám woreshack!:
Protože:
1) Splní se podmínka if ($homepage!="").
2) Vypíše se „Jste spammer a já to o Vás vím...“.
3) Ověří se, zda není zpráva prázdná — if (!$text==""):
4) Uloží se do databáze.

Stačí celé vložení do databáze obalit do else { vložení do databáze }. Nebo funkci exit().
oogi
Profil
woreshack!
Nebylo by lepší
místo
if ($homepage!="")

toto?
if(empty($homepage))
Měsíček
Profil
toto? if(empty($homepage))

Spíše if(!empty($homepage))
woreshack!
Profil *
TAK JSEM ZKUSIL VŠECHNY VAŠE DRAHOCENNÉ RADY, ALE STÁLE SE MI TO NĚJAK NEDAŘÍ...:-(
Udělal jsem to podle rady Str4wberryho(omlouvám se za skloňování;-)...

Takže to nyní vypadá takto:
if ($homepage!="") {
      $vysledek = FALSE ;
      echo "<b>woreshack: </b>Jste spammer a já to o Vás vím...<BR>"; 
      }
       	
if (!$text=="") 
else {
@$vysledek = MySQL_DB_Query($db, "insert into mendik_forum values ('LAST_INSERT_ID()','$cas','$name','$text')");
}
if (!$vysledek) 
echo "<b>woreshack: </b>DOŠLO K CHYBĚ PŘI ZÁPISU DO DATABÁZE...CHYBA JE VELMI PRAVDĚPODOBNĚ NA STRANĚ WZ<BR><BR><BR>\n";
       	    


Což mi přijde logický...ale teď to prozměnu hlásí nějakou syntaktickou chybu...Kontroloval jsem to snad 100krát, ale hází mi to chyby na lajnách, kde kód pokračuje(ne v tomhle úseku...jakoby se to pralo s něčím za tím...)

Tady k náhlednutí zdroják aktualizovaný o Vaše rady...

P.S.:Děkuji mnohokrát a zároveň se omlouvám...S Péhápéčkem experimentuju teprve krátce, a stále ni dělá problémy syntaxe...:-(
Alphard
Profil
Udělal jsem to podle rady Str4wberryho
neudělal, myslel to jinak

tady máš opravenou původní verzi, bude to rychlejší
// Antispam
if (isset ($_POST['homepage']) && $homepage!="") {
$vysledek = "FALSE";
echo "<b>woreshack: </b>Jste spammer a já to o Vás vím...<BR>"; 
}
else
{
if (!$text==""):

$cas = time("U");
@$vysledek = MySQL_DB_Query($db, "insert into kristina_forum values ('LAST_INSERT_ID()','$cas','$name','$text')");
if (!$vysledek) echo "<b>woreshack: </b>DOŠLO K CHYB&Igrave; P&Oslash;I ZÁPISU DO DATABÁZE...CHYBA JE VELMI PRAVD&Igrave;PODOBN&Igrave; NA STRAN&Igrave; WZ<BR><BR><BR>\n";

endif;
}
woreshack!
Profil *
Tak Vám chlapci mnohokrát děkuji za Váš čas...:-)Všechno klape O.K....Vidím, že je ještě na čem pracovat;-)
Mějte se a smějte se...
oogi
Profil
Měsíček
Díky za opravu, nějak mi ten vykřičník vypadl.
vertigo4
Profil
woreshack!
hmm ale mě to tak geniální nepřipadá pro ty co budou chtít přidat příspěvek bez zapnutých stylů...
woreshack!
Profil *
To ještě dneska někdo má?;-)To teda zaplať pánbůh...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: