2017-02-10 3 views
0

Я попытался использовать ajax для отображения сообщения об ошибке, если имя пользователя или пароль неверны, и перейдите в tabeeb.html или secc.php, если они верны. но вместо перехода на правильную страницу страница отображается в диалоговом окне, например, img. что случилось?форма входа с ajax и javascript

это форма

<form method="post" class="bounceInDown animated"> 
<input type="text" name="u" id="u" placeholder="User Name" class="bbb"><br> 
<input type="password" name="p" id="p" placeholder="Password" class="bbb">  
<input type="button" onClick="myFunction()" name="loginbtn" class=" btn 
btn-primary " value="Log in"> 
</form> 

это функция

function myFunction(){ 

var u = document.getElementById("u").value; 
var p = document.getElementById("p").value; 
var dataString = 'u1=' + u + '&p1=' + p ; 

if (u == '' || p == '') { 
alert("Please Fill All Fieldsssssss");} 


else { 
// AJAX code to submit form. 
$.ajax({ 
type: "POST", 
url: "ajaxjss.php", 
data: dataString, 
cache: false, 
success: function(html) { 

alert(html); 
} 
}); 
} 
return false; 

MyFunction(), и это ajaxjss.php

<?php 
// Fetching Values From URL 
$u2 = $_POST['u1']; 
$p2 = $_POST['p1']; 

$connection = mysql_connect("localhost", "root", "password"); 
// Establishing Connection with Server.. 
$db = mysql_select_db("project", $connection); // Selecting Database 

if (isset($_POST['u1'])) { 


// من تحت هو التجربة 
$result = mysql_query("select * from test where student_name = '$u2' ") or 
die("faild"); 

$row = mysql_fetch_array($result); 


if($row['student_name'] == $u2 && $row['student_password']==$p2) 
{ $NoOFLetter = strlen($u2); 

$result = substr($u2, $NoOFLetter-3, $NoOFLetter); 
if($result == "doc"){header('Location: tabeeb.html'); exit; } 
if($result == "sec"){header('Location: secc.php'); exit;} 

exit; } 

else{ 
$error_message = "Error in username or password!";} 

// كل اللى فوق هو التجربة 

if(!$query){ 

echo "error"; 

}else{echo "Form Submitted succesfully";}} 
mysql_close($connection); // Connection Closed 
?> 
+0

اسمعني .. هل تستخدم apache? –

+3

a) ** не используйте ** устаревшие функции 'mysql', которые также удаляются в PHP7. вместо этого используйте 'mysqli' или' PDO'. b) ваш код широко открыт для ** SQL Injection ** - представьте, что кто-то разместил имя пользователя, например ''; Тест DROP TABLE; - 'c) - это ваш реальный пароль в вашей функции mysql_connect? если да: ** немедленно измените **. (также: вы никогда не должны использовать учетную запись root для каких-либо задач, кроме административных задач) d) ** никогда не когда-либо ** хранить пароли обычного текста! используйте 'password_hash()' и 'password_verify()' –

+0

sql injection ... security venerability –

ответ

0

Теперь проверьте его

function myFunction(){ 
 

 
var u = document.getElementById("u").value; 
 
var p = document.getElementById("p").value; 
 
var dataString = 'u1=' + u + '&p1=' + p ; 
 

 
if (u == '' || p == '') { 
 
alert("Please Fill All Fieldsssssss");} 
 

 

 
else { 
 
// AJAX code to submit form. 
 
$.ajax({ 
 
type: "POST", 
 
url: "ajaxjss.php", 
 
data: dataString, 
 
cache: false, 
 
success: function(html) { 
 
    if(html=="error"){ 
 
    alert(html); 
 
    } 
 
    else{ 
 
    window.location.href="secc.php"; 
 
    } 
 

 
} 
 
}); 
 
} 
 
return false;