Я пытаюсь получить некоторые данные из формы, но я не могу по какой-то причине. вот несколько строк моего кода.
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') или die («невозможно подключиться к базе данных»); mysql_select_db («hunter», $ link) или die («не удалось найти базу данных»); echo "fetced database"; // ввод информации пользователя в базу данных mysql_query («INSERT INTO» значения игрока ('', '$ firstname', '$ lastname', '$ location', '$ cellphone', '$ username', '$ email', '$ password') ") или die («не вводить в базу данных»);
но я не могу получить номер ячейки, чтобы попасть в мою базу данных по какой-то причине. помогите мне: D
ПЕРВЫЙ:
вы должны дезинфицировать все входящие переменные!
то, чтобы отличить целое число, вы можете использовать:
$cellphone = (int) $_GET["cellphone"];
Лучшим решением является использование filter_var();
$cellphone = filter_var( $_GET["cellphone"], FILTER_VALIDATE_INT);
Вы должны прочитать информацию о проверке ввода / sanitazion и filter_var, прежде чем писать какой-либо дополнительный код.
теперь, прежде чем люди начнут советовать mysql_real_escape_string()
(который выполняет задание, но не является лучшим решением), посмотрите на подготовленные заявления через PDO или MySQLi
Кстати, если вы храните номер телефона в виде целого числа, вы не очень хорошо обрабатываете международный префикс (например, +39 или 0039 для Италии), так как «+» не является числом, а «00» будет потерян в бросать в целое ….
это может означать, что ваш столбец mysql принимает только INT, но входной буквенно-цифровой. в этом случае вы можете использовать $cellphone = filter_var($_GET['cellphone'], FILTER_SANITIZE_NUMBER_INT);
если вы ожидаете ввода только целых чисел