如何在2个文件php之间发送输入类型的电子邮件?

时间:2015-06-04 18:32:56

标签: php mysql email web

我在一个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

如何在不将输入类型输入文本的情况下解决问题?

我已经看到了问题,就是当我在数据库中插入电子邮件时,它只将第一部分保存到@,为什么会出现问题?

我使用带有输入类型电子邮件的表单来发送

3 个答案:

答案 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">