私はお問い合わせフォームで作業しています。私の問題は、キャプチャを検証できないことです。isset($_session[''])
動作しません。
私のコード:
contact.php
<?php
session_start();
if (!isset($_SESSION['num1']) && !isset($_SESSION['num2'])) {
$_SESSION['num1'] = rand(1,5);
$_SESSION['num2'] = rand(1,5);
}
?>
キャプチャ フィールドの表示:
<label for="captcha">
<?php echo $_SESSION['num1']; ?>+ <?php echo $_SESSION['num2']; ?>?
</label>
<input type="text" id="captcha" name="captcha" placeholder="Captcha">
JavaScript:
$(document).ready(function() {
$.validator.addMethod("nourl", function(value, element) {
return !/http\:\/\/|www\.|link\=|url\=/.test(value);
}, "No URL's");
$("form").validate({
rules: {
name: {
required: true
},
email: {
required: true,
email: true
},
comments: {
required: true,
minlength: 4,
nourl: true
},
captcha: {
required: true,
remote: {
url: "validation.php",
type: "post"
}
}
},
messages: {
name: "",
email: "",
comments: "",
captcha: ""
}
});
});
検証.php:
<?php
session_start();
if (!isset($_SESSION['num1']) || !isset($_SESSION['num2'])) {
exit('"Unknown session"');
}
$sum = (int)$_SESSION['num1'] + (int)$_SESSION['num2'];
if (isset($_POST['captcha']) && (int)$_POST['captcha'] === $sum) {
exit('true');
}
exit('false');
?>
私が得ている結果:「不明なセッション」
この行を返すたびに。
if (!isset($_SESSION['num1']) || !isset($_SESSION['num2'])) {
exit('"Unknown session"');
}
誰でも助けることができますか?