Помощник
|
Почему не работает капча?? |
dimjan4
|
Сообщение
#1
|
||
|
|
||
|
|||
Eclipse_hb |
6.7.2008, 22:01;
Ответить: Eclipse_hb
Сообщение
#2
|
|
GD library есть на хостинге ?
|
|
|
dimjan4
|
Сообщение
#3
|
|
Вот какой хостинг: http://www.ayola.net/
|
|
|
Eclipse_hb |
6.7.2008, 22:46;
Ответить: Eclipse_hb
Сообщение
#4
|
|
Поддержка PHP 5 и GDLib есть на нем, а какую ошибку выдает каптча
$fuente = './image2.ttf'; путь правильный ?
|
|
|
dimjan4
|
Сообщение
#5
|
|
Всё правильно!
|
|
|
Webmaster_hb |
7.7.2008, 12:19;
Ответить: Webmaster_hb
Сообщение
#6
|
|
dimjan4, так а ошибка то какая ? если не выдается в браузере посмотрите логи и выложите саму ошибку
|
|
|
dimjan4
|
Сообщение
#7
|
|
Ну вот смотрите: вот один скрипт,(регистрации) где должна отображаться капча:
<? session_start(); ?> <? include('header.php'); ?> <? if(isset($_COOKIE["usNick"]) && isset($_COOKIE["usPass"])) { ?> <b><a href="#" onClick="window.location.reload()">Reload Page</a></b> <? include('footer.php'); ?> <? exit(); } ?> <? // incluimos archivos necesarios require('config.php'); //require('admin/funciones.php'); if (isset($_POST["username"])) { if( strtolower($_POST['code'])!= strtolower($_SESSION['texto'])){ echo "<br><br>SECURITY CODE ERROR... "; include('footer.php'); exit(); } // Declaramos las variables $username = $_POST["username"]; $password = $_POST["password"]; $cpassword = $_POST["cpassword"]; $email = $_POST["email"]; $cemail = $_POST["cemail"]; $pemail = $_POST["pemail"]; $country = $_POST["country"]; // comprobamos que no haya campos en blanco if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL|$cemail==NULL|$pemail==NULL|$country==NULL) { echo "All Fields Required"; }else{ // sanitizamos las variables $username= uc($username); $password = uc($password); $cpassword = uc($cpassword); $email = limpiar($email); $cemail = limpiar($cemail); $pemail = limpiar($pemail); $country = limpiar($country); // limitamos el numero de caracteres $username=limitatexto($username,15); $password=limitatexto($password,15); $cpassword=limitatexto($cpassword,15); $email=limitatexto($email,100); $cemail=limitatexto($cemail,100); $pemail=limitatexto($pemail,100); $country=limitatexto($country,15); // comprobamos que tengan un minimo de caracteres minimo($username); minimopass($password); // їCoinciden las contraseсas? if($password!=$cpassword) { echo "Passwords Do Not Match"; }else{ // їCoinciden los emails? if($email!=$cemail) { echo "Emails Do not Match"; }else{ // Comprobamos que sea un email valido ValidaMail($email); // Comprobamos que sea un email valido ValidaMail($pemail); // Comprobamos que no se haya creado otra cuenta desde la misma ip $laip = getRealIP(); if($laip!="127.0.0.1") { $checkip = mysql_query("SELECT ip FROM tb_users WHERE ip='$laip'"); $ip_exist = mysql_num_rows($checkip); } if ($ip_exist>0) { echo "Error: You have already created an account."; }else{ // Comprobamos que el nombre de usuario, email y el email de AlertPay no existan $checkuser = mysql_query("SELECT username FROM tb_users WHERE username='$username'"); $username_exist = mysql_num_rows($checkuser); $checkemail = mysql_query("SELECT email FROM tb_users WHERE email='$email'"); $email_exist = mysql_num_rows($checkemail); $checkpemail = mysql_query("SELECT pemail FROM tb_users WHERE pemail='$pemail'"); $pemail_exist = mysql_num_rows($checkpemail); if ($email_exist>0|$username_exist>0) { echo "Username or Email Already in Use."; }else{ if ($pemail_exist>0) { echo "Your AlertPay Address is Already in Use."; }else{ // Si se ha introducido un referer comprobamos que exista if ($_POST["referer"] != "") { // Sanitizamos la variable $referer = limpiar($_POST["referer"]); $referer=limitatexto($referer,15); $checkref = mysql_query("SELECT username FROM tb_users WHERE username='$referer'"); $referer_exist = mysql_num_rows($checkref); if ($referer_exist<1) { // En caso de no existir el referer damos un mensaje de error echo "Error: The referrer you entered doesn't exist"; include('footer.php');exit(); }else{ // Si todo parece correcto procedemos con la inserccion $sqlz = "SELECT * FROM tb_users WHERE username='$referer'"; $resultz = mysql_query($sqlz); $myrowz = mysql_fetch_array($resultz); $numero=$myrowz["referals"]; $sqlex = "UPDATE tb_users SET referals='$numero' +1 WHERE username='$referer'"; $resultex = mysql_query($sqlex); } } // Si todo parece correcto procedemos con la inserccion $joindate=time(); $query = "INSERT INTO tb_users (username, password, ip, email, pemail, referer, country, joindate) VALUES('$username','$password','$laip','$email','$pemail','$referer','$country','$joindate')"; mysql_query($query) or die(mysql_error()); echo "You have been registered correctly <b>$username</b>. Now you can <a href=\"login.php\">login</a>."; } } } } } } // En caso de no haber sido enviado los datos mostramos el formulario }else{ ?> <div align="center"><div id="form"> <form action="register.php" method="POST"> <fieldset><legend> Все поля являются обязательными для заполнения </legend> <table width="400" border="0" align="center"> <tr> <td width="150" align="left"><p><label>Логин</label></p></td> <td width="250" align="left"><input type='text' size='15' maxlength='25' name='username' autocomplete="off" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Пароль</label></p></td> <td width="250" align="left"><input type="password" size="25" maxlength="15" name="password" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Повторите пароль</label></p></td> <td width="250" align="left"><input type="password" size="25" maxlength="15" name="cpassword" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Email адрес</label></p></td> <td width="250" align="left"><input type="text" size="25" maxlength="100" name="email" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Подтвердите Email</label></p></td> <td width="250" align="left"><input type="text" size="25" maxlength="100" name="cemail" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>AlertPay E-mail</label></p></td> <td width="250" align="left"><input type="text" size="25" maxlength="100" name="pemail" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Страна</label></p></td> <td width="250" align="left"><input type="text" size="25" maxlength="100" name="country" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Реферал</label></p></td> <td width="250" align="left"><input type="text" size="25" maxlength="15" name="referer" value="<? echo limpiar($_GET["r"]); ?>" autocomplete="off" class="field" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"><p><label>Правила</label></p></td> <td width="250" align="left"><textarea rows="7" cols="25" readonly> Пожалуйста, прочтите следующие правила <? include('sitename.php'); ?> перед регистрацией!. Это займёт у вас не более 1 минуты! 1) Мы не любим спам! <? include('sitename.php'); ?> Если нам прийдёт жалоба, Вы будете забанены! 2) Вы можете иметь только одну учетную запись! В противном случае все учотные записи удоляются! . 3) У нас есть право приостанавливать Вашу учетную запись в любое время и по любой причине и без предварительного предупреждения. 4) Все платежи осуществляются через AlertPay и никакой другой метод оплаты в настоящее время не используется. Вы должны отправить запрос о выводе денег, подлежащих обработке, и он будет выполнен в течение 3 рабочих дней. Вы должны накопить не менее 10$. 5) Вы должны иметь действительный адрес электронной почты и действительный AlertPay адрес для регистрации в нашей программе. 6) Наш нынешний уровень оплаты составляет $ 0,01 за каждый сайт. 7) Вы можете иметь неограниченное количество рефералов. 8) Плата за рекламу должны быть выполнена только через AlertPay. AlertPay принимает все основные кредитные карты, банковские переводы и AlertPay средства. 9) Вы<? include('sitename.php'); ?> имеете право прикратить сотрудничество с SUPERBUX в любое время. 10) Зарегистрировавшись,<? include('sitename.php'); ?> Вы <? include('sitename.php'); ?>соглашаетесь <? include('sitename.php'); ?>с этими правилами. 11) У нас есть право изменять наши условия<? include('sitename.php'); ?> в любое время без предварительного согласия или уведомления. </textarea></td> </tr> <tr> <td width="150" align="left"><p><label>Введите код:</label></p></td> <td width="250" align="left"><input type="text" size="5" maxlength="5" name="code" autocomplete="off" class="securitycode" value="" tabindex="1" /></td> </tr> <tr> <td width="150" align="left"> </td> <td width="250" align="left"><img src="image.php?<?php echo $res; ?>" /></td> </tr> <tr> <td width="150" align="left"> </td> <td width="250" align="right"><input type="submit" value="Enter" class="submit" tabindex="4" /> </td> </tr> </table> </form> </fieldset> </div></div> <? } ?> <? include('footer.php'); ?> Вот код image.php <?php session_start(); // Juego de letras para usar $letras = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // ConfiguraciГіn tamaГ±o imagen y tamaГ±o fuente $ancho_caja = 130; $alto_caja = 60; $tam_letra = 10; $tam_letra_grande = 45; // angulo mГЎximo que rota (izq y der) cada letra $angmax = 20; // Establecer el tipo de contenido header("Content-type: image/png"); // Creamos una imagen $im = imagecreate($ancho_caja, $alto_caja); // Creo el color del texto, del texto del fondo y del fondo de la imagen $gris = ImageColorAllocate($im, 247, 247, 247); $colorLetra = ImageColorAllocate($im, 105, 159, 189); $colorLetraFondo = ImageColorAllocate($im, 247, 247, 247); // tipo de letra obtenido en dafont.net $fuente = './image2.ttf'; // Calculo el nГєmero de lГ*neas que entran $caja_texto = imagettfbbox($tam_letra, 0, $fuente , $letras); $alto_linea = abs($caja_texto[7]-$caja_texto[1]); $num_lineas = intval($alto_caja / $alto_linea)+1; // Dibujo las letras del fondo // Cada letra de escribe de una en una para poder // darle una rotaciГіn independiente al resto $pos = 0; for ($i = 0; $i<$num_lineas; $i++) { $x = 0; for ($j = 0; $j<30; $j++) { $texto_linea = $letras[rand(0, strlen($letras)-1)].' '; $caja_texto = imagettfbbox($tam_letra, 0, $fuente , $texto_linea); imagettftext($im, $tam_letra, rand(-$angmax, $angmax), $x, $alto_linea*$i, $colorLetraFondo, $fuente , $texto_linea); // Posicion x de la siguiente letra $x += $caja_texto[2] - $caja_texto[0]; } } // Escribo las tres letras del CAPTCHA $res = $letras[rand(0, strlen($letras)-1)]; $ang1 = rand(-$angmax, $angmax); $caja_texto = imagettfbbox($tam_letra_grande, $ang1, $fuente , $res); $y1 = abs($caja_texto[7]-$caja_texto[1]); $x1 = abs($caja_texto[2]-$caja_texto[0]); $res .= $letras[rand(0, strlen($letras)-1)]; $ang2 = rand(-$angmax, $angmax); $caja_texto = imagettfbbox($tam_letra_grande, $ang2, $fuente , $res[1]); $y2 = abs($caja_texto[7]-$caja_texto[1]); $x2 = abs($caja_texto[2]-$caja_texto[0]); $res .= $letras[rand(0, strlen($letras)-1)]; $ang3 = rand(-$angmax, $angmax); $caja_texto = imagettfbbox($tam_letra_grande, $ang3, $fuente , $res[2]); $y3 = abs($caja_texto[7]-$caja_texto[1]); $x3 = abs($caja_texto[2]-$caja_texto[0]); imagettftext($im, $tam_letra_grande, $ang1, ($ancho_caja/2)-(($x1+$x2+$x3)/2), $y1+($alto_caja-$y1)/2, $colorLetra, $fuente , $res[0]); imagettftext($im, $tam_letra_grande, $ang2, ($ancho_caja/2)-(($x1+$x2+$x3)/2)+($x1), $y2+($alto_caja-$y2)/2, $colorLetra, $fuente , $res[1]); imagettftext($im, $tam_letra_grande, $ang3, ($ancho_caja/2)-(($x1+$x2+$x3)/2)+($x1+$x2), $y3+($alto_caja-$y3)/2, $colorLetra, $fuente , $res[2]); imagepng($im); imagedestroy($im); imagedestroy($im2); $_SESSION["texto"] = $res; ?> Ну вот, на одном хостинге показываетсЯ капча (и правильно работает), а на другом есть картинка, только пустая! |
|
|
Webmaster_hb |
7.7.2008, 15:55;
Ответить: Webmaster_hb
Сообщение
#8
|
|
dimjan4, опять вы за свое, вас просят написать конкретную ошибку которую выдает веб-сервер, она может быть скрытой, тогда ее надо посмотреть в логах
|
|
|
dimjan4
|
Сообщение
#9
|
|
Так, я попробую объяснить, если этот скрипт залить на один хостинг, буквы проявляются, а если залить на другой, букв нет, просто пустое место!
|
|
|
Webmaster_hb |
7.7.2008, 16:45;
Ответить: Webmaster_hb
Сообщение
#10
|
|
dimjan4, а мы вам объясняем, доступным, русским языком, если картинка не отображается, то скорее всего где-то ошибка, или в версии php или в доп модуле GD, да все что угодно, можно гадать очень долго
но в любом из этих случаев веб-сервер фиксирует ошибку php в логах, вот их и посмотрите и напишите нам |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Крауд-маркетинг который работает | Эффективные Ру-ссылки | 1 | Azyuka | 958 | 13.2.2024, 19:36 автор: tascha56 |
|
Кто работает с партнерской программой eBay? | 0 | Stalser | 1151 | 14.12.2021, 12:26 автор: Stalser |
|
Кто работает с партнеркой Кликбанк? | 4 | metvekot | 1697 | 5.12.2021, 22:32 автор: adamsadriane |
|
Бесплатный аудит рекламы от специалиста с 20 летним стажем. Реклама не всегда работает. Ваша реклама может быть больше! |
0 | AndyGray | 6769 | 1.4.2021, 12:31 автор: AndyGray |
|
Продам мануал "Как работает Google Discover" | 8 | vvovvo | 3083 | 28.5.2020, 19:50 автор: vvovvo |
Текстовая версия | Сейчас: 29.3.2024, 6:19 |