Я не могу зарегистрироваться в базе данных как член php с ajax для регистрации активности

У меня есть проект, и я должен использовать ajax с php. Я хочу зарегистрировать участника в базе данных. В ответе говорится «да», но база данных остается пустой. Это заняло слишком много времени. Вот моя форма и коды ajax:

    <div class = "panel-body">
        <script>
        function kayit(){
            var bilgiler = $("#kayitformu").serialize();

            $.ajax({
                type : "POST",
                data : bilgiler,
                url : "kayit.php",
                success: function(kayitol) {
                    if ($.trim(kayitol) == "bos") {
                        sweetAlert('Hata','Boş alan bırakmayınız','error');
                    } else if ($.trim(kayitol) == "var") {
                        sweetAlert('Hata','Bu e posta zaten kayıtlı','error');
                    } else if ($.trim(kayitol)= = "ok") {
                        sweetAlert('ok','Kayıt Başarılı','success');
                    } else if ($.trim(kayitol)= = "hata") {
                        sweetAlert('Hata','Sistem Kaynaklı Hata Var','error');
                    }
                }
            });
        }
        </script>
        <form action = "" id = "kayitformu" onsubmit = "return false;" method = "POST">
            <fieldset>
                <div class = "form-group">
                    <input type = "text" name = "adsoyad" placeholder = "Enter name" class = "form-control">
                </div>
                <div class = "form-group">
                    <input type = "text" name = "eposta" placeholder = "Email" class = "form-control">
                </div>
                <div class = "form-group">
                    <input type = "password" name = "sifre" placeholder = "Password" class = "form-control">
                </div>
                <div class = "form-group">
                    <input type = "submit" onclick = "kayit();" name = "Gonder" class = "btn btn-primary" >
                </div>
            </fieldset>
        </form>
    </div>
</div>

и это мои коды sql:

<?php 

require 'baglan.php';

if ($_POST) {
    $ad= $_POST["adsoyad"];
    $eposta = $_POST["eposta"];
    $sifre = $_POST["sifre"];

    $sifrele = sha1(md5($sifre));

    if (!$ad || !$eposta || !$sifre) {
        echo "bos";
    } else {
        $varmi = $db->prepare("SELECT eposta FROM uyeler WHERE eposta =:e");
        $varmi->execute(array(':e'=>$eposta));

        if ($varmi->rowCount()) {
            echo "var";
        } else {
            $kayit = $db->prepare("INSERT INTO uyeler  SET
                adsoyad=:a,
                eposta =:e,
                sifre =:s
                ");
            $kayit->execute([':a'=>$ad,':e'=>$eposta,':s'=>$sifrele]);

            if ($kayit) {
                echo "ok";
            } else {
                echo "hata";
            }
        }
    }
}
?>

В коде ajax я пересылаю информацию в файл php, но теперь я не понимаю, почему база данных не получает записи? Не могли бы вы объяснить, в чем ошибка?

В вашем разделе «Код SQL», $kayit->execute(...) вы используете $sifrele. Но в if (...) вы проверяете !$sifre. Вы уверены, что $sifrele не пустой? Для отладки введите запрос INSERT в журнал и попробуйте запустить его вручную.

Nic3500 04.11.2018 23:14

Почти все способы пробовал, но все равно: /

Çağrı 04.11.2018 23:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
48
1

Ответы 1

Проблема в том, что вы используете неправильный синтаксис для mysql INSERT. Вы смешиваете оператор UPDATE с запросом INSERT. Должно быть:

$kayit = $db->prepare(
        "INSERT INTO
            `uyeler`
            (`adsoyad`, `eposta`, `sifre`)
        VALUES
            (:a, :e, :s)");

См. Примеры в документации: https://dev.mysql.com/doc/refman/8.0/en/insert.html

Это то же самое, сэр. :( Другой пример в инете он работает.

Çağrı 05.11.2018 10:19

Если теперь у вас есть правильный синтаксис, вы можете проверить журналы sql и посмотреть, есть ли какие-либо ошибки. Возможно, у вас есть уникальный столбец, в который вы не должны вставлять и который не позволяет вам вставлять, или что-то подобное. Если у вас сейчас правильный синтаксис, значит, он должен работать.

Rasclatt 05.11.2018 12:59

Другие вопросы по теме