2014-01-06 10 views
0

Этот вопрос состоит из двух частей:Как отправить длинную строку на страницу PHP?

Часть I - ограничение?

Я способен хранить данные в моей БД с этим:

www.mysite.com/myscript.php?testdata=abc123 

Это работает для короткой строки (например, «abc123») и на странице Echos, что было написано в БД; однако, если строка [testdata =] длиннее 512 символов, и я проверяю базу данных, она показывает, что строка добавлена, но она пустая, а также мой оператор echo в скрипте не отображает входную строку.

N.B. Я нахожусь на общем сервере и отправил по электронной почте мой узел, чтобы узнать, не является ли это ограничением.

Часть II - лучшая практика?

Если я могу пройти мимо выше препятствие, я хочу использовать строку, что это ~ 15к символов длинные, созданные в настольном приложении, которое сцепляет [TestData =] строка из различных параметров; Каков наилучший способ отправить длинную строку в PHP POST?

Заранее благодарим за помощь, я не слишком разбираюсь в PHP.

Edit: Таблица конфигурации: enter image description here

Edit2: Ряд аномалий с длинными строковых> 512 символов: enter image description here

Edit3: вот мой PHP скрипт, если он помогает:

<? 
include("connect.php"); 

$data = $_GET['testdata']; 
$result = mysql_query("INSERT INTO test (testdata) VALUES ('$data')"); 

if ($result) // Check result 
{ 
    echo $data;     
} 
else echo "Error ".$mysqli->error; 

mysql_close(); ?> 
+0

Какой тип поля db. 2 Я думаю, что вы хотите curl(), но вопрос не очень ясен. –

+0

Возможно, поле БД установлено в varchar (512), которое отрежет любые символы более 512 и не сохранит их. Измените его как тип поля ТЕКСТ для длинных строк – dennismonsewicz

+0

type = text, collation = latin1_swedish_ci – Data46

ответ

0

POST - это, безусловно, метод, который вы хотите использовать, и ваш лучший выбор с этим будет с cURL. Нечто подобное должно работать:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,  "http://www.mysite.com/myscript.php"); 
curl_setopt($ch, CURLOPT_POST,  TRUE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $my_really_long_string); 

$data = curl_exec($ch); 

Вам нужно изменить выше, чтобы включить дополнительные опции CURL, как в вашей среде, но что-то вроде этого является то, что вы хотите искать.

Вы хотите, чтобы ваше поле БД было достаточно длинным, чтобы удерживать действительно длинную строку.

+0

Спасибо, Ник, я попробую свернуть, если я смогу преодолеть ограничение 512 символов. Добавлено pic таблицы config, если это помогает в OP. – Data46

+0

@ Data46 Похоже, вы все в порядке с типом 'text'. –

0

Ответ 1 Да, максимальная длина URL-адреса имеет ограничение. Подробнее: What is the maximum possible length of a query string?

Ответ 2 Вы можете отправить строку как простой varible ($ _POST). Проверьте только настройки для максимальных входов/выходов в php.ini.

+0

Спасибо за ссылку; Второй ответ гласит: «URL-адрес похож на адрес на что-то, это не лучший способ передать информацию на что-то. Запрос POST гораздо более подходит, если он может быть использован». Таким образом, запрос POST отличается от «обычного URL»? Простите глупый вопрос, я могу просто написать Spell PHP. – Data46

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