Autor Zpráva
ja duck
Profil
Ahoj,
jsem v PHP úplný začátečník. Mám php formulář s kontrolou proti spamu, který funguje, ale místo slova se mě zobrazí pouze "díra".
Potřeboval bych pomoci jak to udělat. Posilám začátek scriptu na formulář a script php na Captcha. Dostal jsem k němu i dvě složky
sample-words-en a sample-words-es. Toto bylo napsáno v README :
Tento skript čte standardní slova souboru (jedno slovo na řádek) a uloží
nové slovo soubor s formátu potřebného na Cool-php-capcha skriptu.
Pro zabránění vzdálený webový přístup, bude výstupní soubor bude PHP skript
a musí mít příponu .php

Použití: importwords.php <infile> <outfile>

Příklad: importwords.php english.txt en.php

<?php
session_start();
if (!empty($_REQUEST['captcha'])) 
{
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) 
    {
        $oznameni= 'Please enter the text correctly from the picture';
    } 
    else 
    {
    if($_SERVER["REQUEST_METHOD"] == "POST")
{
// promenne
$name = $_POST["name"];
$email = $_POST["email"];
$txt = $_POST["txt"];
$moje_adresa = "info@neco.com"; // zmente na svoji adresu
$predmet = "Info text"; // zde nastavite co bude uvedeno v predmetu
$zprava = ("Name: " . $name . "\n\n" . "Text: \n" . $txt . "\n\nSender: " . $email);
// odeslani emailu
mail($moje_adresa,$predmet,$zprava);

$oznameni= 'The message was sent !';
}
    }
    unset($_SESSION['captcha']);
}
?>


<!DOCTYPE HTML>
<html>
<head>
<title>Formulář</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<div style="margin:20px ">
<form method="post">

script Captcha:
<?php


/** Word lengths */
$minLength = 5;
$maxLength = 8;





if ($argc < 3) {
    die("Usage: $argv[0] infile outfile\n");
}





if (!file_exists($argv[1])) {
    die("File '$argv[1]' doesn't exists\n");
}



$fp  = fopen($argv[1], "r");
$fp2 = fopen($argv[2], "w");
fwrite($fp2, "<?php /*\n");

while ($lin = fgets($fp)) {
    $lin    = trim(strtolower($lin));
    $strlen = strlen($lin);
    if ($strlen>=$minLength && $strlen<=$maxLength && preg_match("/^[a-z]+$/", $lin)) {
        $lin = str_pad($lin, $maxLength);
        fwrite($fp2, "$lin\n");
    }
}
fwrite($fp2, "*/    ?>\n");

fclose($fp);
fclose($fp2);



?>
Enko
Profil
Co zkusit něco jednoduššího na implementaci? Třeba toto codeforgeek.com/2014/12/google-recaptcha-tutorial. Je tam odkaz i na oficiální dokumentaci.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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