2017-03-01 38 views
1

我完全对抗这个墙。我一直在试图从教程中学习PHP,向我的函数输出两个表单输入来生成图像。发送表单元素图像生成功能

我固定的问题,我混合了POST和GET,但现在我的剧本完全不发挥作用,我无法理解为什么 - 我敢肯定,这是hilds任何开发者游戏,但我在有点在我的头上。

这是我app.php

<?php 
    if (isset($_POST['submit'])) { 
     $data = $_POST['name']; // the data from text input. 
     $colour = $_POST['colour']; // data from colour radio. 
    } 
?> 
... 
    <form action="/app.php" method="post"> 
    <input type="text" name="name"/> 
    <input name="colour" type="radio" value="1">Red<br> 
    <input name="colour" type="radio" value="2">Blue<br> 
    <input name="colour" type="radio" value="3">Green<br> 
    <input type="submit" name="submit" value="Submit"> 
    </form> 
    <img src="pngfile.php?data=<?php print $data;?>" alt=""> 

呼叫pngfile.php

<?php 
    require_once 'functions.php'; // Requires and includes do not need brackets. 
    $textdata = $_POST['data']; 
    $colourdata = $_POST['colour']; 
    process($textdata,$colourdata); 
    exit; 
?> 

进而调用的functions.php

<?php 
/* Generate Image */ 
function process($textdata, $colourdata) 
{ 
... 

所有这一切都可以正常使用,但之前我添加的唯一更改是将所有元素更新为使用POST,并在代码中添加三个f iles添加所选颜色以发布。然而,使用这个调整后的代码,即使我知道我的主图像函数工作正常,我也没有图像输出,所以它必须是我的app.php和pngfile.php的错误。

任何人都可以请帮我在哪里,我错了一些指导?

+0

我在同一条船上,你..只是学习PHP。这是否会使用$ _SESSION? – oompahlumpa

回答

1

你的问题是,你可以发送此:

<img src="pngfile.php?data=<?php print $data;?>" alt=""> 

但你的代码是在寻找这样的:

$textdata = $_POST['data']; 
$colourdata = $_POST['colour']; 

有没有交,而且也肯定没有$_POST['colour']。然而,有一个$_GET['data'];我想这就是你要找的。作为URL的一部分传递的数据是GET请求的一部分,可在$_GET中找到。 $_POST适用于通过POST请求发送的数据。

+0

谢谢你的回复。所以,当你说我的代码正在寻找$ data,那是否意味着我应该改变我的行呢? '''$数据= $ _ POST [ '数据'];'''代替,而不是'''$的TextData = $ _ POST [ '数据'];''' – Jimmy

+0

'$ _POST'是当你提交真实填写一个数组一个HTTP POST请求。这里没有这样的要求发生。看到http://stackoverflow.com/questions/679013/get-vs-post-best-practices – miken32

+0

我不明白它是如何一个回旋处,因为我宁愿不保存到磁盘和我必须调用我的功能作为图像 – Jimmy