File PHP yang dibuka oleh AJAX - Berikan peringatan Captcha dan kirim data url

Duduk di sini sepanjang hari, percaya atau tidak :) Saya ingin mentransfer data melalui Metode GET ke file .jsp eksternal (example.com/data.php?attribute=value&a2=v2 dan seterusnya)

Ini semua tampaknya berfungsi sejauh ini dan juga validasinya. Sekarang saya memiliki masalah karena saya memiliki captcha yang dihasilkan oleh file php dan captcha dikontrol/divalidasi di File PHP tempat data Formulir HTML diposting.

Ketika semuanya baik-baik saja, saya dapat melakukan peringatan di submitHandler (sukses: fungsi(respons)) tetapi bagaimana saya bisa mendapatkan peringatan sekarang, jika Captcha salah?

Bagaimana saya bisa memecahkan masalah ini? Bisakah saya mendapatkan kembali nilai variabel lain melalui AJAX dari File PHP untuk melakukan sesuatu dengannya (untuk menampilkan peringatan)?

Akan sangat senang atas bantuan atau komentar apa pun.

Terima kasih!

DI SINI data divalidasi dan dikirim ke file PHP setelah validasi berhasil.

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script type="text/javascript">
(function($,W,D)
{
    var JQUERY4U = {};
    JQUERY4U.UTIL =
    {
        setupFormValidation: function()
        {
            $("#form-id").validate({
                rules: {
                    firstname: "required",
                    .........
                },
                messages: {
                    firstname: "Please enter your firstname",
                    ..........
                },
                submitHandler: function(form)
                    var data = $("#nachricht").serializeArray();
                    $.ajax({
                    type:"POST",
                    url:"nachricht.php",
                    data: data,
                    dataType: "text",
                    success: function(response) {
                    alert('Thank you!');
                        }
                    });
                }
            });
        }
    }
    $(D).ready(function($) {
        JQUERY4U.UTIL.setupFormValidation();
    });
})(jQuery, window, document);

FILE PHP: Di sini data ditransfer ke URL lain (Metode GET) dan Captcha dicentang

$email = urlencode($_POST['email']);
$name = urlencode($_POST["name"]);
....

session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["captchafield"] == $_SESSION['captcha_spam']) // Captcha korrekt
{
    unset($_SESSION['captcha_spam']);

$link = "http://www.example.com/data.jsp?email=" . $email . "&name=" . $name . $titel . "&text=" . $text . "&ranking=" . $ranking . "&captchafield=" . $captcha_s;

header( "refresh:0;url=" . $link);
exit;
....

person Jobo21    schedule 04.02.2015    source sumber
comment
Mengapa Anda melakukan penyegaran di php?   -  person Tamás Szabó    schedule 05.02.2015
comment
Apakah maksud Anda header()? Ini saya gunakan untuk mengirim data melalui GET ke file jsp di server lain..   -  person Jobo21    schedule 05.02.2015
comment
Ya. Saya bersedia. Mengapa itu diperlukan?   -  person Tamás Szabó    schedule 05.02.2015
comment
Untuk transfer data ke server lain. Pertama saya ingin menggunakan cURL tetapi saya tidak memiliki akses ke Server dengan file jsp dan tidak akan bisa mendapatkan laporan bug apa pun jika tidak berfungsi. Jadi sekarang saya mentransfer data melalui AJAX ke file PHP dan secara manual membuka URL dengan variabel GET di dalamnya. Terima kasih atas jawaban Anda!   -  person Jobo21    schedule 05.02.2015
comment
Dan apa fungsinya dalam konteks ini? Ini akan mengarahkan permintaan ajax ke file jsp?   -  person Tamás Szabó    schedule 05.02.2015
comment
Tidak, permintaan AJAX tidak boleh dialihkan, itu hanya agar data formulir diproses (dan dikirim ke file jsp) tanpa pengguna meninggalkan halaman. Dan di file PHP captcha sudah divalidasi, jadi saya perlu ide bagaimana mendapatkan informasinya kembali, jika captcha tidak dimasukkan dengan benar.   -  person Jobo21    schedule 05.02.2015
comment
Lalu gaungkan saja sesuatu. Maksudku if( ... captcha ok ... ) lalu echo Sukses; lain gema Gagal; Dan periksa parameter respons dalam tindakan yang berhasil.   -  person Tamás Szabó    schedule 05.02.2015
comment
Saya sudah memiliki kondisi if tetapi masalahnya adalah ini tidak ditampilkan. $_POST[captchafield] == $_SESSION['captcha_spam']) Captcha korrekt { ... benar } else { echo fail .. }   -  person Jobo21    schedule 05.02.2015
comment
Anda harus menanganinya di sisi javascript.   -  person Tamás Szabó    schedule 05.02.2015
comment
Jadi maksud Anda antara memvalidasi semua bidang dan mengirim permintaan AJAX harus ada validasi Captcha? Bagaimana saya bisa memasukkan ini ke dalam javascript? Dengan permintaan AJAX lainnya?   -  person Jobo21    schedule 05.02.2015
comment
Tidak, tidak, kamu salah paham padaku. Bisakah Anda menempelkan semua php Anda? atau jika panjang maka hanya keterangan cek captcha dan lain-lain   -  person Tamás Szabó    schedule 05.02.2015
comment
Dalam file PHP yang dibuka setelah formulir dikirimkan hanya konten PHP dari atas dan kemudian .. echo ..success..; } else { echo ...gagal..; }. Di File captcha-PHP dibuat sesi dan string captcha. Atau apa maksudmu? Terima kasih untuk bantuannya   -  person Jobo21    schedule 05.02.2015
comment
Jika php berfungsi dengan baik, dan memeriksa captcha, dan juga membuka file jsp, dan menjalankannya, maka Anda tidak perlu menyentuhnya. Dalam javascript Anda memiliki success: function( response ) responnya berasal dari php, jadi misalnya ...sukses... Anda dapat memeriksa ini. dan pesan peringatan berdasarkan nilai response   -  person Tamás Szabó    schedule 05.02.2015
comment
Oke, jadi ketika saya melakukannya di file PHP seperti: if(enteredcaptcha == captcha){ $captcha_true = true; } lain { $captcha_benar = salah; } bagaimana cara memeriksanya di respons dan menjalankan alert() ?   -  person Jobo21    schedule 05.02.2015
comment
Ini tidak mungkin. Tetapi jika Anda melakukannya echo captcha_true; jika berhasil, maka anda dapat mengeceknya di javascript dengan cara ini: if( respon == captcha_true ) alert(Success); else { waspada(gagal..); }   -  person Tamás Szabó    schedule 05.02.2015


Jawaban (1)


Oke jadi sekarang saya punya file PHP tempat formulir dikirimkan ke:

if(enteredcaptcha == captcha){
echo "<script type='text/javascript'> alert('captcha_correct');</script>";  
} else { 
echo "<script type='text/javascript'> alert('captcha_not_correct');</script>";  
}

dan dalam file HTML normal saya di mana Formulir dan Javascript berada, saya punya:

submitHandler: function(form) {
                    var data = $("#kommentar").serializeArray();
                    $.ajax({
                    type:"POST",
                    url:"kommentar.php",
                    data: data,
                    dataType: "text",
                    success: function(response) {
                    if( response == "captcha_is_correct" ){ alert("Success"); } else { alert("unsuccess.."); }
                        }
                    });

                }

Dan ini sangat masuk akal, luar biasa, tetapi saya selalu mendapat pesan "tidak berhasil", jadi menurut saya masih ada bug?

person Jobo21    schedule 04.02.2015