当name包含单引号时,使用real ='image Name'时出现问题

时间:2012-07-24 17:59:28

标签: jquery mysql html rel

我的页面上有一张表格,上面显示了卡片名称,成本,设置,稀有度。此信息来自数据库表。当用户将鼠标悬停在表格中的任何卡片名称上时,会弹出卡片的图像,一旦移除鼠标,图像就会关闭(使用jQuery脚本)。

这就是cardname单元格代码的外观:

<td><a href='#' class='screenshot' rel='cards/$cardname.jpg'>$cardname</a></td>

一切正常,除非$ cardname包含'搞乱代码并阻止图像显示(卡名不工作的例子可能是“Faith's Shield”)。我尝试使用'代替,但这似乎也不起作用。

我知道这可能不是实现我想要做的最好的方法,但我对网络编程很新,这似乎是一个简单的技巧,让它发挥作用。

print "<table id='cardTable'>
                <tr>
                    <th>Add to deck</th>
                    <th>Cardname</th>
                    <th>Cost</th>
                    <th>Set</th>
                    <th>Rarity</th>
                </tr>";

        while ($row = mysql_fetch_array($result)) {
            $cardname = $row['cardname'];
            $cost = $row['cost'];
            $set = $row['set'];
            $rarity = $row['rarity'];
            $idCard = $row['idCard'];

            print "<tr>
                    <td>
                    <form action='' method='post'>
                    <p><button type='submit' name='addCard' class='addCard' value='$idCard' title='Add card to deck'></button>
                    <select name='amount'>
                    <option value='1'>1</option>
                    <option value='2'>2</option>
                    <option value='3'>3</option>
                    <option value='4'>4</option>
                    </select></p>
                    </form>
                    </td>
                    <td><a href='#' class='screenshot' rel='cards/$cardname.jpg'>$cardname</a></td>
                    <td>$cost</td>
                    <td>$set</td>
                    <td>$rarity</td>
                </tr>";

        }
            print "</table>";

2 个答案:

答案 0 :(得分:4)

尝试用双引号括起属性值(attrib =&#34; value&#34;)。那么在价值中是否有单一报价并不重要。另外,用

替换值内的双引号
&quot;

答案 1 :(得分:2)

<td>
    <a href='#' class='screenshot' rel='cards/<?php echo str_replace("'", '', $cardname); ?>.jpg'></a>
</td>

更合适的是,正如Felix所建议的那样使用htmlspecialchars,它将转换所有特殊的动作......

<td>
    <a href='#' class='screenshot' rel='cards/<?php echo htmlspecialchars($cardname); ?>.jpg'></a>
</td>