这里是我写的代码,我的问题是我想要在每个循环中我希望不同的电子邮件作为链接到另一个页面和该页面接收此电子邮件并做一些事情。我应该准备soemhow链接所以user_profile.php页面可以收到电子邮件吗?
</tr>
<?php foreach( $results as $row )
{
$email = $row['email'];
echo "<tr><td>";
echo $row['id'];
echo "</td><td>";
echo $email;
echo "</td><td>";
echo $row['name'];
echo "</td><td>";
echo $row['surname'];
echo "</td><td>";
echo $row['phone'];
echo "</td><td>";
echo $row['admin'];
echo "</td><td>";
echo $row['created_at'];
echo "</td><td>";
1. //echo "<a href =user_profile.php?email=$email </a>";
2. //echo href="user_profile.php?email=$row['email'];
3. //<li><a href="user_profile.php?email=<?php echo $email; "><?php echo $email; </a></li>
4. //<li><a href="user_profile.php?email=$email";><?php echo $email; </a></li>
echo "</td>";
echo "</tr>";
}
?>
</table>
答案 0 :(得分:3)
尝试更改
<li><a href="user_profile.php"><?php echo $email; ?></a></li>
要
<li><a href="user_profile.php?email=<?php echo $email; ?>"><?php echo $email; ?></a></li>
要在PHP中使用echo执行此操作,它将如下所示:
echo '<li><a href="user_profile.php?email='.$email.'">'.$email.'</a></li>';
然后在user_profile.php页面上,你可以抓住这样的电子邮件:
$email = $_GET['email'];
编辑:我修正了一个小错误并清理了一下。此外,您将共享的代码生成错误,因为您将html放在php代码块中。您需要调整代码以回显链接或关闭php bock以回显链接并为其余部分启动新块。
编辑编辑:如果用户正在提供电子邮件,请务必验证电子邮件,并且您可能还应该转义输出以确保用户无法在链接中注入和编码或html,尤其是在user_profile.php页面,您从网址获取电子邮件。在这种情况下,您应该像这样回复电子邮件地址:
echo htmlspecialchars($email);
请参阅这些链接(尤其是第二个链接)以获得解释。
http://php.net/manual/en/function.htmlspecialchars.php
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
修改编辑编辑:
我刚刚更新了您的代码,因为您为我添加的编辑中存在很多问题。
</tr>
<?php foreach( $results as $row )
{
$email = $row['email'];
echo "<tr><td>";
echo $row['id'];
echo "</td><td>";
echo $email;
echo "</td><td>";
echo $row['name'];
echo "</td><td>";
echo $row['surname'];
echo "</td><td>";
echo $row['phone'];
echo "</td><td>";
echo $row['admin'];
echo "</td><td>";
echo $row['created_at'];
echo "</td><td>";
echo '<li><a href="user_profile.php?email='.$email.'">'.$email.'</a></li>';
echo "</td>";
echo "</tr>";
}
?>
</table>