$ POST PHP Issue - PullRequest
       4

$ POST PHP Issue

0 голосов
/ 23 июля 2011

Интересно, сможет ли кто-нибудь помочь мне, пожалуйста?

В настоящее время я работаю над веб-сайтом, на котором через форму ввода пользователя, XML и PHP пользователи будут добавлять и сохранять информацию о карте Google на моемБаза данных SQL.

Я успешно использовал один из примеров на сайте Google, который объясняет, как использовать PHP и XML для сохранения пользовательской информации в базе данных.

В этом примере используетсяМетод $ GET, но из информации, которую я читал в Интернете, вариант $ POST кажется лучшим способом для использования.

Однако, когда я изменяю кодирование на метод $ POST, я могу создатьзапись в базе данных, но значения, введенные в форму, не копируются в базу данных.Я знаю, что, возможно, я совершаю по-настоящему глупую ошибку для начинающих, но мне просто интересно, сможет ли кто-нибудь сказать мне, что мне нужно сделать, чтобы заставить его работать.

Я включил урезанные версиифайлов ниже.

Большое спасибо

Крис

Кнопка отправки формы HTML

function savedata() { 
var locationname = document.getElementById("locationname").value; 
var returnedaddress = document.getElementById("returnedaddress").value; 

    var url = "phpfilename.php?locationname=" + locationname + "&returnedaddress=" +        returnedaddress;

downloadUrl(url, function(data, responseCode) { 
if (responseCode == 200 && data.length <= 1) { 
} 
}); 
} 

function downloadUrl(url, callback) { 
var request = window.ActiveXObject ? 
new ActiveXObject('Microsoft.XMLHTTP') : 
new XMLHttpRequest; 

request.onreadystatechange = function() { 
if (request.readyState == 4) { 
request.onreadystatechange = doNothing; 
callback(request.responseText, request.status); 
} 
}; 

request.open('POST', url, true); 
request.send(null); 
} 

function doNothing() {} 
</script>

Форма HTML

 <body>
<label><br />
</label>
<form name="searchforlocationformgeocode" id="searchforlocationformgeocode"> 
<div>
<label for="address">
<div align="center">
  <p>Location Name</p>
  <p>
    <input name="locationname" type="text" id="locationname" size="80" />
    </p>
</div>
    <p align="left"><label>Returned Address</label>&nbsp;</p>
      <div align="left">
        <input name="returnedaddress" type="text" id="returnedaddress" size="100" />
    </div>

Файл PHP

    <?php
require("phpfilename.php");

// Gets data from URL parameters
$locationname = $_POST['locationname'];
$address = $_POST['returnedaddress'];

// Opens a connection to a MySQL server
$connection = mysql_connect ("xxxxxxxx", $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}


// Insert new row with user data
$query = sprintf("INSERT INTO tablename " .
         " (locationname, address) " .
         " VALUES ('%s', '%s', '%s' );",
         mysql_real_escape_string($locationname),
         mysql_real_escape_string($address));

$result = mysql_query($query);

if (!$result) {
  die('Invalid query: ' . mysql_error());
}

?>

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Общее правило заключается в том, что если ваша целевая страница должна просто извлекать некоторую информацию с помощью GET, то все в порядке, однако если ваши данные должны вносить какие-либо изменения в базу данных и т. Д., Вы всегда должны использовать POST.

Кстати, ваш тег формы должен содержать метод, который вы используете для отправки данных в этом случае method="post"

<form name="searchforlocationformgeocode" id="searchforlocationformgeocode" method="post"> 
1 голос
/ 23 июля 2011

Вы передаете значения, используя строку запроса, для их получения необходимо использовать $ _GET.

var url = "phpfilename.php?locationname=" + locationname + "&returnedaddress=" +        returnedaddress;

Чтобы использовать $ _POST вместо добавления кодированных пар имя / значение в конец URL-адреса, отправьте их с помощью метода request.send ():

request.send("locationname=" + locationname + "&returnedaddress=" + returnedaddress);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...