2014-04-03 47 views
0

我在嘗試將數據顯示到輸入字段而不是顯示數據庫時顯示'$row[coursename]',在<td>上的數據庫正常工作。將數據顯示到輸入文本字段中時出錯

如何解決這個問題的任何想法,我真的很新的PHP

<?php 
require("coneccion.php"); 

if(empty($_SESSION['user'])) 
{ 
    header("Location: index.php"); 
    die("Redirecting to index.php"); 
} 

$query = "SELECT courseid, coursename, id FROM courses where courseid = 179"; 

try 
{ 
    $stmt = $db->prepare($query); 
    $stmt->execute(); 
} 
catch(PDOException $ex) 
{ 
    die("Error"); 
} 

$rows = $stmt->fetchAll(); 
?> 
<table> 
    <tr> 
    <th>Name</th> 
    </tr> 
    <?php 
    foreach($rows as $row): 
    echo "<tr>"; 

     echo '<td><a href="#">' . htmlentities($row['coursename'], ENT_QUOTES, 'UTF-8') . '</a></td>'; 
     echo '<input type="text" name="coursename" value=" $row[coursename] " />'; 
     echo '</tr>'; 

    endforeach; 
echo "</table>"; 

回答

1

移動變量字符串之外:

echo '<input type="text" name="coursename" value="' .htmlentities($row['coursename']) . '" />'; 

如果不添加括號,則不能在其周圍添加雙引號(但會引發大量容易出錯的轉義)

echo "<input type=\"text\" name=\"coursename\" value=\"{htmlentities($row['coursename'])}\" />"; 
+0

謝謝你這個選項的工作原理,但它給出了一個警告注意:使用未定義的常量coursename –

+0

@CarlosPerez看到更新 - 你需要在你的數組索引中的字符串 – SomeKittens

+0

爲什麼你在前使用'\',sorry im –

0

這應該工作:

echo '<input type="text" name="coursename" value=" '.htmlentities($row['coursename']).' " />'; 
+0

這會打開XSS漏洞。 – SomeKittens

+0

的確,增加htmlentities – Companjo

相關問題