Мой php код не работает, я не могу найти проблему - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть документ html со страницей формы, которая отлажена и является правильной. Проблема в БД, я размещен на страто, но я думаю, что это скорее проблема кода, нежели проблема сервера. Документ html - это форма, которая отправляется в супер глобальных сообщениях POST, таких как имя, фамилия, адрес электронной почты, тема, адрес, PLZ и сообщение. Однако сообщение не попадает в БД, его отправят по почте на мою электронную почту поддержки. Я не настроил функцию mail, потому что сначала хотел отладить часть sql db. Все операторы if фильтруют ввод для правильной электронной почты и шаблонов, поэтому вам не разрешается вводить числа в форме html. Я знаю, что вы можете сделать шаблон в html, но я хочу 100% безопасности. После того, как входы пройдут все фильтры, которые будет подключено к моей БД, я хочу указать имя, фамилию, адрес электронной почты и тему, а также плз.

    $fname   = $_POST['fname'];
    $lname   = $_POST['lname'];
    $email   = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
    $subject = $_POST['thema'];
    $address = $_POST['address'];
    $plz     = $_POST['plz'];
    $text    = $_POST['text'];
    $pattern = "/^([a-zA-Z' äöü ÄÖÜ]+)$/";
    $pattern_plz = "/[0-9]$/";
//VALID INPUT//
if(preg_match($pattern, $fname)){
    if(preg_match($pattern, $lname)){
        if($email == TRUE){
                if(preg_match($pattern_plz, $plz)){
                    if(is_numeric($plz)){
                        $con = new mysqli($host, $db, $user, $passwd) or die ("Keine Verbindung konnte aufgebaut werden");
                        if($con){
                             $sql="INSERT INTO contact (fname, lname, email, thema, address, plz)
                            VALUES ($fname, $lname, $email, $subject, $address, $plz)";
                            if($con->mysqli_query($sql) == TRUE){
                                echo "success";
                            }else{mysqli_close($con); exit("Keine Verbindung konnte aufgebaut werden");}
                    }else{mysqli_close($con); exit("Keine Verbindung konnte aufgebaut werden");}
                }else{exit("Inavlid PLZ");}
            }else{exit("Inavlid PLZ");}
        }else{exit("Inavlid email");}
    }else{exit("Inavlid email");}
}else{exit("Inavlid lastname");} 

1 Ответ

1 голос
/ 18 апреля 2020

, так как вы используете его на реальном хостинге, отображение ошибки может быть отключено с вашего directadmin или cpanel, вы можете найти опции php в хостинге и включить, или вы можете использовать try catch, например

//trigger exception in a "try" block
try {
    //Your code
}

//catch exception
catch(Exception $e) {
  echo 'Message: ' .$e->getMessage(); // display error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...