Перенаправление на другую страницу с помощью php-скрипта, который вызывается с помощью ajax - PullRequest
0 голосов
/ 13 июня 2018

Я создаю сценарий входа (только для начала, я посмотрю, как позже зашифровать пароль).Но я не могу понять, как перенаправить на определенную страницу.

У меня есть две возможности: администратор или обычный пользователь.

Мой скрипт:

$conn = new Connection;

$username = $_POST['username'];
$userpassword = $_POST['userpassword'];

if(empty($username) && empty($userpassword)){
  echo 'Vul een gebruikersnaam en wachtwoord in';
}else if(empty($username)){
  echo 'Vul een gebruikersnaam in';
}else if(empty($userpassword)){
  echo 'Vul een wachtwoord in';
}else{
  //Both filled in, begin logincode:
  $getuser = "SELECT * FROM users WHERE username = '".$conn->real_escape_string($username)."'";
  $getusercon = $conn->query($getuser);
  $getuser = $getusercon->fetch_assoc();

  if($userpassword == $getuser['password']){
    if($getuser['rights'] == '1'){
      $_SESSION['user'] = 'admin';
      // header("Location: http://www.mysite.nl/addcompany.php");
      // exit();
      header("Location: http://www.mysite.nl/addcompany.php");
      die();
      echo 'Je bent ingelogd als '.$_SESSION['user'].'';
    }else{
      $_SESSION['user'] = 'user';
      echo 'Je bent ingelogd als '.$_SESSION['user'].'';
    }
  }else{
    echo 'Wachtwoord en gebruikersnaam komen niet overeen';
  }
}

Мой код ajax:

// Login Ajax Code
$( "#content" ).on("submit", "#loginform", function( event ) {
  // Stop normal form behaviour
  event.preventDefault();
  // Haal de inputvelden op met zijn waardes
  var $form = $( this ),
  $username = $form.find( "input[name='username']" ).val(),
  $userpassword = $form.find( "input[name='userpassword']" ).val(),
  url = $form.attr( "action" );
  // Post above values to the action of the form
  var posting = $.post( url, { username: $username, userpassword: $userpassword} );
  // Show result in a div
  posting.done(function( data ) {
    $( "#loginresult" ).empty().slideDown('fast').append( data );
  });
});

Я пытался использовать это:

header("Location: http://www.mysite.nl/addcompany.php");
die();

Но я просто вижу, как мой прелоадер вращается бесконечно, и в консоли я вижу следующее:

[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

index.php:1 [DOM] Found 8 elements with non-unique id #example-text-input: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms)

Но этот идентификатор находится на странице, которую я тоже хочу перенаправить, за исключением того, что он не перенаправляет и просто остается на той же странице с вращением моего предварительного загрузчика и этими сообщениями.

Что я могу сделать

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете отправить в ответе PHP флаг для перенаправления, а на JS вы можете добавить.

Например:

window.location.replace("http://stackoverflow.com");
window.location.href = "http://stackoverflow.com";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...