2016-04-20 4 views
-1

Я новичок в javascript, и я пишу приложение с использованием javascript с php на стороне сервера, я пытаюсь использовать AJAX для отправки данных на мой php-скрипт. Это мой код ниже

Javascript:

$(document).on("click", ".uib_w_18", function(evt) 
{ 
    var lecturer = document.getElementById("reg_name").value; 
    //var lecturer = $("#reg_name").val(); 
    var dept = document.getElementById("reg_dept").value; 
    var level = document.getElementById("reg_level").value; 
    var course = document.getElementById("reg_course").value; 
    var start = document.getElementById("reg_time_1").value; 
    var ade = 2; 
    window.alert(lecturer); 
    var dataString = '?ade=' + ade+'&lecturer='+lecturer+'&dept='+dept +'&level='+level+'&course='+course+'&start='+start; 

    $.ajax({ 
      type: "GET", 
      url: 'http://localhost/my_queries.php', 
      data: dataString, 
      success: window.alert ("I've been to localhost.") 
     }); 
    window.alert(dataString); 
}); 

и на стороне сервера:

<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbname = "myDatabase"; 
$dbpass = null; 
//Connect to MySQL Server 
echo "yo"; 
$con = mysqli_connect($dbhost, $dbuser,$dbpass,$dbname); 
$level = $_GET['level']; 
$lecturer = $_GET['lecturer']; 
$sql = "INSERT INTO level1(message, department) 
     VALUES ($level,'Jane')"; 
$sql2 = "INSERT INTO level1(message, department) 
     VALUES ($lecturer,'Jane')"; 
if ($con->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $con->error; 
} 

?> 

теперь проблема '$ SQL1' выполняется успешно, но '$ SQL2' не делает. Я был на это некоторое время и выяснил, что $ _GET в скрипте работает только для числовых данных. Я подтвердил, что проблема связана не с типом данных моей таблицы, я могу вставлять литеральные строки непосредственно из PHP, я также подтверждаю, что «dataString» собирает данные так же, как я хочу. (window.alert (dataString);) отображает правильный вывод. Я чувствую, что мне не хватает чего-то очень простого, но я просто не могу понять, что это такое. и я почувствовал, что дополнительные пары глаз помогут, любая помощь будет оценена, спасибо.

+3

[Обязательное предупреждение инъекции SQL] (https://stackoverflow.com/questions/60174/how-can-i-prevent -sql-injection-in-php) – jDo

+3

* «но« $ sql2 »нет.» * - Простой; вы никогда не исполняли его. И если '$ lecturer' является строкой в' VALUES ($ lecturer, 'Jane') ', это тоже не поможет. –

ответ

0

Правильный способ передать "динамические" запросов SQL, как так:

$sql = "INSERT INTO level1(message, department) 
     VALUES ('".$level."','Jane')"; 
$sql2 = "INSERT INTO level1(message, department) 
     VALUES ('".$lecturer."','Jane')"; 
+0

Спасибо большое: D, Кристиан Бонато. Это просто решило проблему! .. Большое спасибо. – lukman

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