Результат обновления базы данных из Flash

Я хочу обновить базу данных с помощью Flash (ввод текста)

Вот мой php код

<?php

mysql_pconnect ("localhost", "root", "");
mysql_select_db ("adaptasi");

$isi = isset($_POST['OutData']);

$query2 = "UPDATE materi SET isi='$isi' WHERE id = 1";

$result2=mysql_query($query2) or die("Query Failed : ".mysql_error());

?>

Вот мой Actionscript 2

function SubmitData()
{
trace("Sending");

var OutData = new LoadVars();
text_morfologi.text = OutData.OutData;

filepath = "http://localhost/adaptasi/";
OutData.sendAndLoad(filepath + "editmorfologi.php", OutData, "POST");

}

btnsave.onRelease = function()
{
SubmitData();
btnedit.visible = true;
btnsave.visible = false;
};

Но результат isi в базе данных — «1», а не текст, который я ввожу в текстовое поле.
Спасибо

-1

Решение

У вас есть некоторые проблемы в вашем коде:

ActionScript 2:

Чтобы отправить данные с помощью LoadVars объект, который вы должны прикрепить к этому объекту в качестве его свойств, и если вы хотите получить ответ от вашего серверного скрипта, вы можете использовать LoadVars.sendAndLoad() но если вы хотите просто отправить эти данные, не ожидая ответа, вы можете использовать LoadVars.send().

Предполагается, что вы будете использовать sendAndLoad() функция, так что ваш код может быть таким:

var url:String = 'http://www.example.com/update.php';

// the LoadVars object that will receive (load) a response from the server
var receiver:LoadVars = new LoadVars();
receiver.onLoad = function(success:Boolean)
{
if (success) {
trace(receiver.response);    // gives for example : update successful
} else {
trace('error');
}
}

// the LoadVars object which will send (post) some data to the server
var sender:LoadVars = new LoadVars();
sender.id = txt_id.text;
sender.name = txt_name.text;
sender.sendAndLoad(url, receiver);    // we don't set the method to POST because that's its default value

PHP:

Как упоминалось во многих комментариях, PHP isset() Функция используется для проверки, если переменная установлена ​​и не имеет значение NULL, и возвращает логическое значение ( TRUE из FALSE ) когда это приведение (преобразование) в строку дам тебе 1 за TRUE и « (пустая строка) для FALSE,

В вашем случае, и в соответствии с вами, я думаю, что в качестве переменной $_POST['OutData'] очевидно установлено, isset($_POST['OutData']) истина, которая будет устанавливать значение $isi в 1, так что вы получите:

$query2 = "UPDATE materi SET isi='1' WHERE id = 1";

но в соответствии с вашим опубликованным кодом, я думаю, что вы должны получить:

$query2 = "UPDATE materi SET isi='' WHERE id = 1";

Возвращаясь к нашему текущему примеру, мы получим две переменные POST (id и name), отправленные сценарием AS2 для обновления БД, а затем вернем ответ, если данные были успешно обновлены или нет:

<?php

if(isset($_POST['id'] && isset($_POST['name']))
{
$id = $_POST['id'];
$name = $_POST['name'];

mysql_pconnect('localhost', 'root', '');
mysql_select_db('my_db');

$query = "UPDATE users SET name = '$name' WHERE id = $id";
$result = mysql_query($query);

if($result){
echo 'response=update successful';
} else {
echo 'response=update failed';
}
}

?>

Конечно, здесь я попытался дать вам очень простой пример рабочего кода в соответствии с вашим текущим. Вы должны знать, что для вашей стороны PHP расширение «mysql» устарело в PHP 5.5.0 и было удалено в PHP 7, поэтому вы должны подумать об использовании «MySQLi» или же «ПДО» расширения, подробнее об этом, посмотрите Вот, также не забудьте дезинфицировать, утверждать а также побег данные любого пользователя … и для стороны ActionScript, возможно, пришло время начать изучение ActionScript 3

Надеюсь, что это может помочь.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]