2016-09-30 6 views
-1

Я пытаюсь передать переменные из формы на страницу веб-сайта. Вот руководство, которое я следующее: https://www.jotform.com/help/213-Send-POST-Data-From-JotForm-Using-PHP-in-Custom-Thank-You-PagePass php Переменные между страницами

Вот код на моей странице redirect.php:

<?php 
    $answers = $_POST; 
     $url1 = "http://www.example.com/results"; 

     $var1 = "?user_email =".urlencode($answers[user_email]); 
     $var2 = "&input_63 =".urlencode($answers[input_63]); 
     $var3 = "&input_64 =".urlencode($answers[input_64]); 
     $var4 = "&input_65 =".urlencode($answers[input_65]); 
     $var5 = "&input_66 =".urlencode($answers[input_66]); 
     $var6 = "&input_67 =".urlencode($answers[input_67]); 
     $var7 = "&input_68 =".urlencode($answers[input_68]); 
     $var8 = "&input_69 =".urlencode($answers[input_69]); 
     $var9 = "&input_70 =".urlencode($answers[input_71]); 
     $var10 = "&input_71 =".urlencode($answers[input_71]); 
     $var11 = "&input_55 =".urlencode($answers[input_55]); 
     $var12 = "&input_56 =".urlencode($answers[input_56]); 
     $var13 = "&input_57 =".urlencode($answers[input_57]); 
     $url2=$url1.$var1.$var2.$var3.$var4.$var5.$var6.$var7.$var8.$var9.$var10.$var11.$var12.$var13; 
     header("location:$url2"); 
    ?> 

Переменные отображаются на странице, как «».

У меня нет понятия, что делать, и помощь будет принята с благодарностью.

+2

Если это из учебника, то учебник дерьмо, уйти от него. – AbraCadaver

+0

@AbraCadaver Один из них застрял и не выпустил из своего другого связанного/repost http://stackoverflow.com/q/39772219/ –

+0

Возможный дубликат [Перенаправление php-переменных на новую веб-страницу + использование] (http: //stackoverflow.com/questions/39772219/redirecting-php-variables-to-new-webpage-use) –

ответ

1

Если вы можете изменить имена ввода в массив, то это намного проще. Если нет, вы можете передать данные несколькими способами. Использование сеанса:

session_start(); 
$_SESSION['answers'] = $_POST; 
header("location: $url1"); 

Тогда на следующей странице:

session_start(); 
$answers = $_SESSION['answers']; 
echo $answers['user_email']; 

Я бы не сделать это, но если вы настаиваете на методе URL, то это гораздо проще:

$query = http_build_query($_POST); 
header("location: $url1?$query"); 

http_build_query() будет кодировать URL и строить строку.

+0

Я уверен, что ваш ответ решит то, что они пытаются сделать. Увидев их другое подобное сообщение http://stackoverflow.com/q/39772219/, OP сообщает следующее: * «В настоящее время он отображает переменную как' '' '" *. Мне интересно, не будет ли это так и для этого вопроса, и как он использует этот файл, как я уже говорил в комментарии по другому вопросу, [этот комментарий] (http://stackoverflow.com/вопросы/39772219/перенаправление-PHP-переменные-к-новому-веб-страница назначение # comment66839030_39772219). –

0

передавать переменные из формы на страницу PHP в PHP довольно просто

Первая ваша форма

<form method="POST" action="page_to_send_data_to.php"> 
    <input type="" name="something" value=""></input> 
    <input type="" name="somethingelse" value=""></input> 
    <input type="submit"></input> 
</form> 

Затем на странице вы отправляете

<?php 
if(!isset($_POST['something']) { 
    $var1 = $_POST['something']; 
    $var2 = $_POST['something']; 
} 
echo $var1.' '.$var2; 
?> 
+0

Я предложил это как ответ, потому что я не вижу возможности представить что-то как POST и построить из него пользовательскую строку url, вы могли бы просто использовать GET вместо POST и вырезать перенаправление. Кроме того, я действительно не вижу, чтобы цель заключалась в том, чтобы хранить данные в сеансе. Я также не вижу никакой логики в построении массива из данных. Я полагаю, что, не видя формы и то, что они делают, это немного угадающая игра, но если это базовые формы, я настоятельно рекомендую это решение. – Bruce

0

Ваш URL является вероятно, поврежден из-за пробелов, вы не устанавливаете input_63 на что-либо, потому что вы заканчиваете пробелом, вы устанавливаете input_63_ (с подчеркиванием, пробелы преобразуются в u nderscore по логике синтаксического анализа php), которую я ставлю не в том, что вы ищете в следующем скрипте. и прекратите делать ваши запросы вручную, в подавляющем большинстве случаев вы должны использовать http_build_query. как

$url2=$url1.'?'.http_build_query(array('input63'=>$answers[input_63],'input_64'=>$answers[input_64]))

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