Я использую JS внутри PHP и по какой-то причине JS не будет go для других, даже если If не соответствует действительности - PullRequest
1 голос
/ 28 апреля 2020

Как видно из заголовка, код ниже представляет собой JS внутри файла PHP, и по какой-то причине JS не будет go для других, даже если if не соответствует истине. В текущем состоянии, которое, если первый оператор ставится первым, будет работать правильно, а затем второй никогда не сработает. Все, для чего предназначена эта система, - запускать x запросов, когда персонал === true, и запускать y запросов, когда пользователь == true

сеанс. php

    <?php
// mysqli_connect() function opens a new connection to the MySQL server.
$conn = mysqli_connect("localhost", "root", "", "sports world");
session_start();// Starting Session
// Storing Session
$user_check = $_SESSION['login_user2'];
$p = $_SESSION['login_user3'];
?>

<script>
if sessionStorage.getItem('status2') === 'staff') {
    <?php
    // SQL Query To Fetch Information Of User
    $query = "SELECT Username from staff where Username = '$user_check'";
    $ses_sql = mysqli_query($conn, $query);
    $row = mysqli_fetch_assoc($ses_sql);

    $login_session = $row['Username'];


    // SQL Query To Fetch Information Of User
    $query2 = "SELECT StaffCode from staff where Username = '$user_check' AND Password = '$p'";
    $ses_sql2 = mysqli_query($conn, $query2);
    $row2 = mysqli_fetch_assoc($ses_sql2);

    $cust = $row2['StaffCode'];
    $_SESSION['CustCode'] = $cust;


    // SQL Query To Fetch Information Of User
    $query3 = "SELECT StaffGivenName As 'Given Name', StaffSurname As 'Surname' from staff where StaffCode = '$cust'";
    $ses_sql3 = mysqli_query($conn, $query3);
    $row3 = mysqli_fetch_assoc($ses_sql3);

    $name1 = $row3['Given Name'];
    $name2 = $row3['Surname'];
    $_SESSION['Given Name'] = $name1;
    $_SESSION['Surname'] = $name2;


    // SQL Query To Fetch Information Of User
    $queryAccountDeatils = "SELECT StaffDob As 'Date of Birth', StaffGender As 'Gender', StaffAddress1 As 'Address', StaffAddress2 As 'Region', StaffPostCode As 'Post Code', StaffPhone As 'Phone Number', StaffEmail As 'Email', StaffTFN As 'Message Preferences', StaffEmerConName As 'Member Type', StaffEmerConPhone As 'Sports' from staff where StaffCode = '$cust'";
    $ses_sql4 = mysqli_query($conn, $queryAccountDeatils);
    $row4 = mysqli_fetch_assoc($ses_sql4);

    $Dob = $row4['Date of Birth'];
    $Address = $row4['Address'];
    $Gender = $row4['Gender'];
    $Region = $row4['Region'];
    $PostCode = $row4['Post Code'];
    $PhoneNumber = $row4['Phone Number'];
    $Email = $row4['Email'];
    $MessagePref = $row4['Message Preferences'];
    $MemberType = $row4['Member Type'];
    $Sports = $row4['Sports'];
    $_SESSION['Date of Birth'] = $Dob;
    $_SESSION['Address'] = $Address;
    $_SESSION['Gender'] = $Gender;
    $_SESSION['Region'] = $Region;
    $_SESSION['Post Code'] = $PostCode;
    $_SESSION['Phone Number'] = $PhoneNumber;
    $_SESSION['Email'] = $Email;
    $_SESSION['Message Preferences'] = $MessagePref;
    $_SESSION['Member Type'] = $MemberType;
    $_SESSION['Sports'] = $Sports;
    ?>
} else if (localStorage.getItem('status2') === 'user') {
    <?php
    // SQL Query To Fetch Information Of User
    $query = "SELECT Username from login where Username = '$user_check'";
    $ses_sql = mysqli_query($conn, $query);
    $row = mysqli_fetch_assoc($ses_sql);

    $login_session = $row['Username'];


    // SQL Query To Fetch Information Of User
    $query2 = "SELECT CustCode from login where Username = '$user_check' AND Password = '$p'";
    $ses_sql2 = mysqli_query($conn, $query2);
    $row2 = mysqli_fetch_assoc($ses_sql2);

    $cust = $row2['CustCode'];
    $_SESSION['CustCode'] = $cust;


    // SQL Query To Fetch Information Of User
    $query3 = "SELECT CustGivenName As 'Given Name', CustSurname As 'Surname' from customers where CustCode = '$cust'";
    $ses_sql3 = mysqli_query($conn, $query3);
    $row3 = mysqli_fetch_assoc($ses_sql3);

    $name1 = $row3['Given Name'];
    $name2 = $row3['Surname'];
    $_SESSION['Given Name'] = $name1;
    $_SESSION['Surname'] = $name2;


    // SQL Query To Fetch Information Of User
    $queryAccountDeatils = "SELECT CustDob As 'Date of Birth', CustGender As 'Gender', CustAddress1 As 'Address', CustAddress2 As 'Region', CustPostCode As 'Post Code', CustPhone As 'Phone Number', CustEmail As 'Email', CustMsgPref As 'Message Preferences', CustMemberType As 'Member Type', CustSports As 'Sports' from customers where CustCode = '$cust'";
    $ses_sql4 = mysqli_query($conn, $queryAccountDeatils);
    $row4 = mysqli_fetch_assoc($ses_sql4);

    $Dob = $row4['Date of Birth'];
    $Address = $row4['Address'];
    $Gender = $row4['Gender'];
    $Region = $row4['Region'];
    $PostCode = $row4['Post Code'];
    $PhoneNumber = $row4['Phone Number'];
    $Email = $row4['Email'];
    $MessagePref = $row4['Message Preferences'];
    $MemberType = $row4['Member Type'];
    $Sports = $row4['Sports'];
    $_SESSION['Date of Birth'] = $Dob;
    $_SESSION['Address'] = $Address;
    $_SESSION['Gender'] = $Gender;
    $_SESSION['Region'] = $Region;
    $_SESSION['Post Code'] = $PostCode;
    $_SESSION['Phone Number'] = $PhoneNumber;
    $_SESSION['Email'] = $Email;
    $_SESSION['Message Preferences'] = $MessagePref;
    $_SESSION['Member Type'] = $MemberType;
    $_SESSION['Sports'] = $Sports;
    ?>
}
</script>

1 Ответ

0 голосов
/ 28 апреля 2020

PHP выполняется сервером перед отправкой содержимого страницы в браузер, после того как он поступил в браузер пользователя, может быть выполнен любой JS, отправленный вами вместе с HTML.

Однако вы не сможете go вернуться назад и выполнить больше PHP кода в зависимости от результата Javascript оператора if, как вы пытаетесь. У вас есть несколько вариантов, хотя.

Опция 1:

Использование PHP до создание некоторых JS выражений или функций, которые будут выполняться на стороне клиента на echo вставляя действительные JS выражения в тег <scirpt>. Но снова выполнение ваших MySQL запросов должно произойти в первую очередь во время фазы на стороне сервера.

Вариант 2:

Вы также можете использовать AJAX -тиль JS для вызова вторичных PHP сценариев, которые отображают ваши результаты как JSON или какой-либо другой расходный формат. jQuery имеет AJAX функции или посмотрите "Ax ios" или встроенную в браузер "fetch ()".

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

Вариант 3:

Забудьте о Javascript, если можете, и напишите If .. . Или войдите в PHP logi c.

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