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

У меня есть проект, и я должен использовать 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 файл, но я не знаю, почему база данных не получает записи? Не могли бы вы объяснить, где находится ошибка?

1 Ответ

0 голосов
/ 05 ноября 2018

Проблема в том, что вы используете неправильный синтаксис для 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...