2015-04-29 11 views
5

Vì vậy, thông thường tôi có một biểu mẫu có hành động là liên kết xác minh tên người dùng và mật khẩu của người dùng (không thể đăng liên kết không thuộc về tôi) và nếu đúng thì nó cho tôi "ok" hoặc khác "không" Làm cách nào để tôi có thể thực hiện theo cách mà nếu có, nó dẫn tôi đến trang chỉ mục của tôi và nếu không đưa ra lỗi hoặc tải lại trang hoặc nội dung nào đó. Là của họ một cách để làm điều đó sự xuất hiện html chung là:HTML Biểu mẫu hai hành động

<form method="post" action="https://***************/login"> 
     <label for="book">Username:</label> 
     <input type="text" name="username" id="username" placeholder="Enter username"> 
     <label for="course">Password:</label> 
     <input type="password" name="password" id="password" placeholder="Enter password"> 
     <input type="submit" value="Log in"> 
    </form> 

vì vậy nếu tôi thay đổi nó thành con đường tôi muốn nó thì hành động nên thay đổi thành một cái gì đó giống như verify.php trong đó sẽ có sự xuất hiện của

<?php 
    # how do I use an if for a link using the info that was input 
    if($_POST["https://***************/login"]){ 
     #load index.html 
?> 
     <script type="text/javascript"> 
      window.location.href = 'index.html'; 
     </script> 
<?php 
    else{ 
     #load the page again 
?> 
     <script type="text/javascript"> 
      window.location.href = 'login.php'; 
     </script> 
<?php   
    } 
?> 

Tôi có một chút mới đối với php. Vì vậy, xin vui lòng giúp

+0

tôi khuyên bạn nên có bài dạng lại cho chính nó. Nếu có lỗi, hiển thị lại biểu mẫu với những lỗi đó. Nếu mọi thứ đều ổn, sau đó bạn đăng nhập logic (thêm người dùng vào phiên hoặc bất kỳ thứ gì) và sau đó chuyển hướng người dùng đến trang thành công. –

+0

khi bạn nói liên kết hành động đăng nhập không phải của bạn, nghĩa là bạn không có quyền truy cập để chỉnh sửa tệp xác minh đó? – FabioG

+0

@FabioG vâng tôi không có quyền truy cập để chỉnh sửa tệp xác minh – Shereen

Trả lời

1

Là không thể chỉnh sửa các tập tin xác minh đăng nhập, tôi nghĩ rằng lựa chọn tốt nhất của bạn là gửi biểu mẫu qua ajax và xử lý phản hồi của nó bằng javascript, có biểu mẫu của bạn như là

<form method="post" action="" onsubmit="return false;"> 
    <label for="book">Username:</label> 
    <input type="text" name="username" id="username" placeholder="Enter username"> 
    <label for="course">Password:</label> 
    <input type="password" name="password" id="password" placeholder="Enter password"> 
    <input type="submit" value="Log in" onclick="btnAuthenticateUser();"> 
</form> 

sau đó, ở dạng đơn giản như

<script type="text/javascript"> 
var xmlHttp; 
function GetXmlHttpObject() { 
    var xmlHttp = null; 
    try { 
     xmlHttp = new XMLHttpRequest(); 
    } 
    catch (e) { 
     try { 
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     catch (e) { 
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    } 
    return xmlHttp; 
} 
function btnAuthenticateUser() { 
    try { 
     var username = document.getElementById('username'); 
     var pwd = document.getElementById('password'); 
     xmlHttp = GetXmlHttpObject(); 
     if (xmlHttp == null) { 
      alert("Your browser does not support AJAX!"); 
      return; 
     } 
     var url = 'https://***************/login?username=' + username.value + '&password=' + pwd.value; 
     xmlHttp.onreadystatechange = function() { 
      if (xmlHttp.readyState == 4) { 
       if (xmlHttp.status == 200) { 
        if (xmlHttp.responseText == "ok") { 
         window.location = "index.html"; 
        } else { 
         location.reload(); 
        } 
       } 
       if (xmlHttp.readyState == 4) { 
        // LoadingPage 
       } 
      } 
     } 
     xmlHttp.open("POST", url, true); 
     xmlHttp.send(null); 
     if (xmlHttp.readyState == 1) { 
      //LoadingPage 
     } 
    } catch (e) { 
     alert(e.Message); 
    } 
} 
</script> 

hoặc nếu bạn đang sử dụng jQuery

function btnAuthenticateUser() { 
    $.ajax({ 
     async: true, 
     type: 'POST', 
     url: 'https://***************/login', 
     data: { username: $('#username').val(), password: $('#password').val()} 
    }) 
    .done(function (data) { 
     if (data == "ok") { 
      window.location = "index.html"; 
     }else{ 
      location.reload(); 
     } 
    }) 
    .fail(function (jqxhr, textStatus, error) { 
     GriterError(Global.FailTryAgain); 
    }); 
} 
+0

nếu tôi sử dụng mã javascript sau đó nó mang lại cho tôi một lỗi ở dòng 79 có xmlHttp.send (null); với một lỗi của mạng :: ERR_NAME_NOT_RESOLVED nếu tôi sử dụng jquery nó không nhập nếu (dữ liệu == "ok") nó trực tiếp tải lại trang ngay cả khi đầu vào được corect – Shereen

+0

không bao giờ nhớ nó chạy bằng cách thêm một tiêu đề và loại bỏ '== "ok"' – Shereen

3

Có một tiêu đề để chuyển hướng, bạn cần phải đặt nó trong kịch bản php của bạn:

header('Location: yoururl.com'); 

Để ghi lại lỗi từ kịch bản của bạn, bạn có thể đặt nó trong $ _SESSION biến:

session_start(); // at the beginning of your script 
$_SESSION['error'] = 'Password incorrect, please try again'; 

Và như vậy, trong trang khác, bạn có thể sử dụng một cái gì đó như:

if($_SESSION['error']) { 
    echo $_SESSION['error']; // display error 
    $_SESSION['error'] = ''; // delete it 
} 
0

Bạn có thể thực hiện hành động mà bạn cần trên tập lệnh xác minh của mình và sau đó ném vào chuyển hướng bằng cách sử dụng các tiêu đề trong PHP.

Sau hành động xác minh bạn có thể chọn trang để đi đến thông qua một nếu/sau đó tuyên bố

ví dụ:

if ([the action you wanted succeeded]) { 
    header('Location: index.php'); 
} 
else { 
    header('Location: login.php'); 
} 
Các vấn đề liên quan