看板 PHP 關於我們 聯絡資訊
註冊頁: <?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://www.ptt.cc/bbs/PHP/M.1465118388.A.B66.html
weiclin: 你是不是誤會 prepare 的用法了... 06/05 17:29
應該是誤會了 那該用甚麼QQ
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
weiclin: http://goo.gl/Op5uLU 06/05 22:00
他說找不到bindParam參數QQ 我先承認我看不懂他在寫甚麼 $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $firstname, $lastname, $email); 尤其是這裡
MOONRAKER: 看不懂就模仿阿 不用懂也可以模仿 06/06 09:54
就模仿了出現錯誤@@
MOONRAKER: http://php.net/manual/en/pdo.prepare.php 自己看一看 06/06 09:54
MOONRAKER: php.net的範例總不會看不懂了吧 06/06 09:55
※ 編輯: HwangTW (220.133.80.67), 06/06/2016 10:13:40