2013-11-27 4 views
0

У меня есть этот PHP код, который вставляет идентификатор, Firstname и фамилия:PHP ВСТАВИТЬ хостинг базы данных

<?php 
header('Access-Control-Allow-Origin: *'); 

$conn = mysql_connect('localhost', 'happy', '***'); 
$db = mysql_select_db('dbtest'); 


$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 

mysql_query("INSERT INTO tbltry (firstname, lastname) VALUES('$firstname', '$lastname')"); 
?> 

И у меня есть этот HTML с помощью AJAX:

<script> 
function save(){ 
var xmlhttp; 

     if (window.XMLHttpRequest) 
     { 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 


     xmlhttp.open("POST", " **url** ", true); 
     console.log("added"); 
     xmlhttp.send(); 

     xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 

      } 
     } 
} 
</script> 
</head> 
<body> 

Firstname: <input type="text" name="firstname" id="firstname"> 
Lastname: <input type="text" name="lastname" id="lastname"> 
<button onclick="save()">Save</button> 
</body> 

Это два работают отлично, это вставьте новую строку в базу данных, но единственными данными, которые были вставлены, является идентификатор в столбце id и имя столбца, а lastname пустое.

Может ли кто-нибудь сказать, что мне не хватает? Любая помощь будет оценена по достоинству.

+1

вы можете исправить это орфографический $ fisrtname до $ Firstname – Satya

+1

Side Примечания: Ваш PHP скрипт имеет открытое приглашение для атак пути внедрения SQL , – SuperSaiyan

+1

также попробуйте перейти от mysql * расширений к PDO, поскольку mysql * расширения официально устарели – Satya

ответ

0

попробовать что-то вроде этого,

function save(){ 
var fname = document.getElementById("firstname").value; 
var lname = document.getElementById("lastname").value; 
var data = "firstname="+fname+"&lastname="+lname; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 

      alert(xmlhttp.responseText); 

     } 
     } 

    xmlhttp.open("POST","url?"+data,true); 
    xmlhttp.send(); 

} 

ваш тестовый файл должен быть как

<?php 

$conn = mysql_connect('localhost', 'happy', '***'); 
$db = mysql_select_db('dbtest'); 


$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 

mysql_query("INSERT INTO tbltry (firstname, lastname) VALUES('$firstname', '$lastname')"); 
?> 

Вместо того, чтобы использовать старый XMLHTTP его лучше использовать jQuery.Ajax, также MySQL функции устарели использование PDO.

Для обеспечения безопасности вы должны использовать любую функцию escape-функции mysql.

Надеется, что это помогает ..

+0

Я пробовал это, но имя и фамилия по-прежнему пустые и не отображаются. Я не уверен, правильно ли я сделал это: 'xmlhttp.open (« GET »,« http://url.com/dir/testing.php? »+ Data, true);' И этот здесь: 'var data =" firstname = "+ fname +" & lastname = "+ lname;' потому что имя lastname имеет '&' и имя первого не имеет. –

+0

его параметр строки запроса, то весь url будет похож на http://url.com/dir/testing.php?firstname=your name & lastname = ваше имя, второе обязательное и проверить мой обновленный код. Ваше первое имя в запросе имеет опечатку (заклинание выпуск). –

+0

Попробуйте мой код точно. alert() не имеет каких-либо данных bcoz, ваш ничего не выводит с этой страницы. –

0

Попробуйте

<script> 
function save(){ 
var xmlhttp; 

var fname = document.getElementById("firstname").value; 
var lname = document.getElementById("lastname").value; 

var data = {firstname:fname,lastname:lname}; 
     if (window.XMLHttpRequest) 
     { 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 


     xmlhttp.open("POST", " **url** ", true); 
     console.log("added"); 
     xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
     xmlhttp.send(data); 

     xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 

      } 
     } 
} 

+0

Пробовал этот, но все еще пустой. –

Смежные вопросы