Autor | Zpráva | ||
---|---|---|---|
woreshack! Profil * |
#1 · Zasláno: 8. 3. 2008, 22:55:59
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 |
#2 · Zasláno: 8. 3. 2008, 23:05:08
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 |
#3 · Zasláno: 8. 3. 2008, 23:05:22 · Upravil/a: Str4wberry
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 |
#4 · Zasláno: 9. 3. 2008, 15:59:28
woreshack!
Nebylo by lepší místo if ($homepage!="") toto? if(empty($homepage)) |
||
Měsíček Profil |
#5 · Zasláno: 9. 3. 2008, 16:22:05
toto? if(empty($homepage))
Spíše if(!empty($homepage)) |
||
woreshack! Profil * |
#6 · Zasláno: 9. 3. 2008, 19:02:34
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 |
#7 · Zasláno: 9. 3. 2008, 19:34:44
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Ì PØI ZÁPISU DO DATABÁZE...CHYBA JE VELMI PRAVDÌPODOBNÌ NA STRANÌ WZ<BR><BR><BR>\n"; endif; } |
||
woreshack! Profil * |
#8 · Zasláno: 10. 3. 2008, 21:46:30
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 |
#9 · Zasláno: 11. 3. 2008, 16:56:48
Měsíček
Díky za opravu, nějak mi ten vykřičník vypadl. |
||
vertigo4 Profil |
#10 · Zasláno: 11. 3. 2008, 17:01:48
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ů... |
||
Časová prodleva: 7 dní
|
|||
woreshack! Profil * |
#11 · Zasláno: 18. 3. 2008, 14:14:48
To ještě dneska někdo má?;-)To teda zaplať pánbůh...
|
||
Časová prodleva: 16 let
|
0