проверки за captcha

lqlqlq

Registered
В по-долната тема се оправих сам с чатбокса, но тук вече немога и..ще помоля наистина да ми се помогне.
Значи това е регистрационната форма, оградил съм с червено откъде почва проверката за регистрацията и къде е инсертването в датабазата.
-----------------------------------------------------
<?php
if ($_SESSION["valid_user"])
{ echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; } else {

$realmd = array(
'db_host'=> $host,
'db_username' => $user,
'db_password' => $pass,
'db_name'=> $mangosrealm,
);

function check_for_symbols($string){
$len=strlen($string);
$allowed_chars="abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE;
return FALSE;

}

function sha_password($username,$password){
$username = strtoupper($username);
$password = strtoupper($password);

return SHA1($username.':'.$password);
}

if ($_POST['registration']){

$realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]);
$selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect);
if (!$realmd_bc_new_connect || !$selectdb){
echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct.";
die;
}

$username1 = $_POST['username'];
$password1 = sha_password($username1,$_POST['password']);
$email1 = $_POST['email'];
$client = $_POST['expansion'];

$qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'");


if(mysql_num_rows($qry_check_username) != 0)
{
echo 'Грешка: Този акаунт вече съществува.';
}
else
{
if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){
echo "Грешка! Използвали сте невалидни символи при името на акаунта ви.";
}else{

mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES
('$username1','$password1','$email1','$client')");

echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум";
}
}
}else{
?>
--------------------------------------------------------------------

Контактната форма:

<?php
// declare values
$contact_email = $_POST['email'];
$contact_subject = $_POST['subjects'];
$contact_name = $_POST['username'];
$contact_message = $_POST['messages'];
$mydate = date ( 'l, F d Y g:i A',time()+240 );
// where to send e-mail to
$to = 'wow.multimedia@abv.bg'; //тук въведете вашия e-mail (на който искате потребителите да изпращате e-mail)
// e-mail subject
$subject = "Съобщение от потребител на wow-multimedia"; //тук на мястото на domain въведете името (не url-a) на вашия сайт
// e-mail message
$message = "Съобщение от потребител на wow-multimedia:\r\n" //тук на мястото на domain отново въведете името (не url-a) на вашия сайт

."----------------------------------------------------------------\r\n"
."Име: $contact_name\r\n"
."Тема: $contact_subject\r\n"
."Дата: $mydate\r\n"
."От IP: {$_SERVER['REMOTE_ADDR']}\r\n\r\n"
."<b>Съобщение:</b> $contact_message\r\n"
."Form Address: {$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}";

$headers = "From: $contact_name <$contact_email>\n"
."Reply-To: $contact_email\n"
."Content-Type: text/html; charset=utf-8\n"
."X-Mailer: PHP/".phpversion();

// check for validation, then send the e-mail
if(empty($contact_name) || empty($contact_email) || empty($contact_subject) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма за да се свържете с нас или skype: <b><a href="skype:wow.multimedia?chat">wow.multimedia</a></b> !</p>
<form method="post" action="" onsubmit="return(formValidate(this));">
<table id="Form-Details">
<tbody>
<tr><td>Вашето име:<br /> </td><td><input type="text" name="username" size="20" /></td></tr>
<tr><td>Вашият е-mail:<br /> </td><td colspan="3"><input type="text" name="email" size="20" /></td></tr>
<tr><td>Тема:</td><td><input type="text" name="subjects" size="20" /></td></tr>
<tr><td colspan="4">Съобщение:</td></tr>
<tr><td colspan="4"><textarea rows="6" name="messages" cols="47" class="input"></textarea></td></tr>
<tr><td colspan="4" class="right1"><br /><input type="submit" name="submit" value="Изпрати" /></td></tr>
</tbody>
</table>
</form>';

} elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $contact_email)) {
echo "<p>Грешка: Моля въведете валиден e-mail.</p>";
} else {
mail( $to, $subject, $message, $headers );
echo "<h3>Съобщението беше успешно изпратено!</h3><p> $contact_name,<br /><br />Възможно най - скоро ще отговорим на вашето съобщение на e-mail $contact_email.";
}
?>
<script type="text/javascript" language="javascript">
function formValidate(form) {
// potrebitel
if (form.username.value == "")
{
alert('Моля въведете вашето име!');
form.username.focus();
return false;
}
// subject
if (form.subjects.value == "")
{
alert('Моля въведете тема!');
form.subjects.focus();
return false;
}
// email
if (form.email.value == "")
{
alert('Моля въведете e-mail!');
form.email.focus();
return false;
}
return true;
}
// -->
</script>
-----------------------------------------------------------------
Тук си няма идея как да стане, давам проверките и полетата:

Поле:

Код:
Въведете кода: <img src="chat/img.php" alt="" />
<br /><input type="text" name="kod" /><br /><br />

Проверка:

Код:
$kod = htmlspecialchars($_POST[kod]);//взимаме текста 
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#ff4c00\">Не сте въвели правилно кода!</font><br>";
Тествани са и работят, само някой който разбира да ги вгради в скриптовете по-горе, ето пример в чатбокса как стана:
Код:
Въведете кода: <img src="chat/img.php">
<br /><input type="text" name="kod"><br /><br />
<input type="submit" name="submit" value="Добави"  /> 
</form><br /> 


<?php 
if (isset($_POST["submit"])) { 
define('IN_VALID', true); 
include('config.php'); 
mysql_query("SET NAMES utf8"); 
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]); 
else $errMsg = "<font color=\"#ff4c00\">Моля въведете линк!</font><br />"; 
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]); 
else $errMsg = "<font color=\"#ff4c00\">Моля въведете съобщение!</font><br>";
$kod = htmlspecialchars($_POST[kod]);//взимаме текста 
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#ff4c00\">Не сте въвели правилно кода!</font><br>";
if (empty($errMsg)) 
{ 
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error()); 
echo 'Съобщението е добавено!'; 
} else echo $errMsg; 
mysql_close(); 
} 
?>

Всичко работи само както казах да се вкара, ще съм много благодарен на който го направи.
 
Първия код въобще не ти е целия и нямам никаква идея дали работи. Надявам се кодовете да работят :)

Код:
<?php
if ($_SESSION["valid_user"]){ 
echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; 
} 
else {

$realmd = array(
'db_host'=> $host,
'db_username' => $user,
'db_password' => $pass,
'db_name'=> $mangosrealm,
);

function check_for_symbols($string){
$len=strlen($string);
$allowed_chars="abcdefghijklmnopqrstuvwxyz?oaABCDEFGHIJKLMNOPQRSTUVWXYZ?OA0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE;
return FALSE;
}

function sha_password($username,$password){
$username = strtoupper($username);
$password = strtoupper($password);
return SHA1($username.':'.$password);
}

if ($_POST['registration']){

$realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]);
$selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect);
if (!$realmd_bc_new_connect || !$selectdb){
echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct.";
die;
}

$username1 = $_POST['username'];
$password1 = sha_password($username1,$_POST['password']);
$email1 = $_POST['email'];
$client = $_POST['expansion'];

$qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'");

if(mysql_num_rows($qry_check_username) != 0){
echo 'Грешка: Този акаунт вече съществува.';
}
else{
if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){
echo "Грешка! Използвали сте невалидни символи при името на акаунта ви.";
}
else{
$kod = htmlspecialchars($_POST[kod]);//взимаме текста
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#ff4c00\">Не сте въвели правилно кода!</font><br>";

if (empty($errMsg)){
mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES('$username1','$password1','$email1','$client')");
echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум";
}
}
else echo $errMsg;
}}
else{
?>
     Въведете кода: <img src="chat/img.php" alt="" />
<br /><input type="text" name="kod" /><br /><br />    
    <?php
}
?>




Контакт формата

Код:
<?php
// declare values
$contact_email = $_POST['email'];
$contact_subject = $_POST['subjects'];
$contact_name = $_POST['username'];
$contact_message = $_POST['messages'];
$mydate = date ( 'l, F d Y g:i A',time()+240 );
// where to send e-mail to
$to = 'wow.multimedia@abv.bg'; //тук въведете вашия e-mail (на който искате потребителите да изпращате e-mail)
// e-mail subject
$subject = "Съобщение от потребител на wow-multimedia"; //тук на мястото на domain въведете името (не url-a) на вашия сайт
// e-mail message
$message = "Съобщение от потребител на wow-multimedia:\r\n" //тук на мястото на domain отново въведете името (не url-a) на вашия сайт

."----------------------------------------------------------------\r\n"
."Име: $contact_name\r\n"
."Тема: $contact_subject\r\n"
."Дата: $mydate\r\n"
."От IP: {$_SERVER['REMOTE_ADDR']}\r\n\r\n"
."<b>Съобщение:</b> $contact_message\r\n"
."Form Address: {$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}";

$headers = "From: $contact_name <$contact_email>\n"
."Reply-To: $contact_email\n"
."Content-Type: text/html; charset=utf-8\n"
."X-Mailer: PHP/".phpversion();

// check for validation, then send the e-mail
if(empty($contact_name) || empty($contact_email) || empty($contact_subject) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма за да се свържете с нас или skype: <b><a href="skype:wow.multimedia?chat">wow.multimedia</a></b> !</p>
<form method="post" action="" onsubmit="return(formValidate(this));">
<table id="Form-Details">
<tbody>
<tr><td>Вашето име:<br /> </td><td><input type="text" name="username" size="20" /></td></tr>
<tr><td>Вашият е-mail:<br /> </td><td colspan="3"><input type="text" name="email" size="20" /></td></tr>
<tr><td>Тема:</td><td><input type="text" name="subjects" size="20" /></td></tr>
<tr><td colspan="4">Съобщение:</td></tr>
<tr><td colspan="4"><textarea rows="6" name="messages" cols="47" class="input"></textarea></td></tr>
<tr><td colspan="4">Въведете кода: <img src="chat/img.php"></td></tr>
<tr><td colspan="4"><input type="text" name="kod"></td></tr>
<tr><td colspan="4" class="right1"><br /><input type="submit" name="submit" value="Изпрати" /></td></tr>
</tbody>
</table>
</form>';
} 
elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $contact_email)) {
echo "<p>Грешка: Моля въведете валиден e-mail.</p>";
} 

else {
$kod = htmlspecialchars($_POST[kod]);//взимаме текста
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#ff4c00\">Не сте въвели правилно кода!</font><br>";

if (empty($errMsg)){
mail( $to, $subject, $message, $headers );
echo "<h3>Съобщението беше успешно изпратено!</h3><p> $contact_name,<br /><br />Възможно най - скоро ще отговорим на вашето съобщение на e-mail $contact_email.";
}}
else echo $errMsg;
?>
<script type="text/javascript" language="javascript">
function formValidate(form) {
// potrebitel
if (form.username.value == "")
{
alert('Моля въведете вашето име!');
form.username.focus();
return false;
}
// subject
if (form.subjects.value == "")
{
alert('Моля въведете тема!');
form.subjects.focus();
return false;
}
// email
if (form.email.value == "")
{
alert('Моля въведете e-mail!');
form.email.focus();
return false;
}
return true;
}
// -->
</script>
 
и при двата ти опита страниците не се отварят, при рег формата десните менюта се скриват и формата не се показва, а при контактната форма въобще бяла страница излиза само.
Колкото до регистрационната форма, да найстина не съм дал целия код защото мисля, че и сам мога да си го вградя само като погледна как ти си го направил, но не стана...

Това е целия:

Код:
<?php 
define('IN_VALID', true); 
require_once ('config.php'); 
?> 

<?php 
if ($_SESSION["valid_user"]) 
{ echo "<font class=\"textshadow\"><b>Този акаунт вече съществува ?</b></font>"; } else { 

$realmd = array( 
'db_host'=> $host, 
'db_username' => $user, 
'db_password' => $pass, 
'db_name'=> $mangosrealm, 
); 

function check_for_symbols($string){ 
$len=strlen($string); 
$allowed_chars="abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
for($i=0;$i<$len;$i++)if(!strstr($allowed_chars,$string[$i]))return TRUE; 
return FALSE; 

} 

function sha_password($username,$password){ 
$username = strtoupper($username); 
$password = strtoupper($password); 

return SHA1($username.':'.$password); 
} 

if ($_POST['registration']){ 

$realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]); 
$selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect); 
if (!$realmd_bc_new_connect || !$selectdb){ 
echo "Something went wrong while connecting to the database. Please make sure the config.php file is correct."; 
die; 
} 

$username1 = $_POST['username']; 
$password1 = sha_password($username1,$_POST['password']); 
$email1 = $_POST['email']; 
$client = $_POST['expansion']; 

$qry_check_username = mysql_query("SELECT username FROM account WHERE username='$username1'"); 


if(mysql_num_rows($qry_check_username) != 0) 
{ 
echo 'Грешка: Този акаунт вече съществува.'; 
} 
else 
{ 
if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username1) == TRUE){ 
echo "Грешка! Използвали сте невалидни символи при името на акаунта ви."; 
}else{ 
  
mysql_query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES 
('$username1','$password1','$email1','$client')"); 
echo "Твоят акаунт <b>".$username1."</b> е създаден! Обедете се, че сте добавили нашият реалмлист: <br /><br /><b> ".$realmlist."</b><br/><br/>  Ако имате проблеми посетете нашият форум"; 
} 
} 
}else{
?>  

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" onsubmit="return(formValidate(this));"> 
Акаунт:<br /><input type="text" name="username" /><br />
Парола:<br /><input type="password" name="password" /><br />
Е-мейл адрес:<br /><input type="text" name="email" /><br />
<select name="expansion" style="display:none"> 
<option value="2">Wrath Of The Lich King</option> 
</select>
		
<br />
<input type="submit" name="registration" value="Създай" />
</form>

<script type="text/javascript" language="javascript"> 
function formValidate(form) { 
// potrebitel 
if (form.username.value == "") 
{ 
alert('Моля въведете акаунт!'); 
form.username.focus(); 
return false; 
} 
// parola 
if (form.password.value == "") 
{ 
alert('Моля въведете парола!'); 
form.password.focus(); 
return false; 
} 
// email 
if (form.email.value == "") 
{ 
alert('Моля въведете e-mail!'); 
form.email.focus(); 
return false; 
} 
return true; 
} 

// --> 
</script>

<?php 
} 
} 
?>
 

Back
Горе