Autor Zpráva
sandoklan
Profil *
Zdravim, jsem naprosty amater v php, chtel bych na svych strankach pouzit antispamovou ochranu na inzerci (kterou jsem nedelal ja), hodlam se pouzit tuto metodu http://suplik.petnik.cz/funkcni-javasriptova-bariera-na-komentarovy-sp am-qxxq628.html, ale potreboval bych poradit jak vlozit tento prikaz:

if ($_POST["robot"]*1==6)
// pridej prispevek

nevim jak ho zkombinovat s prikazem odeslani formulare:

<input type="submit" value="Vložit inzerát" />

dekuji moc za rady
srigi
Profil
Toto si uloz do nejakeho suboru .php na server
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cz" lang="cz">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <meta http-equiv="content-language" content="cz" />
  <title>Formular</title>
  <link rel="stylesheet" type="text/css" media="screen" href="style.css" />
</head>
<body>
<div id="wrapper">

<?php
  if (isset($_POST['submit'])) {
    if ($_POST['robot'] == 6) {
      // tu spracujes prjate vysledky
      echo "<pre>"; print_r($_POST);
      die;
    }

    else {
      // tu vykopnes robota
      echo "You're spam robot, get out!";
      die;
    }

  }

  else {

?>
  <form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post">
  <label for="usrname">Zadej jméno:</label><input type="text" name="usrname" /><br />
  <label for="age">Zadej věk:</label><input type="text" name="age" /><br />
  <label for="sex">Zadej pohlaví:</label><input type="text" name="sex" /><br />

  <p id="spamprotirobotum">Ochrana proti spamu. Kolik je dvakrát tři?
  <input type="text" name="robot" value="" id="protirobotum">
  </p>

<script>
  document.getElementById("protirobotum").value="6";
  document.getElementById("spamprotirobotum").style.display = "none";
</script>
<p><input type="submit" value="Odeslat" name="submit"></p>
</form>

<?php } ?>

</div>
</body>
</html>


Je to komplet aj XHTML kodom. Skusat ochranu je mozne napr. pomocou Firefoxu a rozsirenia NO-SCRIPT. Enjoy.
sandoklan
Profil *
nevim jestli jsem to dobre pochopil. Dejme tomu ze mam na serveru slozku Inzerce a v ni mam soubor formular.php, ktery odesila vyplnene polozky od uzivatelu. Do teto slozky vlozim soubor napr. past.php, ktery bude obsahovat vyse uvedeny kod, a to by meloé pomoci?
srigi
Profil
No ten kod vyssie som uviedol na edukativne ucely aby sa pochopilo ako to funguje. Je to samostatna mikro-aplikacia. Ako to integrovat do vasej aplikacie, to sa z prveho (ani tretieho) prispevku neda urcit.
sandoklan
Profil *
No ja tomu moc nerozumim a nejak se mi to nepovedlo tam ten antispam vlozit, aby formular fungoval. Zde je kod meho formulare:

<?
require "general.php";

sablona_up('center');
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
</style>
<div align="left"><a href="http://www.web.com/inzerce.php" class="style17">(zpět na inzerci) </a>
  <h1 align="center">
    <span class="style17"><Br>
      <span class="style18">Vložit inzerát </span></span>
  <FORM ACTION="shrnuti.php" METHOD="POST">
  </h1>
</div>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<TABLE BORDER=2 ALIGN="center" CELLPADDING=4 bordercolor="#FFFFFF" bgcolor="#E6E673" FRAME=BOX RULES=NONE>
<TR><TD class="style17"><span class="style19">Nadpis:
</span>
<th class="style17"><INPUT TYPE=TEXT NAME=nadpis SIZE=30>
<TR><TD class="style17"><span class="style19">Kategorie:
</span>
<th class="style17"><SELECT NAME=kategorie SIZE=1>
  <option value="0">- Vyberte kategorii -</option>
  <option value="Prod&aacute;m">Prod&aacute;m</option>
  <option value="Koup&iacute;m">Koup&iacute;m</option>
  <option value="Vyměn&iacute;m">Vyměn&iacute;m</option>
    </SELECT>
<TR><TD class="style17"><span class="style19">Jméno: </span>
<th class="style17"><INPUT TYPE=TEXT NAME=jmeno SIZE=30>
<TR><TD class="style17"><span class="style19">Telefon:
</span>
<th class="style17"><INPUT NAME=telefon TYPE=TEXT value="+420" SIZE=30>
<TR><TD class="style17"><span class="style19">Email:
</span>
<th class="style17"><INPUT TYPE=TEXT NAME=email SIZE=30>
<TR><TD class="style17"><span class="style19">Kraj:
</span>
<th class="style17">
  <SELECT NAME=kraj SIZE=1>
   <option value="0">- Vyberte lokalitu -</option>
   <option value="Praha">Praha</option>
   <option value="Středočeský;">Středočeský</option>
   <option value="Ústecký;">Ústecký</option>
   <option value="Liberecký;">Liberecký</option>
   <option value="Karlovarsk&yacute;">Karlovarsk&yacute;</option>
   <option value="Kr&aacute;lovehradeck&yacute;">Kr&aacute;lovehradeck&yacute;</o ption>
   <option value="Pardubick&yacute;">Pardubick&yacute;</option>
   <option value="Plzeňsk&yacute;">Plzeňsk&yacute;</option>
   <option value="Jihočesk&yacute;">Jihočesk&yacute;</option>
   <option value="Vysočina">Vysočina</option>
   <option value="Jihomoravsk&yacute;">Jihomoravsk&yacute;</option>
   <option value="Olomouck&yacute;">Olomouck&yacute;</option>
   <option value="Moravskoslezsk&yacute;">Moravskoslezsk&yacute;</option>
   <option value="Zl&iacute;nsk&yacute;">Zl&iacute;nsk&yacute;</option>
   <option value="Bratislavsk&yacute;">Bratislavsk&yacute;</option>
   <option value="Trnavsk&yacute;">Trnavsk&yacute;</option>
   <option value="Nitranský">Nitriansky</option>
   <option value="Banskobystrick&yacute;">Banskobystrick&yacute;</option>
   <option value="Košick&yacute;">Košick&yacute;</option>
   <option value="Prešovsk&yacute;">Prešovsk&yacute;</option>
   <option value="Žilinks&yacute;">Žilinsk&yacute;</option>
   <option value="Trenčinský">Trenčiansky</option>
   <option value="Zahranič&iacute;">Zahraničí</option>
  </SELECT>
<TR><TD class="style17"><p class="style19">Obsah<br />
  Inzerátu:
    </p>
    <th class="style17"><textarea name=inzerat cols=30 rows=5 wrap="physical"></textarea>
  <TR><TR>
    <TD class="style17">  
    <th class="style17"><input type="submit" value="Vložit inzerát" />
    </th>
</TABLE>
<?
sablona_down();
?>
srigi
Profil
Ten overovaci kod
if ($_POST['robot'] == 6) {
      // tu spracujes prjate vysledky
      echo "<pre>"; print_r($_POST);
      die;
    }

    else {
      // tu vykopnes robota
      echo "You're spam robot, get out!";
      die;
    }
je treba sikovne vlozit do suboru shrnuti.php.

A kod pre formular
<p id="spamprotirobotum">Ochrana proti spamu. Kolik je dvakrát tři?
  <input type="text" name="robot" value="" id="protirobotum">
  </p>

<script>
  document.getElementById("protirobotum").value="6";
  document.getElementById("spamprotirobotum").style.display = "none";
</script>
vlozit napr. hned pod tento riadok
  <FORM ACTION="shrnuti.php" METHOD="POST">
sandoklan
Profil *
Děkuju moc a ještě kam bych mohl vložit do toho shrnuti.php? :
<?
require "general.php";

sablona_up('center');
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<a href="http://www.web.com/inzerce.php"> <font face="Trebuchet MS">(zpět na inzerci)</font> </a>
<h3 align="left">&nbsp;</h3>
<h2 align="center"><font size="5"><b><font face="Arial, Helvetica, sans-serif">Vá&scaron; inzerát byl uložen v následujícím znění:</font></b></font></h2>
<h1>
  <?
//zpracujeme data
$nadpis=$_POST["nadpis"];
$kategorie=$_POST["kategorie"];
$jmeno=$_POST["jmeno"];
$telefon=$_POST["telefon"];
$email=$_POST["email"];
$kraj=$_POST["kraj"];
$inzerat=$_POST["inzerat"];

$datum=Date("Y.m.d H:i:s");
pripoj_db();
mysql_query("INSERT INTO inzerce2 values ('','$kategorie', '$jmeno', '$telefon', '$email', '$kraj', '$inzerat', '$nadpis', '$datum');");
?>
</h1>
<TABLE BORDER=2 ALIGN="CENTER" CELLPADDING=4 bordercolor="#FFFFFF" bgcolor="#E6E673" FRAME=BOX RULES=NONE>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Datum:</font>
</strong>
<TD><?echo Date("d.m.Y H:i:s");?>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Nadpis: </font>
</strong>
<TD><?echo $nadpis?>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Kategorie: </font>
</strong>
<TD><?echo $kategorie?>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Jmno:</font>
</strong>
<TD><?echo $jmeno?>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Telefon:</font>
</strong>
<TD><?echo $telefon?>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Email:</font>
</strong>
<TD><?echo $email?>
<TR><TD><strong><font face="Arial, Helvetica, sans-serif">Kraj: </font>
</strong>
<TD><?echo $kraj?>
<TR>
  <TD><strong><font face="Arial, Helvetica, sans-serif">Inzer&aacute;t:</font>
</strong>
  <TD><?echo $inzerat?>
</TABLE>
srigi
Profil
Nejako takto:
<h1>
  <?
//zpracujeme data
if ($_POST['robot'] != 6) {
  echo "<h3>Nepresla ochrana proti spamu! Dovidenia.</h3>";
  die;
}

$nadpis=$_POST["nadpis"];
$kategorie=$_POST["kategorie"];
$jmeno=$_POST["jmeno"];
$telefon=$_POST["telefon"];
$email=$_POST["email"];
$kraj=$_POST["kraj"];
$inzerat=$_POST["inzerat"];
sandoklan
Profil *
Dekuju moc, vyzkousim a snad to pomuze :)

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: