作者HwangTW (谷歌翻译王)
看板PHP
标题[请益] 无法透过 PHP 将 EMAIL 存进 MariaDB
时间Sun Jun 5 17:19:38 2016
注册页:
<?php
header('Content-Type:text/html;charset=utf8');?>
<body>
<form name="form" method="post" action="newuser.php" align="center">
帐号:<input type="varchar" name="id"/> <br>
密码:<input type="password" name="pw"/> <br>
再输入一次密码:<input type="password" name="pw2"/> <br>
E-MAIL:<input type="text" name="email" size="32"/> <br>
信用卡结帐日:<select name="default_day">
<?php for($i=1;$i<=31;$i++){
if ($i < 10){ ?>
<option value="<?php echo "0",$i?>"><?php echo
"0",$i;?></option>
<?php } else { ?>
<option value="<?php echo $i?>"><?php echo $i;?></option>
<?php } ?>
<?php }?>
</select>
<p></p>
<?php $uid= substr(md5(uniqid(rand(), true)), 10);?>
<input type="submit" name="button" value="注册" align="center"
onclick="<?php $_SESSION['uid'] = $uid; ?>" />
</form>
</body>
newuser.php:
<?php
header('Content-Type:text/html;charset=utf8');
require_once 'function.php';
$function = new Fuction;
if ($_SESSION != NULL){
require_once 'Connect.php';
$pdo = new Connect;
$id = filter_input(INPUT_POST,'id');
$pw = filter_input(INPUT_POST,'pw');
$pw2 = filter_input(INPUT_POST,'pw2');
$email = filter_input(INPUT_POST,'email');
echo $email;
$default_day = filter_input(INPUT_POST,'default_day');
/*省略*/
$sql1 = "INSERT INTO `users`
(`username`,`userpassword`,EMAIL,`default_day`) VALUES
('$username','$userpassword','{$email}','$default_day')";
$register = $pdo->prepare($sql1);
$register->execute();
$reg = $register->fetch();
经尝试後 可以正常 echo 出 EMAIL
且在phpmyadmin下insert指令email也存得进去
可是透过网页就是写不进去SQL(用phpmyadmin看其他栏位都有写入,唯独EMAIL没写到)
有没有甚麽办法可以解决这问题QQ
我找到问题了 结果都不是SQL那边的问题
而是我前面再写侦测空值的部分唯独EMAIL少打了一个等於
if ($id == "" || $pw == "" || $pw2 == "" || $email="")
难怪email死都不给我写进去....
而我还是在後面多加了一个侦测才发现这里少打了一个等於
if ($id == "" || $pw == "" || $pw2 == "" || $email=="" || $default_day=="00")
--
当你年轻的时候 你会觉得真爱无敌 面包以後就会有
当你中年之後 你会发现真爱很重要 所以他需要面包来保护
--文章代码(AID):
#1LOyQl47 (Gossiping) 作者:
yasaq
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.80.67
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1465118388.A.B66.html
1F:→ weiclin: 你是不是误会 prepare 的用法了... 06/05 17:29
应该是误会了 那该用甚麽QQ
2F:→ tkdmaf: 你这样……{$email}…完全就没有prepare的必要性了…… 06/05 21:41
$sql1 = "INSERT INTO `users`
(`username`,`userpassword`,`EMAIL`,`default_day`) VALUES
('$username','$userpassword','$email','$default_day')";
因为当初用这样也是不给写才会用 {$email} 来尝试QQ
有甚麽方法呢QQ
他说找不到bindParam参数QQ
我先承认我看不懂他在写甚麽
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
尤其是这里
4F:→ MOONRAKER: 看不懂就模仿阿 不用懂也可以模仿 06/06 09:54
就模仿了出现错误@@
6F:→ MOONRAKER: php.net的范例总不会看不懂了吧 06/06 09:55
※ 编辑: HwangTW (220.133.80.67), 06/06/2016 10:13:40