Autor Zpráva
luma64
Profil
Pozdravujem ! Chcem vás poprosiť o radu. Našiel som na webe šikovnú aplikáciu na vytvorenie a validáciu captcha. Pozostáva z 2 php stránok. Jedna je index.php a v druhej (captcha.php) je funkcionalita na vytvorenie captcha a vrátenie náhodne vygenerovaného reťazca.
V svojej aplikácii mám jednu php stránku, ktorá v sebe obsahuje mnoho funkcií (externe.php), kde kontrolujem prístupy, formáty hodnôt atď. Chcel by som do nej pridať aj spomenutú stránku (captcha.php), ktorá by bola ako funkcia, ktorá je pri vytváraní a validácii volaná. Neviem ako ju z index.php zavolať aby sa mi obrázok vygeneroval.

Keď ich mám ako dve samostatmé stránky: index.php a captcha.php vtedy funkcionalita aj s validáciou funguje korektne. Knihovňa GD je implementovaná.
Stav, ktorý sa mi nespráva korektne je nasledovný.


Index.php
<?php
..
session_start();// Must be there at top of the page where we want to use session variables. 
$image;
---
$_SESSION['count'] = time();
?>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<h2>Captcha Image Verification</h2>
<form name="stmt" method="post">
<table>
<tr>
<td>Verification code :</td>
<td><input type="text" name="vercode" size="10" required="required" />&nbsp;
<img src="captcha()" style="margin-top: 1%">
</td>
</tr>

<tr>
<td><input type="submit" name="submit" value="Submit" /></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['submit']))
{
    $vercode = $_POST["vercode"];
    $sess_vercode = $_SESSION["vercode"];
    if ($_POST["vercode"] != $_SESSION["vercode"] OR $_SESSION["vercode"]=='')
    {
        echo "<script>alert('Kontrolny údaj nie je správny');</script>" ;
    } 
    else
    {
        echo "<script>alert('Kontrolny údaj je správny');</script>" ;
    }    
}
?>

externe.php
<?php 
function captcha()
{
session_start(); 
$text = rand(10000,99999); 
$_SESSION["vercode"] = $text; 
$height = 25; 
$width = 65;   
$image_p = imagecreate($width, $height); 
$black = imagecolorallocate($image_p, 0, 0, 0); 
$white = imagecolorallocate($image_p, 255, 255, 255); 
$font_size = 14; 
imagestring($image_p, $font_size, 5, 5, $text, $white); 
imagejpeg($image_p, null, 80); 
}
?>


Moderátor Kajman: Mezi značky [pre] a [/pre] vkládejte jen kódy.
Keeehi
Profil
<img src="externe.php?captcha" style="margin-top: 1%">

No a za definici funkce přidat její volání v případě, že je potřeba.
function captcha() {
    ...
}
if(isset($_GET['captcha'])) {
    captcha();
    exit;
}
luma64
Profil
No, vyskúšal som som čo som mohol. ... nepodarilo sa mi. Este mi nie je ale jasne, kam vlozit kusok kodu
if(isset($_GET['captcha'])) {
    captcha();
    exit;
}
Keeehi
Profil
luma64:
Este mi nie je ale jasne, kam vlozit kusok kodu
Tak se podívej, kam jsem ho dal já ;)
luma64
Profil
Dakujem !

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:

0