Comment passer d'une page à une autre en utilisant javascript?
À partir d'une page d'administration si l'utilisateur est valide, le navigateur doit aller vers une autre page.
Lorsqu'un utilisateur entre son nom d'utilisateur et son mot de passe, puis clique sur le bouton OK, une autre page s'affiche et la page de connexion est automatiquement fermée.
Comment puis-je faire cela avec JavaScript?
8 réponses
Pour rediriger simplement un navigateur en utilisant javascript:
window.location.href = "http://example.com/new_url";
Pour rediriger et soumettre un formulaire (c'est-à-dire les informations de connexion), ne nécessite aucun javascript:
<form action="/new_url" method="POST">
<input name="username">
<input type="password" name="password">
<button type="submit">Submit</button>
</form>
Vous ne sainement dépendent côté client JavaScript pour déterminer si l'utilisateur les informations d'identification sont correctes. Le navigateur (et tout le code qui l'exécute) est sous le contrôle de l'Utilisateur, pas de vous, il n'est donc pas digne de confiance.
Le nom d'utilisateur et le mot de passe doivent être saisis à l'aide d'un formulaire. Le bouton OK sera un bouton Soumettre. L'attribut action doit pointer vers une URL qui sera gérée par un programme qui vérifie les informations d'identification.
Ce programme peut être écrit en JavaScript, mais la façon dont vous allez à ce sujet dépendrait du moteur JavaScript Côté Serveur que vous utilisiez. Notez que SSJS n'est pas une technologie grand public, donc si vous voulez vraiment l'utiliser, vous devrez utiliser un hébergement spécialisé ou administrer votre propre serveur.
(une demi-décennie plus tard et SSJS est beaucoup plus commun grâce à Node.js, il est encore assez spécialisé cependant).
Si vous souhaitez rediriger par la suite, le programme doit émettre un emplacement HTTP en-tête .
Notez que vous devez vérifier que les informations d'identification sont correctes (généralement en stockant un jeton, qui n'est pas le mot de passe réel, dans un cookie) avant de sortir une page privée. Sinon, n'importe qui pourrait accéder aux pages privées en connaissant L'URL (et contournant ainsi le système de connexion).
Vérifier qu'un utilisateur est un administrateur en javascript entraîne des problèmes car le code javascript est visible pour tout le monde. Le serveur est celui qui doit faire la différence entre un administrateur et un utilisateur régulier après le processus de connexion, puis générer la nouvelle page en conséquence.
Peut-être que ce n'est pas ce que vous essayez de faire pour répondre à votre question:
window.location.href="<the page you are going to>";
Essayez ceci,
window.location.href="sample.html";
Ici sample.html
est une page suivante. Il va aller à la page suivante.
La solution correcte que j'obtiens est
<html>
<head>
<script type="text/javascript" language="JavaScript">
function clickedButton()
{
window.location = 'new url'
}
</script>
</head>
<form name="login_form" method="post">
..................
<input type="button" value="Login" onClick="clickedButton()"/>
</form>
</html>
Ici, la nouvelle url est donnée dans le guillemet unique.
Méthode plus facile est window.location.href = "http://example.com/new_url";
Mais Que faire si vous voulez vérifier si le nom d'utilisateur et le mot de passe sont vides ou non en utilisant JavaScript et l'envoyer au php pour vérifier si l'utilisateur dans la base de données. Vous pouvez le faire facilement en suivant ce code.
Formulaire Html -
<form name="myForm" onsubmit="return validateForm()" method="POST" action="login.php" >
<input type="text" name="username" id="username" />
<input type="password" name="password" id="password" />
<input type="submit" name="submitBt"value="LogIn" />
</form>
Validation Javascript-
function validateForm(){
var uname = document.forms["myForm"]["username"].value;
var pass = document.forms["myForm"]["password"].value;
if((!isEmpty(uname, "Log In")) && (!isEmpty(pass, "Password"))){
return true;
}else{
return false;
}
}
function isEmpty(elemValue, field){
if((elemValue == "") || (elemValue == null)){
alert("you can not have "+field+" field empty");
return true;
}else{
return false;
}
}
Vérifiez si l'utilisateur dans la base de données en utilisant php
<?php
$con = mysqli_connect("localhost","root","1234","users");
if(mysqli_connect_errno()){
echo "Couldn't connect ".mysqli_connect_error();
}else{
//echo "connection successful <br />";
}
$uname_tb = $_POST['username'];
$pass_tb = $_POST['password'];
$query ="SELECT * FROM user";
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result)){
if(($row['username'] == $uname_tb) && ($row['password'] == $pass_tb)){
echo "Login Successful";
header('Location: dashbord.php');
exit();
}else{
echo "You are not in our database".mysqli_connect_error();
}
}
mysqli_close($con);
?>
Pour les développeurs MVC, pour rediriger un navigateur en utilisant javascript:
window.location.href = "@Url.Action("Action", "Controller")";
J'espère que cela aiderait:
window.location.href = '/url_after_domain';