2014-08-31 4 views
-1

Я создал этот простой PHP код для страницы входа Ошибка подключения к MySQL в XAMPP

<head> 
    <title>Login Page</title> 
</head> 
<body> 
     <form method=POST> 
      <table> 
       <tr><th>UserName</th> 
        <td><input type=text name=user></input></td></tr> 
       <tr><th>Password</th> 
        <td><input type=password name=pass></input></td></tr> 
       <tr><th>Phone Number</th> 
        <td><input type=text name=phone></input></td></tr> 
       <tr><th>Email</th> 
        <td><input type=text name=email></input></td></tr> 
       <tr><th>City</th> 
        <td><input type=text name=city></input></td></tr> 
       <tr><td><input type=submit name=submit value=Submit></input></td></tr> 
      </table> 
     </form> 

</body> 
</html> 
<?php 
    if(isset($_POST['submit']) && !empty($_POST['user'])) 
     { 
      if(preg_match("/^[a-zA-Z ]{3,40}$/",$_POST['user'])) 
       { 
        if(preg_match("/^[a-zA-Z0-9]{8,20}$/",$_POST['pass'])) 
         { 
          if(filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
           { 
            if(preg_match("/[0-9]{10}/",$_POST['phone'])) 
             { 
              $username=$_POST['user']; 
              $password=$_POST['pass']; 
              $Email=$_POST['email']; 
              $phoneNumber=$_POST['phone']; 
              $con=mysqli_connect("localhost:8080","root","","user"); 
              mysqli_query($con,"insert into user values('$username','$Email','$phoneNumber','$city')"); 

             } 
            else 
             { 
              echo "Invalid Phone number"; 
             } 
           } 
          else 
           { 
             echo "Invalid Email"; 
           } 
         } 
         else 
          { 
           echo "Invalid Phone number"; 
          } 
       } 

       else 
        { 
         echo "Invalid user"; 
        } 

     } 

?> 

Всякий раз, когда я запускаю этот скрипт и попытаться вставить значения в таблицы, это занимает много времени, и бросает следующая ошибка/предупреждение. Я не изменил имя пользователя и пароль, и я считаю, что по умолчанию он является пустым и пустым.

Предупреждение: mysqli_connect(): MySQL сервер ушел в C: \ XAMPP \ HTDOCS \ home.php на линии 39

Предупреждение: mysqli_connect(): Ошибка при чтении приветствия пакета , PID = 4708 в C: \ XAMPP \ HTDOCS \ home.php на линии 39

Предупреждение: mysqli_connect(): (HY000/2006): MySQL сервер ушел в C: \ XAMPP \ HTDOCS \ дом. PHP на линии 39

Фатальная ошибка: Максимальное время выполнения 30 секунд превышен в C: \ XAMPP \ HTDOCS \ home.php на линии 39

Может кто-нибудь помочь мне с этим, как я считаю, что проблема заключается в некоторой конфигурации порта.

Спасибо и приветствую.

+1

Это выглядит ужасно неуверенно. Вы уверены, что ** ваши пользовательские параметры [правильно экранированы] (http://bobby-tables.com/php)? При использовании 'mysqli' вы должны использовать параметризованные запросы и [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ используйте ** интерполирование строк, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/). – tadman

+1

Вместо того, чтобы писать свою собственную систему входа в систему, вероятно, вы должны использовать [рамки разработки] (http://codegeekz.com/best-php-frameworks-for-developers/), например [Laravel] (http: // laravel ,com /), который поставляется с встроенной системой [authentication system] (http://laravel.com/docs/security). То, что вы придумали здесь, не подходит для использования в производстве. – tadman

ответ

1

По умолчанию подключения к БД с помощью XAMPP не requi вам нужно указать порт. Заменить localhost:8080 с

0

лет можно увеличить Максимальное время выполнения, если вы уверены, что ваш код верен. на этот раз в php.ini файле конфигурации

; Maximum execution time of each script, in seconds 
; http://php.net/max-execution-time 
; Note: This directive is hardcoded to 0 for the CLI SAPI 
max_execution_time = 30 
0

Ниже отредактированный сценарий. Попробуйте запустить это. Также убедитесь, что mysql работает правильно. Войти Страница UserName Пароль Номер телефона Email Город

</body> 
</html> 
<?php 
    set_time_limit (0); 
    if(isset($_POST['submit']) && !empty($_POST['user'])) 
     { 
      if(preg_match("/^[a-zA-Z ]{3,40}$/",$_POST['user'])) 
       { 
        if(preg_match("/^[a-zA-Z0-9]{8,20}$/",$_POST['pass'])) 
         { 
          if(filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
           { 
            if(preg_match("/[0-9]{10}/",$_POST['phone'])) 
             { 
              $username=$_POST['user']; 
              $password=$_POST['pass']; 
              $Email=$_POST['email']; 
              $phoneNumber=$_POST['phone']; 
              $con=mysqli_connect("localhost:8080","root","","user"); 
              mysqli_query($con,"insert into user values('$username','$Email','$phoneNumber','$city')"); 

             } 
            else 
             { 
              echo "Invalid Phone number"; 
             } 
           } 
          else 
           { 
             echo "Invalid Email"; 
           } 
         } 
         else 
          { 
           echo "Invalid Phone number"; 
          } 
       } 

       else 
        { 
         echo "Invalid user"; 
        } 

     } 

?> 
-1

Вам не нужно указывать номер порта 8080 вместе с локальным хостом. просто используйте localhost вместо этого

Смежные вопросы