Как получить ответный текст от эха в php

Я пытаюсь вернуть значение из PHP в JavaScript через responseText. Идея состоит в том, если mysqli_num_rows($rslt) != 0, responseText = 1 или если mysqli_num_rows($rslt)= 0, сделать вставку и responseText = 0, а затем в JavaScript я получаю responseText. Как я могу этого добиться, потому что я пытался использовать эхо, но не смог найти решения.

Код JavaScript:

const request = $.ajax({
            url: "Gab.php",
            type: "POST",
            dataType: 'json',
            data: {username: username, password: password,email:email},
            success: function(data){
                console.info(data);
            }
        });
        
        request.done(done);
        request.fail("Couldnt register the user");
        
        
        //event.preventDefault();
    }}
    
    function done(responseText){
        console.info(responseText);
        if (responseText == 0){
            alert("Successful Registration");
            window.location.assign("index.php");
            }else{
            alert("There is a username or email already registered. Change that USERNAME OR EMAIL!!!");
        }
    }

PHP-код:

//connect to db 
include 'debug.php';

$Uusername=$_POST["username"];
$Uemail=$_POST["email"];
$Upassword1=$_POST["password"];

//cleanup for db:
$username = mysqli_real_escape_string($db, $Uusername);
$email = mysqli_real_escape_string($db, $Uemail);
$password_1 = mysqli_real_escape_string($db, $Upassword1);

//check db for existing user or email
$user_check = "SELECT Usersusername,Usersemail FROM users WHERE Usersusername = '$username' or Usersemail = '$email'" ;
$rslt = mysqli_query($db,$user_check);
$exist = mysqli_num_rows($rslt);

if (mysqli_num_rows($rslt) != 0){    
    echo 1;
    //$PHPVar = 1;
    }else{
    $pwd= password_hash($password_1,PASSWORD_DEFAULT);
    $result = "INSERT into users(Usersusername,Usersemail,Userspwd) VALUES ('$username','$email','$pwd')"; 
    mysqli_query($db,$result);
    echo 0;
    //$PHPVar = 0;  
}   
if (responseText == 0){ ~ попробуйте перейти на if ( parseInt( responseText ) == 0){
Professor Abronsius 26.12.2020 11:07

Ваш код потенциально уязвим для SQL-инъекций — вместо этого используйте Подготовленные операторы.

Professor Abronsius 26.12.2020 11:09

Тем не менее, он не предупреждает о каких-либо сообщениях и не переходит к index.php. Но регистрация в базе сделана корректно.

Greekatos 26.12.2020 11:11

Что вы видите в консоли? И почему бы не использовать более надежный тип данных, такой как json?

Professor Abronsius 26.12.2020 11:12

Консоль ясна, ничего не отображается, и что вы подразумеваете под использованием надежного типа данных, такого как json, когда я отправляю данные или когда я их получаю? Я думаю, что, возможно, мой код потенциально уязвим для SQL-инъекций, как вы упомянули выше.

Greekatos 26.12.2020 11:20

Ваша функция ajax неверна ~ я удивлен, что вы не видите ошибок, видимых в консоли.

Professor Abronsius 26.12.2020 11:27

Да, возможно, моя функция ajax неверна, поэтому я не получаю ответный текст на свой javascript с эхом! Но странно, что вставка в базу делается. Я постараюсь найти решение.

Greekatos 26.12.2020 11:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
410
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможно, может помочь следующее: я немного переставил вещи и исправил функции js и отправил базовую строку JSON в качестве responseText для удобства.

<?php
    if ( $_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['username'],$_POST['password'],$_POST['email']) ){
        ob_clean();
        # imagine the SQL query has been executed OK but for randomness here the response will
        # be either 1 or 0 ...
        
        $i=mt_rand(0,1);
        
        exit(json_encode(array('status'=>$i)));
    }
?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>
        <script src='//code.jquery.com/jquery-latest.js'></script>
        <script>
            let username='fred';
            let password='banana';
            let email='[email protected]';
        
        
            function done( r ){
                console.info(r);
                
                if ( r.status == 0 ){
                    alert('Successful Registration');
                    //window.location.assign('index.php');
                }else{
                    alert('There is a username or email already registered. Change that USERNAME OR EMAIL!!!');
                }
            }
        
            $.ajax({
                url:location.href,  //'Gab.php'
                type: 'POST',
                dataType: 'json',
                data: {'username': username, 'password':password, 'email':email },
                success: function(data){
                    console.info(data);
                    done( data )
                },
                error:function(err){
                    alert(err)
                }
            });
        </script>
    </head>
    <body>
        
    </body>
</html>

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