2013-04-29 55 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