2013-04-29 57 views
-1

在这段代码中,你可以看到从MySQL数据库中排列数据并准备改变它们。 但我有一个变量$_POST[$here]的问题。我该如何插入变量到那个地方。阅读代码以获得更好的理解。此代码不起作用。有没有其他的方法。或者这是不可能做这样的事情。如果我不使用变量来改变我的每一个或没有人的价值。我现在在哭,这真是令人沮丧的问题。感谢您的每一个答案...变量在POST

while ($row = mysql_fetch_array($result) or die(mysql_error())){ 
$link = $row['link']; 
$tittle = $row['tittle']; 
$content= $row['content']; 
echo "<div>"; 
echo "<form name='"; echo $link; echo "' method='POST' action='login.php'>"; 
echo "<h1>"; echo $link; echo "</h1>"; 
echo "<h3>"; echo $tittle; echo "</h3>"; 
echo "<input type='text' name='"; echo $link; echo "tittle'>"; 
echo "<h3>"; echo $content; echo "</h3>"; 
echo "<textarea name='"; echo $link; echo "content'></textarea>"; 
echo "<input type='submit' name='"; echo $link; echo "' value='change'>"; 
echo "</form>"; 
echo "</div>"; 
$var1 = $link."tittle"; $titt = $_POST[$var1]; 
$var2 = $link."content"; $ten = $_POST[$var2]; 
mysql_query("UPDATE inbox SET tittle='".$titt."', content='".$ten."' WHERE link='".$link."'"); 
echo $link; 
} 

我修好了!

+2

不要再使用'mysql_query',而是使用prepared语句。 – MMM 2013-04-29 16:48:57

+0

也**逃避您的输入**,永远不会永远不会信任'$ _POST'。 – MMM 2013-04-29 16:49:37

+0

mysql_函数已被删除。使用PDO代替http://php.net/manual/en/book.pdo.php – Fredd 2013-04-29 16:50:13

回答

0

剔除安全性错误,你可以试试这个:

while ($row = mysql_fetch_array($result) or die(mysql_error())){ 
    $link = $row['link']; 
    $tittle = $row['tittle']; 
    $content= $row['content']; 
    echo "<div>"; 
    echo "<form name='" . $link . "' method='POST'>"; 
    echo "<h1>" . $link . "</h1>"; 
    echo "<h3>" . $tittle . "</h3>"; 
    echo "<input type='text' name='" . $link . "tittle'>"; 
    echo "<h3>" . $content . "</h3>"; 
    echo "<textarea name='" . $link . "content'></textarea>"; 
    echo "<input type='submit' name='" . $link . "' value='change'>"; 
    echo "</form>"; 
    echo "</div>"; 

    $var1 = $link."tittle"; 
    $var2 = $link."content"; 

    if (isset($_POST[$var1]) and isset($_POST[$var2])) { 
     $titt = $_POST[$var1]; 
     $ten = $_POST[$var2]; 
     mysql_query("UPDATE inbox SET tittle='".$titt."', content='".$ten."' WHERE link='".$link."'"); 
    } 

    echo $link; 
} 
+0

没有帮助;( – 2013-04-29 17:10:46

+0

我认为这种方式插入变量到$ _POST是不正确的。支持它我说这太令人沮丧 – 2013-04-29 17:14:03

+0

你确定表单已经被提交试试'var_dump($ _ POST)'并且看看你是否使用了正确的索引 – Marcos 2013-04-29 17:27:37

2

有很多的你的代码错误:

  1. 您使用mysql_*功能,而不是PDO
  2. 你不要逃避你$_POST值暴露您的网站的任何黑客侵入。至少要用mysql_real_escape_string(),但见1点
  3. 您定义$titt然后用$tit,这会导致错误
  4. 你保持echo荷兰国际集团,而不是简单地连接字符串,然后echo荷兰国际集团该字符串

有很多修复...

+0

我知道,但有很多错误,只是不致命..有没有问题,我只需要将变量插入$ _POST ... 现在不需要转义字符串我写它最简单我知道写在这里... – 2013-04-29 17:01:51

+0

我修正了小错误...没有帮助... – 2013-04-29 17:09:05