我在一个php中使用过这个方法:
$user = mysql_fetch_assoc($result);
$user1 = $user['Email'];
header (Location: modify_email.php?user1=$user1);
另一个.php:
Email:
<input name="email" value="<?php echo $_GET['user1'];?>" required="" autofocus="" type="email">
但我只获得了第一部分,而不是更多。
示例:如果我有user1@user.com,我收到了user1
如何在不将输入类型输入文本的情况下解决问题?
我已经看到了问题,就是当我在数据库中插入电子邮件时,它只将第一部分保存到@,为什么会出现问题?
我使用带有输入类型电子邮件的表单来发送
答案 0 :(得分:3)
您的代码存在很多问题。
1)不要使用mysql,而是使用mysqli或PDO
2)使用session_start()和$ _SESSION;
session_start();
$_SESSION['user'] = mysql_fetch_assoc($result);
$_SESSION['email'] = $user['Email'];
header('Location: w/e');
然后做
session_start()
<input name="email" value="<?php echo $_SESSION['email'];?>" required="" autofocus="" type="email">
答案 1 :(得分:0)
您应该将标题括在双引号中。
if (!isset($_SESSION)) {
session_start();
}
将阻止PHP说会话已启动。
然后像Dimi在答案中所说的那样使用$_SESSION
答案 2 :(得分:0)
尝试更改此行:
header (Location: modify_email.php?user1=$user1);
为:
header('Location: modify_email.php?user1='.urlencode($user1));
另外为避免被XSS攻击,请使用htmlspecialchars,如下所示:
<input name="email" value="<?php echo htmlspecialchars($_GET['user1']);?>" required="" autofocus="" type="email">