我正在尝试从表单中获取一些数据,但我不能出于某种原因。 这是我的代码中的一些行。
cellphone: <input type = "text" name = "cellphone"><br />
username : <input type = "text" name = "username"><br />
$cellphone = $_GET["cellphone"]; //$cellphone = int() $cellphone; $username= $_GET["username"]; $link = mysql_connect('myhost', 'myuser', 'mypass') or die("could not connect to database"); mysql_select_db ('hunter',$link) or die ("could not find database"); echo "fetced database"; //injecting user info into database mysql_query("INSERT INTO player values ('','$firstname','$lastname','$location','$cellphone','$username','$email','$password')")or die("could not inject into database.");
但由于某种原因,我无法获取进入我的数据库的单元格号。 请帮帮我:D
答案 0 :(得分:3)
<强> FIRST:
你应必须清理所有传入的变量!
然后,要转换为整数,您可以使用:
$cellphone = (int) $_GET["cellphone"];
更好的解决方案是使用filter_var();
$cellphone = filter_var( $_GET["cellphone"], FILTER_VALIDATE_INT);
在编写任何其他代码之前,您应该阅读input validation/sanitazion和filter_var。
现在,在人们开始提出建议mysql_real_escape_string()
(完成工作,但不是最佳解决方案)之前,请通过PDO或MySQLi查看prepared statements
答案 1 :(得分:2)
答案 2 :(得分:1)
顺便说一句,如果你将一个电话号码存储为整数,你就无法很好地处理国际前缀(例如意大利的+39或0039),因为“+”不是数字,而“00”将是在演员表中丢失为整数......
答案 3 :(得分:1)
这可能是您的mysql列只接受INT但输入是字母数字。在这种情况下,如果您期望仅整数输入
,则可以使用$cellphone = filter_var($_GET['cellphone'], FILTER_SANITIZE_NUMBER_INT);