jamshid iraneii
10 ماه پیش توسط jamshid iraneii مطرح شد
0 پاسخ

ایراد در منتقل کردن خطا های php به کمک ajax به یک صفحه دیگر

سلام وقت بخیر امید وارم حالتون خوب باشه
من روی ی فرم تماس به کمک php و ajax jquery کار میکنم که به صورت ajax اطلاعات به خوبی انتقال داده میشد ولی زمانی که ایمیل یا نام کاربری در دیتابیس وجود داشت ، تنها در فایل php که از طریق ajax متصل میشد ، ارور میداد و متاسفانه در صفحه تماس با ما نمایش داده نمیشد که به کاربر اطلاع بده که نام کاربری یا ایمیل در دیتابیس موجود است .
@Raymond
@saghari
پروژه هم دارای 2 تا فایل php و js هست :

JS :

function validateEmailId(input) {
    var emailFormat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

    if (emailFormat.test(input)) {
        return true;
    } else {
        return false;
    }
}

function pregMatch(input) {
    var regExp = /^[a-zA-Z-ا-ی ]*$/;

    if (regExp.test(input)) {
        return true;
    } else {
        return false
    }
}

function ajaxRegistration() {
    $(".error").text("");
    $('#first-name-info').removeClass("error");
    $('#last-name-info').removeClass("error");
    $('#register-email-info').removeClass("error");
    $('#contact-no-info').removeClass("error");
    $('#register-passwd-info').removeClass("error");
    $('#confirm-passwd-info').removeClass("error");

    var firstName = $('#first-name').val();
    var lastName = $('#last-name').val();
    var emailId = $('#register-email-id').val();
    var contactNumber = $('#contact-number').val();
    var password = $('#register-password').val();
    var confirmPassword = $('#confirm-password').val();
    var actionString = 'registration';

    if (firstName == "") {
        $('#first-name-info').addClass("error");
        $(".error").text("ضروری");
    } else if (!pregMatch(firstName)) {
        $('#first-name-info').addClass("error");
        $(".error").text('لطفا فاصله بین کلمات نگذارید');
    } else if (lastName == "") {
        $('#last-name-info').addClass("error");
        $(".error").text("ضروری");

    } else if (!pregMatch(lastName)) {
        $('#last-name-info').addClass("error");
        $(".error").text('لطفا فاصله بین کلمات نگذارید');
    } else if (emailId == "") {
        $('#register-email-info').addClass("error");
        $(".error").text("ضروری");
    } else if (!validateEmailId(emailId)) {
        $('#register-email-info').addClass("error");
        $(".error").text("بی اعتبار");
    } else if (contactNumber == "") {
        $('#contact-no-info').addClass("error");
        $(".error").text("ضروری");
    } else if (isNaN(contactNumber) || (contactNumber.indexOf(" ") != -1) || contactNumber.length > 10) {
        $('#contact-no-info').addClass("error");
        $(".error").text("بی اعتبار");
    } else if (password == "") {
        $('#register-passwd-info').addClass("error");
        $(".error").text("ضروری");
    } else if (confirmPassword == "") {
        $('#confirm-passwd-info').addClass("error");
        $(".error").text("ضروری");
    } else if (password != confirmPassword) {
        $('#confirm-passwd-info').addClass("error");
        $(".error").text("رمز عبور تأیید شما مطابقت ندارد.");
    } else {
        $('#loaderId').show();
        $.ajax({
            url : 'assets/php/register.php',
            type : 'POST',
            data : {
                firstName : firstName,
                lastName : lastName,
                emailId : emailId,
                contactNumber : contactNumber,
                password : password,
                confirmPassword : confirmPassword,
                action : actionString
            },
            success : function(response) {
                if (response.trim() == 'error') {
                    alert("ارور !")
                    console.log("ارور !")
                } else {
                    alert("با موفقیت ثبت نام شما انجام شد !")
                    console.log("OKKKK")
                }
            }

        });
    }// endif
}

PHP :

<?php

define('DB_HOST', 'localhost');
define('DB_NAME', 'form_sign_up');
define('DB_USER', 'root');
define('DB_PASSWORD', '');

try {
    $conn = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASSWORD);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $firstName = filter_var($_POST['firstName'], FILTER_SANITIZE_STRING);
    $lastName = filter_var($_POST['lastName'], FILTER_SANITIZE_STRING);
    $email = filter_var($_POST['emailId'], FILTER_VALIDATE_EMAIL);
    $phone = filter_var($_POST['contactNumber'], FILTER_SANITIZE_STRING);
    $password = password_hash($_POST['password'], PASSWORD_BCRYPT);

    $stmt = $conn->prepare("SELECT * FROM users WHERE email = :email OR phone = :phone");
    $stmt->execute(['email' => $email, 'phone' => $phone]);
    $existingUser = $stmt->fetch();

    if ($existingUser) {
        echo "<p class='error'>کاربری با این ایمیل یا شماره تلفن قبلاً ثبت نام کرده است.</p>";
    } else {
        $stmt = $conn->prepare("INSERT INTO users (first_name, last_name, email, phone, password) VALUES (:firstName, :lastName, :email, :phone, :password)");
        $stmt->execute(['firstName' => $firstName, 'lastName' => $lastName, 'email' => $email, 'phone' => $phone, 'password' => $password]);

        if ($stmt->rowCount() > 0) {
            header("Location: dashboard.php");
        } else {
            echo "<p class='error'>خطایی در ثبت نام رخ داده است. لطفاً با پشتیبانی تماس بگیرید.</p>";
        }
    }

    $conn = null;
} catch(PDOException $e) {
    error_log($e->getMessage());
    echo "<p class='error'>خطایی در ثبت نام رخ داده است. لطفاً با پشتیبانی تماس بگیرید.</p>";
}

فایل HTML و صفحه تماس با ما :

                    <form id="register-form" action="" method="post" role="form">
                        <div class="form-group">
                            <label for="">نام</label>
                            <span id="first-name-info"></span> <input type="text" name="first-name" id="first-name" class="input-field" value="">
                        </div>
                        <div class="form-group">
                            <label for="">نام خانوادگی</label>
                            <span id="last-name-info"></span> <input type="text" name="last-name" id="last-name" class="input-field" value="">
                        </div>
                        <div class="form-group">
                            <label for="">ایمیل</label>
                            <span id="register-email-info"></span> <input type="email" name="register-email-id" id="register-email-id" class="input-field" value="">
                        </div>
                        <div class="form-group">
                            <label for="">شماره تماس</label>
                            <span id="contact-no-info"></span> <input type="text" name="contact-number" id="contact-number" maxlength="10" class="input-field" >
                        </div>
                        <div class="form-group">
                            <label for="">رمز عبور</label>
                            <span id="register-passwd-info"></span> <input type="password" name="register-password" id="register-password" class="input-field" >
                        </div>
                        <div class="form-group">
                            <label for="">تکرار رمز عبور</label>
                            <span id="confirm-passwd-info"></span> <input type="password" name="confirm-password" id="confirm-password" class="input-field">
                        </div>
                        <div class="form-group col-lg-12">
                            <input type="button" id="submit-btn" class="btn_one" value="ثبت نام" onclick="ajaxRegistration()">
                        </div>

                    </form>

ثبت پرسش جدید

به همدیگه کمک کنیم

به jamshid iraneii کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام