Проверка достоверности PHP

Я пытаюсь создать форму проверки для сайта, над которым я работаю, и если почтовые запросы работают без проверки, как только я начну вводить простой счетчик, чтобы предотвратить отправку запроса, он перестает работать

<?php
$ErrorCount = 0;
$StudentNO = $_POST['updateid'];
$editfirst = $_POST['updatefirst'];
$editSurname = $_POST['updatesurn'];


$editfirst = test_input($editfirst);
$editSurname = test_input($editSurname);
$StudentNO = test_input2($StudentNO);

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    $data = preg_replace("/[^a-zA-Z]/", "", $data);
    if (preg_match('/drop table/i', $data)) {
        $data == null;
    }
    if ($data == null) {
        $ErrorCount++;
    }
}

function test_input2($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    $data = preg_replace("/[^a-zA-Z]/", "", $data);
    if (preg_match('/drop table/i', $data)) {
        $data == null;
    }
    if (strlen($StudentNO) != 6) {
        $ErrorCount++;
    }
    if ($data == null) {
        $ErrorCount++;
    }
}


if ($ErrorCount == 0) {
    $server = 'sql.rde.hull.ac.uk';
    $connectionInfo = array("Database"=>"rde_556278");
    $conn = sqlsrv_connect($server, $connectionInfo);

    $updateQuery = "UPDATE Users SET Firstname = '$editfirst', Surname = '$editSurname' WHERE StudentID = '$StudentNO';";
    $result = sqlsrv_query($conn, $updateQuery);

    sqlsrv_free_stmt( $updateQuery);
    sqlsrv_close($conn);
}
?>

Проблема в том, что количество ошибок не увеличивается и не передается ни на что, никакая помощь, так как я просто не вижу свою ошибку. Я новичок в php

<?php
updateQuery = "INSERT INTO Locations (StudentID, ,[Location], [DateTime]) VALUES (?, ?, GETDATE());";
$params = array($UpdateStudent, $UpdateLocation);
$result = sqlsrv_query($conn, $updateQuery, $params);
?>    

Переменный объем! Проверить это Вы устанавливаете новый $ErrorCount, созданный внутри функции. Это не тот $ErrorCount, что и в основном прицеле.

RiggsFolly 06.12.2018 01:13

а, так как мне увеличить счетчик? он работает как есть, за исключением имен переменных на отдельной странице?

SamWalker 06.12.2018 01:17

Вся предпосылка этого кода основана на плохих исследованиях. Если вы хотите избежать внедрения SQL, используйте параметризованные и связанные запросы. Даже если вы избегаете ввода, это небезопасно! Используйте подготовленные параметризованные операторы в API MYSQLI_ или PDO

RiggsFolly 06.12.2018 01:20

И это как бы объясняет вам новую ошибку с вставкой StudentID, ,[Location],, у вас есть 2 запятые одна за другой

RiggsFolly 06.12.2018 01:21

его mssql, извините, должен был быть указан, и, хотя это было целью, в настоящее время у меня нет времени для реализации изменений

SamWalker 06.12.2018 01:22

И переменные $updateQuery! == updateQuery должны начинаться с $.

RiggsFolly 06.12.2018 01:23

Почему бы и нет, вы помещаете их в запрос INSERT

RiggsFolly 06.12.2018 01:23

о, извините, я пропустил $, который уже есть

SamWalker 06.12.2018 01:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
8
36
1

Ответы 1

Вы пробовали изменить определение функции на что-то вроде:

function test_input($data,$ErrorCount) { /*code....*/ }

function test_input2($data,$ErrorCount) { /*code....*/ }

Изменил его, чтобы фактически вернуть результат, это было частью проблемы, но возникла другая проблема, и я не могу сказать, откуда она взялась, онлайн-чекеры говорят, что это $ updateQuery = "INSERT INTO Locations (StudentID,, [Location ], [DateTime]) ЗНАЧЕНИЯ (?,?, GETDATE ()); "; но все было хорошо раньше

SamWalker 06.12.2018 01:14

Сэм, вы не показываете нам код, содержащий запрос INSERT!?!?!?!

RiggsFolly 06.12.2018 01:16

Другие вопросы по теме