Sto cercando un captca da inserire nel mio guestbook che però utilizza un file.txt, io non ho il DB.
Sto cercando un captca da inserire nel mio guestbook che però utilizza un file.txt, io non ho il DB.
Ciao.
Dai un occhio qui
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Si ho visto, potrebbe andar bene non riesco a seguire le istruzioni, mi puoi spiegare passo-passo?
File ramdom.php
Input page:Codice PHP:
<?php
session_start();
if (empty($_SESSION['rand_code'])) {
$str = "";
$length = 0;
for ($i = 0; $i < 4; $i++) {
// this numbers refer to numbers of the ascii table (small-caps)
$str .= chr(rand(97, 122));
}
$_SESSION['rand_code'] = $str;
}
$imgX = 60;
$imgY = 20;
$image = imagecreatetruecolor(60, 20);
$backgr_col = imagecolorallocate($image, 238,239,239);
$border_col = imagecolorallocate($image, 208,208,208);
$text_col = imagecolorallocate($image, 46,60,31);
imagefilledrectangle($image, 0, 0, 60, 20, $backgr_col);
imagerectangle($image, 0, 0, 59, 19, $border_col);
$font = "C:\WINDOWS\Fonts\ARIAL.TTF"; // it's a Bitstream font check [url]www.gnome.org[/url] for more
$font_size = 10;
$angle = 0;
$box = imagettfbbox($font_size, $angle, $font, $_SESSION['rand_code']);
$x = (int)($imgX - $box[4]) / 2;
$y = (int)($imgY - $box[5]) / 2;
imagettftext($image, $font_size, $angle, $x, $y, $text_col, $font, $_SESSION['rand_code']);
header("Content-type: image/png");
imagepng($image);
imagedestroy ($image);
?>
Questa riga la devi adattare al path del serverCodice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<input type="text" name="validator" id="validator" size="4" />
[img]random.php[/img]
<?php
if (!empty($_POST['validator']) && $_POST['validator'] == $_SESSION['rand_code']) {
unset($_SESSION['rand_code']);
}
?>
</body>
</html>
$font = "C:WINDOWSFontsARIAL.TTF";![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Ho messo la parte "imput page" nel form del guestbook, e la parte "ramdom.php" nel mio file ins.php, poi ho messo tutto online ma a video appare la casellina ma manca l'immagine dei caratteri.
Che modifica faccio a
$font = "C:WINDOWSFontsARIAL.TTF";
il sito è www.xxx.altervista.org ed ho Alice.
Qra ho messo questo nel form
e ho creato un file captca-image.php e ci ho messo l'altro codice, poi ho messo nella cartella del guestbook il font arial.ttf.Codice PHP:
[img]captca-image.php[/img]
<input type="text" name="validator" id="validator" size="5" />
<font size="2" color="red" face="arial">Scrivi il codice</font>
<?php
if (!empty($_POST['validator']) && $_POST['validator'] == $_SESSION['rand_code']) {
unset($_SESSION['rand_code']);
}
?>
Infine ho modificato la variabile così ma l'immagine non si vede:
Codice PHP:
$font = "http://miosito.altervista.org/guestbook/arial.ttf";
Ciao.
Se non sbaglio questa riga
deve essere un path non un url in questo modo (server Linux) ie$font = "http://miosito.altervista.org/guestbook/arial.ttf";
su server win c:\\ etc etc .$font = " /usr/X11R6/lib/X11/fonts/";
Secondo me devi chiedere al tuo host.
Puoi fare una prova in locale per vedere se è
quello il problema (non l'ho provato sul server
ma in locale funziona).
Per sicurezza testalo sia su IE che su FF
(a volte e non capisco xchè IE mi dà dei
problemi).
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Questo è il nuovo codice, ma nel form non compare l'immagine captca
nel form
nel file captca-image.phpCodice PHP:
...[img]captca-image.php[/img]
<input type="text" name="validator" id="validator" size="5" />
<font size="2" color="red" face="arial">Scrivi il codice</font>
<?php
if (!empty($_POST['validator']) && $_POST['validator'] == $_SESSION['rand_code']) {
unset($_SESSION['rand_code']);
}
?>...
Come vedi $font = "arial.ttf"; l'ho messo così perchè il file l'ho inserito nela stessa cartella.Codice PHP:
<?php
//Captca code
session_start();
if (empty($_SESSION['rand_code'])){
$str = "";
$length = 0;
for ($i = 0; $i < 4; $i++){
// this numbers refer to numbers of the ascii table (small-caps)
$str .= chr(rand(97, 122));
}
$_SESSION['rand_code'] = $str;
}
$imgX = 60;
$imgY = 20;
$image = imagecreatetruecolor(60, 20);
$backgr_col = imagecolorallocate($image, 238,239,239);
$border_col = imagecolorallocate($image, 208,208,208);
$text_col = imagecolorallocate($image, 46,60,31);
imagefilledrectangle($image, 0, 0, 60, 20, $backgr_col);
imagerectangle($image, 0, 0, 59, 19, $border_col);
$font = "arial.ttf";
$font_size = 10;
$angle = 0;
$box = imagettfbbox($font_size, $angle, $font, $_SESSION['rand_code']);
$x = (int)($imgX - $box[4]) / 2;
$y = (int)($imgY - $box[5]) / 2;
imagettftext($image, $font_size, $angle, $x, $y, $text_col, $font, $_SESSION['rand_code']);
header("Content-type: image/png");
imagepng($image);
imagedestroy ($image);
//Fine Captca code
Ciao.
Le uniche cose che mi vengono in mente
sono queste:
Provato codice e funziona.Codice PHP:
// IE ha dei problemi con i png provalo anche su altri browser e prova
// con il jpeg
header('Content-type: image/jpeg');
imagejpeg($image);
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
ciao
dove hai:
$font = "arial.ttf";
devi mettere il percorso assoluto sul server.
Per esempio io ho dovuto mettere:
$font = "/w1/clienti/blablabla/ftp/www/html/arial.ttf";
![]()