В целях тестирования у меня есть простая форма, которая запрашивает общую информацию, но пользователь может ввести информацию только один раз.Их IP-адрес записывается, поэтому, если они снова попытаются ввести информацию, данные не будут отправлены в таблицу SQL.Я использую Jquery Ajax для отправки формы.Если форма отправлена успешно, появится сообщение «Информация отправлена».должно быть показано.Если IP-адрес пользователя сопоставляется с записанным IP-адресом, появляется сообщение «Вы можете отправить только один раз».Показано.
Моя проблема в том, что я не уверен, как заставить jquery ajax отображать «Вы можете отправить только один раз».сообщение после сопоставления обнаруженного IP-адреса с IP-адресом в базе данных.Он не должен использовать «error: function () ...»
Вот форма и скрипт Jquery Ajax:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("form#submit").submit(function() {
var words = $('#words').attr('value');
$.ajax({
type: "POST",
url: "getuser.php",
data: "words="+ words,
success: function(){
$('form#submit').hide(function(){$('div.success').fadeIn();});
},
error: function(){
$('form#submit').hide(function(){$('div.fail').fadeIn();});
}
});
return false;
});
});
</script>
<form id="submit" method="post">
<fieldset>
<legend>Enter Information</legend>
<label for="words">words:</label>
<input id="words" class="text" name="words" size="20" type="text">
<button> Submit </button>
</fieldset>
</form>
<div class="success" style="display: none;">Information submitted.</div>
</div>
<div class="fail" style="display: none;">You only get to submit once.</div>
Вот скрипт PHP:
<?php
mysql_connect("","","");
mysql_select_db("");
//take IP address and match IP taken with IP in SQL table (I will do this myself later)
//if IPs match
if ($ip == $databaseIP)
{
die();
}
else
{
$words = htmlspecialchars(trim($_POST['words']));
$addClient = "INSERT INTO test VALUES('','$words')";
mysql_query($addClient) or die(mysql_error());
}
?>
ОБНОВЛЕНИЕ: вот PHP-эквивалент того, что я хочу
if ( $_POST['words'] )
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
$ipquery = mysql_query ("SELECT * FROM rate WHERE ip = '$ip' ");
$ipquery = mysql_fetch_assoc($ipquery);
$ipquery = $ipquery['ip'];
if ($ipquery == $ip)
{
echo "you only get to submit once";
}
else
{
mysql_query ("INSERT INTO rate VALUES ('','$words')");
echo "information submitted";
}
}