Если вы хотите, чтобы ваша функция работает, вы должны передать в качестве аргумента $ MySQLi объект
Как это: советы
function secure ($string,$mysqli) {
$string = htmlspecialchars($string);
$string = strip_tags($string);
$string = stripcslashes($string);
$string = $mysqli -> real_escape_string($string);
return $string;}
I к вам, не используйте эту функцию:
1- За убийство и ошибка @ Dagon. (Согласен)
2- Поскольку вы используете mysqli, почему вы делаете что-либо из этого, когда вы можете использовать подготовленные заявления? @ Комментарий barmar в. (Принимаю)
3- Вы не должны использовать htmlspecialchars() при вводе в базу данных, вы должны использовать htmlentities() при рендеринге @bamar комментарий. (Принимаю)
Выше для меня Основная причина отказа от использования
вы можете использовать Приготовьте Staments вместо
an example from the manual
/* create a prepared statement */
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?");
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
/* fetch value */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */
$stmt->close();
переменная '$ mysqli' не в рамках этой функции. Передайте его как параметр 'function secure ($ string, $ mysqli)' –
Вы не задали переменную '$ mysqli'. Вам либо нужно передать его как аргумент функции, либо объявить его с помощью 'global $ mysqli;'. – Barmar
Thats over kill and wrong –