Ошибка 500 при отправке формы php

Студворк — интернет-сервис помощи студентам

Всем привет) Делаю небольшой сайт на wordpresse. На нем имеется небольшая всплывающая форма, заполнив которую на сервер должно прийти письмо с данными формы. Реализовывал точно также на другом сайте — все работает, поставил на этом — сначала все отлично, потом вдруг перестало работать, при клике «оставить заявку» ничего не отправляется, а вылетает ошибка 500. Если кто сталкивался с такой проблемой, подскажите пожалуйста пути решения

Сам код формочки:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="popup">
    <div class="popup_bg"></div>
        <div class="form">
            <form id="send_frm" method="post" action="send.php"> <!-- method="post"> -->
                <h1 class="zak_call" >Заказать звонок</h1>
                <p>Оставьте свой номер телефона<br>и мы свяжемся с Вами</p>
                <input type="text" placeholder="* Имя..." name="fio" style="" class="frm_el cons_frm" required="">
                <input type="text" id="tel"  placeholder="* Телефон..." name="phone" style="" class="frm_el cons_frm" required="" >
                <input type="text" name="usluga" style="display:none;">                         
                <input type="submit"  value="Оставить заявку" name="submit" style="" class="btns frm_btn">
            </form>
        </div>
    </div>

Скрипт на котором вылетает ошибка:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script>
document.getElementById('send_frm').onsubmit = function(){
    if (this.fio.value!='' && this.phone.value!=''){
        var http = new XMLHttpRequest();
        http.open("POST", "<?php bloginfo("template_url"); ?>/send/send.php", true);
        http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        http.send("&fio=" + this.fio.value + "&phone=" + this.phone.value + "&usluga=" + this.usluga.value );
            http.onreadystatechange = function() {
            if (http.readyState == 4 && http.status == 200) {
            $(".popup").fadeOut();
            $(".popup2").fadeIn(1000);
    
        document.getElementById("send_frm").fio.value="";
        document.getElementById("send_frm").phone.value="";
 
            $(".popup2").delay(3000).fadeOut(1000);
    }
}
http.onerror = function() {
 
    alert('Неудачно')
    // $(".popup3").fadeIn(1000);
    // $(".popup3").delay(3000).fadeOut(1000);
}
} else {
    alert('Заполните все обязательные поля!');
}
return false;
}
</script>

И PHP обработчик:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
$to='4eqqqq@gmail.com'
 
$fio = $_POST['fio'];
$phone = $_POST['phone'];
$usluga = $_POST['usluga'];
 
 
$fio = htmlspecialchars($fio);
$phone = htmlspecialchars($phone);
$usluga = htmlspecialchars($usluga);
 
$fio = urldecode($fio);
$phone = urldecode($phone);
$usluga = urldecode($usluga);
 
 
 
$fio = trim($fio);
$phone = trim($phone);
$usluga = trim($usluga);
 
$subject = 'Перезвоните мне!'; //Заголовок сообщения
 
 
$message = $subject."rnИмя: ".$fio."rnТелефон: ".$phone."rnТип услуги: ".$usluga;
 
 
 
$headers  = "Content-type: text/html; charset=utf-8 rn"; //Кодировка письма
$headers  = "From: Правозащита в Кирове <from@example.com>rn";
 
// echo "NHHHHS";
 
 
if (mail($to, $subject, $message, $headers))
{     echo "сообщение успешно отправлено"; 
} else { 
    echo "при отправке сообщения возникли ошибки";
}
 
?>

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

I’m pretty new with PHP. I’m having trouble with a form I’m working with.

Here is my HTML

<form class="form-horizontal" action="submit.php">
    <div class="form-group">
        <label for="name" class="col-sm-2 control-label">Name:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" name = "name" placeholder="John Doe">
        </div>
    </div>
    <div class = "form-group">
        <label for="inputEmail3" class="col-sm-2 control-label">Email:</label>
        <div class="col-sm-10">
            <input type="email" class="form-control" id="email" name = "email" placeholder="name@domain.com">
        </div>
    </div>
    <div class="form-group">
        <label for="phoneNumber" class="col-sm-2 control-label">Phone:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="phoneNumber" name = "phoneNumber" placeholder="555-555-5555">
        </div>
    </div>

    <div class="form-group">
        <label for="major" class="col-sm-2 control-label">Major:</label>
        <div class="dropdown">
            <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" name = "major" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                Dropdown
                <span class="caret"></span>
            </button>
            <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"></ul>
        </div>
    </div>

    <hr>

    <div class="form-group">
        <label for="itemForSale" class="col-sm-2 control-label">Item for Sale:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="itemForSale1" name = "itemForSale1" placeholder="My old video games, some chairs, some chicken, a pizza.">
        </div>
    </div>

    <div class="form-group">
        <label for="quantity" class="col-sm-2 control-label">Quantity:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id = "quantity1" name = "quantity1" placeholder="1,000,000">
        </div>
    </div>

    <div class="form-group">
        <label for="major" class="col-sm-2 control-label">Price:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="price1" name = "price1" placeholder="ex. $100.00">
        </div>
    </div>
</form>

Here is my PHP

<?php
    // Variables
    $name;
    $email;
    $phone;
    $major;
    $itemForSale1;
    $quantity1;
    $price1;
    $itemForSale2;
    $quantity2;
    $price2;
    $itemForSale3;
    $quantity3;
    $price3;

    ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);

    if (isset($_POST["submit"]))
    {
        // Initiate the variables
        $name         = $_POST["name"];
        $email        = $_POST["email"];
        $phone        = $_POST["phone"];
        $major        = $_POST["major"];
        $itemForSale1 = $_POST["itemForSale1"];
        $quantity1    = $_POST["quantity1"];
        $price1       = $_POST["price1"];
        $itemForSale2 = $_POST["itemForSale2"];
        $quantity2    = $_POST["quantity2"];
        $price2       = $_POST["price2"];
        $itemForSale3 = $_POST["itemForSale3"];
        $quantity3    = $_POST["quantity3"];
        $price3       = $_POST["price3"];

        // IF name is empty string
        if($name == "")
        {
            // Alert the user
            echo "Please enter your name.";
        }

        // IF email is invalid
        if (!filter_var($email, FILTER_VALIDATE_EMAIL) === true)
        {
            // Alert the user
            echo("$email is an invalid email address");
        }

        // Strip any occurrences of '-' in phoneNumber
        str_replace("-", "", $phoneNumber)

        // IF phoneNumber does not equal 10 characters
        if(strlen(phoneNumber) != 10)
        {
            // Alert the user
            echo "Invalid phone number. Ex. 315-555-5555";
        }

        // IF itemForSale is empty string
        if($itemForSale == "")
        {
            // Alert the user
            echo "You must enter at least one item.";
        }

        // IF quantity1 is less than 1
        if($quantity1 < 1)
        {
            // Alert the user
            echo "You can't sell anything less than one item.";
        }

        // Strip any occurrences of '$' in price
        str_replace("$", "", $phoneNumber)

        // IF price is less than 0.00
        if($price1 < 0)
        {
            echo "What's less than free?";
        }

        echo $name;
        echo $email;
        echo $phone;
        echo $major;
        echo $itemForSale1;
        echo $quantity1;
        echo $price1;

    }
?>

When I press submit on my form I get the 500 Internal Server Error. Any idea what might be causing this? I’m not very familiar with PHP sooo.

asked Sep 24, 2015 at 4:40

5

Some solutions for you-

1) give form method tag as — method=»post»

2) Try changing

<input id="submit" name="submit" type="submit" value="submit" class="btn btn-primary">

to

<input id="btnsubmit" name="btnsubmit" type="submit" value="submit" class="btn btn-primary">

and access it as

isset($_POST["btnsubmit"])

3) also you have missed semi-colon after str_replace("$", "", $phoneNumber) and str_replace("-", "", $phoneNumber)

4) change if(strlen(phoneNumber) != 10) to if(strlen($phoneNumber) != 10)

5) You also have accessed many values with wrong names in PHP code like phone number, major etc. Please make them correct and your code should work.

answered Sep 24, 2015 at 5:03

Suyog's user avatar

SuyogSuyog

2,4521 gold badge13 silver badges27 bronze badges

All your str_replace functions are incorrect. You never terminated the lines they are on and aren’t setting the replacement anywhere (not replacing isn’t an error, per say, but doesn’t make sense to do if not using it).

You could do:

$phoneNumber =  str_replace(array('$', '-'), '', $phoneNumber);

Which will strip $s and -s from $phoneNumber.

Additionally your form is processing as a GET because you haven’t told it to process as a POST.

Change:

<form class="form-horizontal" action="submit.php">

to

<form class="form-horizontal" action="submit.php" method="POST">

The default form method is GET, What is the default form HTTP method?.

So if (isset($_POST["submit"])) is never true and you just get a blank page. You can add an else to the end of that conditional if you want to test this.

Community's user avatar

answered Sep 24, 2015 at 4:56

chris85's user avatar

chris85chris85

23.8k7 gold badges34 silver badges51 bronze badges

4

I have a PHP form with a submit button in my html.
However when I press the submit button my browser gives an error -> HTTP error 500.

I am using the same type of PHP form on other sites and there it works fine… Anybody sees the problem here?

Form and HTML in snippet below.

<?php

$lidworden = $_POST['lidworden']
$projectsponsoring = $_POST['projectsponsoring'];
$leo = $_POST['leo'];
$lion = $_POST['lion'];
$andere = $_POST['andere'];
$naam = $_POST['naam'];
$email = $_POST['email'];
$bericht = $_POST['bericht'];

$to = "info@pieterswebdesign.com";
$subject = "Leo Club de 4 Ambachten";
$body = "Dit is een automatisch bericht gelieve hier niet op te reageren. nn $lidworden,$projectsponsoring,$leo,$lion,$andere,$Naam,$Email,$Telefoon,$Bericht";

mail($to,$subject,$body);
header("Location: index.html");

exit();
?>
<form id="form" action="send.php" method="POST">

  <p id="radiotitle"><span class="bluetxt">Je bent</p>

        <div id="radiodiv">
            <label class="label">
                <input type="radio" name="lidworden" value="lidworden" />geïnteresseerd om lid te worden
            </label>
            <label class="label">
                <input type="radio" name="projectsponsoring" value="projectsponsoring" />geïnteresseerd in projectsponsoring
            </label>
            <label class="label">
                <input type="radio" name="leo" value="leo"/>een Leo
            </label>
            <label class="label">
                <input type="radio" name="lion" value="lion"/>een Lion
            </label>
            <label class="label">
                <input type="radio" name="andere" value="andere"/>andere
            </label>
        </div>

        <div id="textdiv">
                    <label class="label2">Je naam</label>
                        <input type="text" name="naam" placeholder="Typ hier..." />

                        <label class="label2">Je e-mailadres</label>
                            <input type="text" name="email"  placeholder="Typ hier..." />

                            <label class="label2">Je bericht</label>
                                <textarea type="text" name="bericht" value="bericht" placeholder="Typ hier..."></textarea>

            <button type="submit" id="sendbutton"><p>VERSTUUR</p></button>
        </div>
    </form>

Пытаюсь отправить письмо через smtp Яндекса. При отправке формы получаю ошибку «send.php Status Code: 500 Internal Server Error»

Что сделал:
1. Изменил MX-запись. В настройках домена в сервисе connect.yandex.ru написано «Домен подтверждён и готов к работе»
2. Залил PHPMailer на хостинг. Три файла в папку /PHPMailer/PHPMailer/ (Exception.php, PHPMailer.php, SMTP.php) и send.php с моими настройками в корень сайта.

Кусочек send.php:

$mail->Host       = 'smtp.yandex.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'mail@mydomain.ru';                     // SMTP username
    $mail->Password   = 'password';                               // SMTP password
    $mail->SMTPSecure = 'ssl';                                  // Enable TLS encryption, `ssl` also accepted
    $mail->Port       = 465;

В строчке «$mail->Password» использую пароль для приложения, который выдается в настройках почты в Яндексе.

Что может быть не так?

I’m pretty new with PHP. I’m having trouble with a form I’m working with.

Here is my HTML

<form class="form-horizontal" action="submit.php">
    <div class="form-group">
        <label for="name" class="col-sm-2 control-label">Name:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" name = "name" placeholder="John Doe">
        </div>
    </div>
    <div class = "form-group">
        <label for="inputEmail3" class="col-sm-2 control-label">Email:</label>
        <div class="col-sm-10">
            <input type="email" class="form-control" id="email" name = "email" placeholder="name@domain.com">
        </div>
    </div>
    <div class="form-group">
        <label for="phoneNumber" class="col-sm-2 control-label">Phone:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="phoneNumber" name = "phoneNumber" placeholder="555-555-5555">
        </div>
    </div>

    <div class="form-group">
        <label for="major" class="col-sm-2 control-label">Major:</label>
        <div class="dropdown">
            <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" name = "major" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                Dropdown
                <span class="caret"></span>
            </button>
            <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"></ul>
        </div>
    </div>

    <hr>

    <div class="form-group">
        <label for="itemForSale" class="col-sm-2 control-label">Item for Sale:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="itemForSale1" name = "itemForSale1" placeholder="My old video games, some chairs, some chicken, a pizza.">
        </div>
    </div>

    <div class="form-group">
        <label for="quantity" class="col-sm-2 control-label">Quantity:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id = "quantity1" name = "quantity1" placeholder="1,000,000">
        </div>
    </div>

    <div class="form-group">
        <label for="major" class="col-sm-2 control-label">Price:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="price1" name = "price1" placeholder="ex. $100.00">
        </div>
    </div>
</form>

Here is my PHP

<?php
    // Variables
    $name;
    $email;
    $phone;
    $major;
    $itemForSale1;
    $quantity1;
    $price1;
    $itemForSale2;
    $quantity2;
    $price2;
    $itemForSale3;
    $quantity3;
    $price3;

    ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);

    if (isset($_POST["submit"]))
    {
        // Initiate the variables
        $name         = $_POST["name"];
        $email        = $_POST["email"];
        $phone        = $_POST["phone"];
        $major        = $_POST["major"];
        $itemForSale1 = $_POST["itemForSale1"];
        $quantity1    = $_POST["quantity1"];
        $price1       = $_POST["price1"];
        $itemForSale2 = $_POST["itemForSale2"];
        $quantity2    = $_POST["quantity2"];
        $price2       = $_POST["price2"];
        $itemForSale3 = $_POST["itemForSale3"];
        $quantity3    = $_POST["quantity3"];
        $price3       = $_POST["price3"];

        // IF name is empty string
        if($name == "")
        {
            // Alert the user
            echo "Please enter your name.";
        }

        // IF email is invalid
        if (!filter_var($email, FILTER_VALIDATE_EMAIL) === true)
        {
            // Alert the user
            echo("$email is an invalid email address");
        }

        // Strip any occurrences of '-' in phoneNumber
        str_replace("-", "", $phoneNumber)

        // IF phoneNumber does not equal 10 characters
        if(strlen(phoneNumber) != 10)
        {
            // Alert the user
            echo "Invalid phone number. Ex. 315-555-5555";
        }

        // IF itemForSale is empty string
        if($itemForSale == "")
        {
            // Alert the user
            echo "You must enter at least one item.";
        }

        // IF quantity1 is less than 1
        if($quantity1 < 1)
        {
            // Alert the user
            echo "You can't sell anything less than one item.";
        }

        // Strip any occurrences of '$' in price
        str_replace("$", "", $phoneNumber)

        // IF price is less than 0.00
        if($price1 < 0)
        {
            echo "What's less than free?";
        }

        echo $name;
        echo $email;
        echo $phone;
        echo $major;
        echo $itemForSale1;
        echo $quantity1;
        echo $price1;

    }
?>

When I press submit on my form I get the 500 Internal Server Error. Any idea what might be causing this? I’m not very familiar with PHP sooo.

asked Sep 24, 2015 at 4:40

5

Some solutions for you-

1) give form method tag as — method=»post»

2) Try changing

<input id="submit" name="submit" type="submit" value="submit" class="btn btn-primary">

to

<input id="btnsubmit" name="btnsubmit" type="submit" value="submit" class="btn btn-primary">

and access it as

isset($_POST["btnsubmit"])

3) also you have missed semi-colon after str_replace("$", "", $phoneNumber) and str_replace("-", "", $phoneNumber)

4) change if(strlen(phoneNumber) != 10) to if(strlen($phoneNumber) != 10)

5) You also have accessed many values with wrong names in PHP code like phone number, major etc. Please make them correct and your code should work.

answered Sep 24, 2015 at 5:03

Suyog's user avatar

SuyogSuyog

2,4521 gold badge13 silver badges26 bronze badges

All your str_replace functions are incorrect. You never terminated the lines they are on and aren’t setting the replacement anywhere (not replacing isn’t an error, per say, but doesn’t make sense to do if not using it).

You could do:

$phoneNumber =  str_replace(array('$', '-'), '', $phoneNumber);

Which will strip $s and -s from $phoneNumber.

Additionally your form is processing as a GET because you haven’t told it to process as a POST.

Change:

<form class="form-horizontal" action="submit.php">

to

<form class="form-horizontal" action="submit.php" method="POST">

The default form method is GET, What is the default form HTTP method?.

So if (isset($_POST["submit"])) is never true and you just get a blank page. You can add an else to the end of that conditional if you want to test this.

Community's user avatar

answered Sep 24, 2015 at 4:56

chris85's user avatar

chris85chris85

23.7k7 gold badges31 silver badges49 bronze badges

4

Пытаюсь отправить письмо через smtp Яндекса. При отправке формы получаю ошибку «send.php Status Code: 500 Internal Server Error»

Что сделал:
1. Изменил MX-запись. В настройках домена в сервисе connect.yandex.ru написано «Домен подтверждён и готов к работе»
2. Залил PHPMailer на хостинг. Три файла в папку /PHPMailer/PHPMailer/ (Exception.php, PHPMailer.php, SMTP.php) и send.php с моими настройками в корень сайта.

Кусочек send.php:

$mail->Host       = 'smtp.yandex.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'mail@mydomain.ru';                     // SMTP username
    $mail->Password   = 'password';                               // SMTP password
    $mail->SMTPSecure = 'ssl';                                  // Enable TLS encryption, `ssl` also accepted
    $mail->Port       = 465;

В строчке «$mail->Password» использую пароль для приложения, который выдается в настройках почты в Яндексе.

Что может быть не так?

Всем привет) Делаю небольшой сайт на wordpresse. На нем имеется небольшая всплывающая форма, заполнив которую на сервер должно прийти письмо с данными формы. Реализовывал точно также на другом сайте — все работает, поставил на этом — сначала все отлично, потом вдруг перестало работать, при клике «оставить заявку» ничего не отправляется, а вылетает ошибка 500. Если кто сталкивался с такой проблемой, подскажите пожалуйста пути решения

Сам код формочки:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="popup">
    <div class="popup_bg"></div>
        <div class="form">
            <form id="send_frm" method="post" action="send.php"> <!-- method="post"> -->
                <h1 class="zak_call" >Заказать звонок</h1>
                <p>Оставьте свой номер телефона<br>и мы свяжемся с Вами</p>
                <input type="text" placeholder="* Имя..." name="fio" style="" class="frm_el cons_frm" required="">
                <input type="text" id="tel"  placeholder="* Телефон..." name="phone" style="" class="frm_el cons_frm" required="" >
                <input type="text" name="usluga" style="display:none;">                         
                <input type="submit"  value="Оставить заявку" name="submit" style="" class="btns frm_btn">
            </form>
        </div>
    </div>

Скрипт на котором вылетает ошибка:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script>
document.getElementById('send_frm').onsubmit = function(){
    if (this.fio.value!='' && this.phone.value!=''){
        var http = new XMLHttpRequest();
        http.open("POST", "<?php bloginfo("template_url"); ?>/send/send.php", true);
        http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        http.send("&fio=" + this.fio.value + "&phone=" + this.phone.value + "&usluga=" + this.usluga.value );
            http.onreadystatechange = function() {
            if (http.readyState == 4 && http.status == 200) {
            $(".popup").fadeOut();
            $(".popup2").fadeIn(1000);
    
        document.getElementById("send_frm").fio.value="";
        document.getElementById("send_frm").phone.value="";
 
            $(".popup2").delay(3000).fadeOut(1000);
    }
}
http.onerror = function() {
 
    alert('Неудачно')
    // $(".popup3").fadeIn(1000);
    // $(".popup3").delay(3000).fadeOut(1000);
}
} else {
    alert('Заполните все обязательные поля!');
}
return false;
}
</script>

И PHP обработчик:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
$to='4eqqqq@gmail.com'
 
$fio = $_POST['fio'];
$phone = $_POST['phone'];
$usluga = $_POST['usluga'];
 
 
$fio = htmlspecialchars($fio);
$phone = htmlspecialchars($phone);
$usluga = htmlspecialchars($usluga);
 
$fio = urldecode($fio);
$phone = urldecode($phone);
$usluga = urldecode($usluga);
 
 
 
$fio = trim($fio);
$phone = trim($phone);
$usluga = trim($usluga);
 
$subject = 'Перезвоните мне!'; //Заголовок сообщения
 
 
$message = $subject."rnИмя: ".$fio."rnТелефон: ".$phone."rnТип услуги: ".$usluga;
 
 
 
$headers  = "Content-type: text/html; charset=utf-8 rn"; //Кодировка письма
$headers  = "From: Правозащита в Кирове <from@example.com>rn";
 
// echo "NHHHHS";
 
 
if (mail($to, $subject, $message, $headers))
{     echo "сообщение успешно отправлено"; 
} else { 
    echo "при отправке сообщения возникли ошибки";
}
 
?>

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

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

I am trying to send the content in this form to an email. However, it isn’t working and when I submit it gives me an internal error. Here is the code that runs when I am submitting the form.

<?php
if(!isset($_POST['submit']))
{
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}


$name = $_POST['first_name']; // required

$job = $_POST['job']; // required

$company = $_POST['company']; // required

$email = $_POST['email']; // required

$telephone = $_POST['telephone']; // required

$psn = $_POST['psn']; // required

$un = $_POST['un']; // required

$weight = $_POST['weight']; // not required

$pieces = $_POST['pieces']; // required

$dgpacked = $_POST['dgpacked']; // required

$address = $_POST['address']; // required

$readytime = $_POST['readytime']; // required

$deliverytype = $_POST['deliverytype']; // required


if(IsInjected($email))
{
echo "Bad email value!";
exit;
}

$email_from = 'c.oswald@live.com';//<== update the email address
$email_subject = "New Quote Request submission";
$email_body = "You have received a new message from the $name with $company.n".
"Here is the message:n $message".

$to = "c.oswald@live.com";//<== update the email address
$headers = "From: $email_from rn";
$headers .= "Reply-To: $email rn";

//Send the email!
mail($to,$email_subject,$email_body,$headers);
//done. redirect to thank-you page.
header('Location: home.html');


// Function to validate against any email injection attempts
function IsInjected($str)
{
  $injections = array('(n+)',
          '(r+)',
          '(t+)',
          '(%0A+)',
          '(%0D+)',
          '(%08+)',
          '(%09+)'
          );
  $inject = join('|', $injections);
  $inject = "/$inject/i";
  if(preg_match($inject,$str))
    {
return true;
  }
  else
{
return false;
  }
}

?> 

If there is anything more simple, please help me out, I just need something simple enough to understand but not so basic I will have security or injection problems.

I am trying to send the content in this form to an email. However, it isn’t working and when I submit it gives me an internal error. Here is the code that runs when I am submitting the form.

<?php
if(!isset($_POST['submit']))
{
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}


$name = $_POST['first_name']; // required

$job = $_POST['job']; // required

$company = $_POST['company']; // required

$email = $_POST['email']; // required

$telephone = $_POST['telephone']; // required

$psn = $_POST['psn']; // required

$un = $_POST['un']; // required

$weight = $_POST['weight']; // not required

$pieces = $_POST['pieces']; // required

$dgpacked = $_POST['dgpacked']; // required

$address = $_POST['address']; // required

$readytime = $_POST['readytime']; // required

$deliverytype = $_POST['deliverytype']; // required


if(IsInjected($email))
{
echo "Bad email value!";
exit;
}

$email_from = 'c.oswald@live.com';//<== update the email address
$email_subject = "New Quote Request submission";
$email_body = "You have received a new message from the $name with $company.n".
"Here is the message:n $message".

$to = "c.oswald@live.com";//<== update the email address
$headers = "From: $email_from rn";
$headers .= "Reply-To: $email rn";

//Send the email!
mail($to,$email_subject,$email_body,$headers);
//done. redirect to thank-you page.
header('Location: home.html');


// Function to validate against any email injection attempts
function IsInjected($str)
{
  $injections = array('(n+)',
          '(r+)',
          '(t+)',
          '(%0A+)',
          '(%0D+)',
          '(%08+)',
          '(%09+)'
          );
  $inject = join('|', $injections);
  $inject = "/$inject/i";
  if(preg_match($inject,$str))
    {
return true;
  }
  else
{
return false;
  }
}

?> 

If there is anything more simple, please help me out, I just need something simple enough to understand but not so basic I will have security or injection problems.

Пользователи интернета и владельцы сайтов периодически сталкиваются с различными ошибками на веб-страницах. Одной из самых распространенных ошибок является error 500 (ошибка 500). Поговорим в нашей статье о том, что это за ошибка и как ее исправить.

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

Ошибка 500 говорит о том, что сервер не может обработать запрос к сайту, на странице которого вы находитесь. При этом браузер не может точно сообщить, что именно пошло не так. 

Отображаться ошибка может по-разному. Вот пример:

Ошибка 500

Если вы решили купить что-то в любимом интернет-магазине, но увидели на сайте ошибку 500, не стоит сильно огорчаться – она лишь сообщает о том, что вам нужно подождать, пока она будет исправлена.

Если ошибка появилась на вашем сайте, то нужно скорее ее исправлять. Далее я расскажу, как это можно сделать.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Причины возникновения ошибки

Итак, ошибка 500 возникает, когда серверу не удается обработать запрос к сайту. Из-за этого пользователи не могут попасть на сайт, а поисковые системы полноценно с ним работать. Очевидно, что ошибка нуждается в исправлении. В первую очередь необходимо найти проблему.

Основной причиной ошибки 500 может быть:

  1. Неверный синтаксис файла .htaccesshtaccess – это файл, в котором можно задавать настройки для работы с веб-сервером Apache и вносить изменения в работу сайта (управлять различными перенаправлениями, правами доступа к файлам, опциями PHP, задавать собственные страницы ошибок и т.д.). 
    Узнать больше о файле .htaccess можно в статье «Создание и настройка .htaccess».
  2. Ошибки в скриптах сайта, то есть сценариях, созданных для автоматического выполнения задач или для расширения функционала сайта.
  3. Нехватка оперативной памяти при выполнении скрипта.
  4. Ошибки в коде CMS, системы управления содержимым сайта. В 80% случаев виноваты конфликтующие плагины. 

Год хостинга в подарок при заказе лицензии 1С-Битрикс

Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой.

Заказать

Как получить больше данных о причине ошибки 

Что означает ошибка 500, мы теперь знаем. Когда она перестала быть таким загадочным персонажем, не страшно копнуть глубже — научиться определять причину ошибки. В некоторых случаях это можно сделать самостоятельно, так что обращаться за помощью к профильному специалисту не понадобится.

Отображение ошибки бывает разным. Ее внешний облик зависит от того, чем она вызвана.

Самые частые причины ошибки 500 можно распознать по тексту ошибки или внешнему виду страницы. 

  1. Сообщение Internal Server Error говорит о том, что есть проблемы с файлом .htaccess (например, виновата некорректная настройка файла). Убедиться, что .htaccess является корнем проблемы, поможет следующий прием: переименуйте файл .htaccess, добавив единицу в конце названия. Это можно сделать с помощью FTP-клиента (например, FileZilla) или файлового менеджера на вашем хостинге (в Timeweb такой есть, с ним довольно удобно работать). После изменения проверьте доступность сайта. Если ошибка больше не наблюдается, вы нашли причину.
  2. Сообщение HTTP ERROR 500 или пустая страница говорит о проблемах со скриптами сайта. В случае с пустой страницей стоит учесть, что отсутствие содержимого сайта не всегда указывает на внутреннюю ошибку сервера 500.

Давайте узнаем, что скрывается за пустой страницей, обратившись к инструментам разработчика. Эта браузерная панель позволяет получить информацию об ошибках и другие данные (время загрузки страницы, html-элементы и т.д.). 

Как открыть панель разработчика

  • Нажмите клавишу F12 (способ актуален для большинства браузеров на Windows). Используйте сочетание клавиш Cmd+Opt+J, если используете Google Chrome на macOS. Или примените комбинацию Cmd+Opt+C в случае Safari на macOS (но перед этим включите «Меню разработки» в разделе «Настройки» -> «Продвинутые»). Открыть инструменты разработчика также можно, если кликнуть правой кнопкой мыши в любом месте веб-страницы и выбрать «Просмотреть код» в контекстном меню. 
  • Откройте вкладку «Сеть» (или «Network») и взгляните на число в поле «Статус». Код ответа об ошибке 500 — это соответствующая цифра.

Причины ошибки 500Более детальную диагностику можно провести с помощью логов.

Простыми словами: лог — это журнал, в который записывается информация об ошибках, запросах к серверу, подключениях к серверу, действиях с файлами и т.д.

Как вы видите, данных в логи записывается немало, поэтому они разделены по типам. За сведениями о нашей ошибке можно обратиться к логам ошибок (error_log). Обычно такие логи предоставляет служба поддержки хостинга, на котором размещен сайт. В Timeweb вы можете включить ведение логов и заказать необходимые данные в панели управления. Разобраться в полученных логах поможет статья «Чтение логов».

Как устранить ошибку

Теперь поговорим о том, как исправить ошибку 500. Вернемся к популярным причинам этой проблемы и рассмотрим наиболее эффективные способы решения.

Ошибки в файле .htaccess

У этого файла довольно строгий синтаксис, поэтому неверно написанные директивы (команды) могут привести к ошибке. Попробуйте поочередно удалить команды, добавленные последними, и проверьте работу сайта. 
Также найти проблемную директиву можно с помощью логов ошибок (через те же инструменты разработчика в браузере). На ошибку в директиве обычно указывает фраза «Invalid command». Информацию о верном написании директивы или способе исправления ошибок в .htaccess вы можете найти в интернете. Не нужно искать, почему сервер выдает ошибку 500, просто введите в строку поиска название нужной команды или текст ошибки из логов.

Ошибки в скриптах сайта

Скрипт не запускается

Обычно это происходит, когда существует ошибка в скрипте или функция, которая не выполняется. Для успешного запуска скрипта функция должна быть верно прописана, поддерживаться сервером и выполняться от используемой версии PHP. Бывают ситуации, когда функция несовместима с определенными версиями PHP. Получить более подробную информацию о той или иной функции можно в интернете. 

Не хватает оперативной памяти

Если в логах вы видите ошибку «Allowed memory size», для устранения ошибки 500 стоит оптимизировать работу скрипта. Вы можете воспользоваться специальными расширениями для анализа производительности скрипта или обратиться за помощью к специалисту, который поработает над его оптимизацией.

Если ваш сайт размещен на отдельном физическом или виртуальном сервере, можно попробовать увеличить максимальное использование оперативной памяти на процесс (memory_limit). На шаред хостинге этот параметр обычно не изменяется, но есть возможность купить хостинг помощнее.

Ошибки в CMS

Если код CMS содержит неверный синтаксис, это может вывести сайт из строя. В таком случае логи сообщат вам об ошибке 500 текстом «PHP Parse error: syntax error, unexpected». Так происходит, когда некорректно работает плагин (или тема, используемая в CMS, но реже) либо есть ошибки в коде. Ошибка может быть допущена случайно, произойти при обновлении плагина или версии CMS.

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

Ошибка 500 из-за плагинов ВордпрессТакже в большинстве случаев подобные проблемы помогает решить поддержка CMS.

Информацию о других распространенных ошибках вы можете найти в статье «6 наиболее часто возникающих ошибок HTTP и способы их устранения».

Удачи! 

Страницу с кодом ответа 500 веб-сервер возвращает, когда не может обработать запрос из-за ошибок в файлах сайта.

Внешний вид ошибки 500 зависит от того, чем она вызвана. При неполадках в скриптах сайта отобразится пустая страница, сообщение HTTP ERROR 500 или текст обработчика PHP.

Если проблема в файле .htaccess — сообщение Internal Server Error.

Часто ошибку 500 можно легко устранить даже не имея знаний в области веб-разработки. О том, как это сделать, расскажем далее.

Ошибки в файле .htaccess

Сообщение Internal Server Error выводится, когда в файле .htaccess есть ошибки. Переименуйте файл .htaccess и проверьте корректность работы сайта. Если он доступен, удалите правила, которые были добавлены последними, или восстановите старый файл из резервной копии.

Ошибки в скриптах сайта

Пустая страница — не всегда признак ошибки 500. Поэтому в первую очередь узнайте код ответа, с которым она открывается. Это можно сделать при помощи инструментов разработчика в браузерах.

Инструменты разработчика — функция для исследования работы сайта. Она позволяет узнать время ответа сервера, код ответа, посмотреть текст возникших ошибок и многое другое.

Нажмите сочетание клавиш Ctrl+Shift+I или используйте меню браузера:

  • Mozilla Firefox — «Веб-разработка» → «Инструменты разработчика»;
  • Google Chrome — «Дополнительные инструменты» → «Инструменты разработчика»;
  • Opera — «Разработка» → «Инструменты разработчика».

Перейдите во вкладку «Сеть (Network)». На ошибку 500 указывает соответствующее число в колонке «Статус».

Статус пустой страницы может быть и 200 (Ok). В таком случае проверьте, есть ли содержимое в индексном файле сайта, очистите кеш вашей CMS. Если ранее сайт работал корректно, восстановите его из резервной копии.

Вывод ошибок на сайте

Вывод ошибок PHP на хостинге по умолчанию выключен. Чтобы увидеть их текст, добавьте в файл .htaccess правило: php_value display_errors 1 и обновите страницу сайта.

Если текст не отобразился, включите вывод ошибок через конфигурационный файл CMS. Он расположен в корневой директории сайта.

WordPress

Замените в файле wp-config.php строку define(‘WP_DEBUG’, false); на define(‘WP_DEBUG’, true);

Joomla

Измените значение переменных debug и error_reporting в configuration.php на: public $debug = '1'; и public $error_reporting = 'maximum';

1С-Битрикс

В конфигурационном файле по пути ~/public_html/bitrix/php_interface/dbconn.php замените значение переменных DBDebug и DBDebugToFile на: $DBDebug = true; и $DBDebugToFile = true;

Laravel

В файле .env измените APP_DEBUG=false на APP_DEBUG=true

Алгоритм устранения ошибки можно найти в интернете, поместив ее текст в строку любой поисковой системы. Если с помощью найденной информации возобновить работу сайта не получится, восстановите его из резервной копии. Наши специалисты могут помочь с восстановлением. Для этого направьте обращение из раздела «Поддержка» Панели управления.

Журнал ошибок PHP

Иногда ошибка не выводится на странице или возникает периодически: ее тяжело отследить. Чтобы узнать текст таких ошибок, записывайте информацию о них в файл — журнал ошибок PHP. Подключите его, добавив в .htaccess строку: php_value error_log /home/username/domains/domain.ru/php_errors.log и обновите страницу сайта.

Откройте создавшийся файл журнала с помощью Файлового менеджера в Панели управления. Чтобы просматривать возникающие ошибки в реальном времени, отметьте опцию «Включить автообновление».

Быстро возобновить работу сайта можно, восстановив его из резервной копии за дату, когда ошибок не было. Если восстановление нежелательно, обратитесь к разработчику.

Для устранения некоторых ошибок не требуется специальных знаний. Рассмотрим самые распространенные.

Нехватка оперативной памяти

Ошибка с текстом Allowed memory size возникает из-за нехватки оперативной памяти для выполнения скрипта: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 81 bytes) in /home/username/domains/domain.ru/public_html/somescript.php

Чтобы исправить ее, увеличьте лимит оперативной памяти, добавив в файл .htaccess директиву:

php_value memory_limit 512M

Вместо «512» укажите необходимый объем памяти. Максимальное значение ограничивается тарифом.

Текст Out of memory означает, что достигнут лимит оперативной памяти по тарифному плану:

PHP Fatal error: Out of memory (allocated 39059456) (tried to allocate 262144 bytes) in /home/username/domains/domain.ru/public_html/somescript.php

Оптимизируйте работу скриптов, чтобы они потребляли меньше памяти. Объемную загрузку или выгрузку данных производите частями. Если оптимизацию произвести невозможно, измените тариф на тот, по которому предоставляется достаточно памяти для комфортной работы сайта.

Ошибки в CMS

При обновлении CMS случаются синтаксические ошибки:

PHP Parse error: syntax error, unexpected '[', expecting ')' in /home/username/domains/domain.ru/public_html/wp-content/plugins/wordpress-23-related-posts-plugin/config.php on line 130

Это происходит из-за того, что новые функции CMS не поддерживают устаревшие версии PHP. Чтобы исправить ошибку, измените версию PHP для сайта на более современную в разделе «Сайты» → «Веб-серверы».

Если предыдущая рекомендация не помогла, обратите внимание на путь до неработающего скрипта: там может быть указан каталог плагина или темы. Чтобы исправить ошибку, отключите их. Для этого переименуйте папку, в которой они расположены. После устранения ошибки авторизуйтесь в административной части сайта и измените тему или переустановите плагин.

Чтобы исправить большинство ошибок PHP, достаточно изучить их текст и принять меры, указанные в статье. Если вам не удается справиться с ней самостоятельно, обратитесь в службу поддержки.

Была ли эта инструкция полезной?

Всем привет! Помогите, это ужас какой-то!
Проект Laravel/Vue.JS Single Page Application (RESTful API).

При отправке формы передается JSON методом POST, а его данные затем отправляются на email.
На локальном сервере под арестантом все работает, письма отправляются, все красиво, но после переноса на хост выдает ошибку 500.

{ "message": "Failed to authenticate on SMTP server with username "narzantaria@gmail.com" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "534", with message "534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbuprn534-5.7.14 63RQjJaYK-rTFJ_qwOhBI0d-QH6TZ8_z_QtKX9fN0xXgm_pmKEf8oYa4ua18ByUtRBx1nBrn534-5.7.14 -GMpG-hb47bWHMSTq-i2SVX5P3YXhRD91F9zoNt1Rgzk7BrOX3bcZCz9DBP3ko> Pleasern534-5.7.14 log in via your web browser and then try again.rn534-5.7.14 Learn more atrn534 5.7.14 [url]https://support.google.com/mail/answer/78754[/url] a18sm444902ljf.35 - gsmtprn". Authenticator PLAIN returned Expected response code 235 but got code "534", with message "534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbuIrn534-5.7.14 2A0XhMB-7K-5U3YxSA7QbcIwuvKjNc3dmwAMEUoAX1vpqtEuFTSrk6PLXVhZ0PIwW_QNQ2rn534-5.7.14 hkIF_7AIZzvoRKLUWdGW3UlqdkfPk0dSafE6LVM_glhq-DCTv_UJHxYjS17Kcb> Pleasern534-5.7.14 log in via your web browser and then try again.rn534-5.7.14 Learn more atrn534 5.7.14 [url]https://support.google.com/mail/answer/78754[/url] a18sm444902ljf.35 - gsmtprn". Authenticator XOAUTH2 returned Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more atrn535 5.7.8 [url]https://support.google.com/mail/?p=BadCredentials[/url] a18sm444902ljf.35 - gsmtprn".", "exception": "Swift_TransportException", "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php", "line": 191, "trace": [ { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php", "line": 371, "function": "afterEhlo", "class": "Swift_Transport_Esmtp_AuthHandler", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php", "line": 148, "function": "doHeloCommand", "class": "Swift_Transport_EsmtpTransport", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php", "line": 65, "function": "start", "class": "Swift_Transport_AbstractSmtpTransport", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php", "line": 484, "function": "send", "class": "Swift_Mailer", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php", "line": 259, "function": "sendSwiftMessage", "class": "IlluminateMailMailer", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php", "line": 159, "function": "send", "class": "IlluminateMailMailer", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php", "line": 19, "function": "IlluminateMail{closure}", "class": "IlluminateMailMailable", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php", "line": 160, "function": "withLocale", "class": "IlluminateMailMailable", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php", "line": 275, "function": "send", "class": "IlluminateMailMailable", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php", "line": 229, "function": "sendMailable", "class": "IlluminateMailMailer", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php", "line": 127, "function": "send", "class": "IlluminateMailMailer", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/app/Http/Controllers/OrderController.php", "line": 23, "function": "send", "class": "IlluminateMailPendingMail", "type": "->" }, { "function": "order", "class": "AppHttpControllersOrderController", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Controller.php", "line": 54, "function": "call_user_func_array" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php", "line": 45, "function": "callAction", "class": "IlluminateRoutingController", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Route.php", "line": 219, "function": "dispatch", "class": "IlluminateRoutingControllerDispatcher", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Route.php", "line": 176, "function": "runController", "class": "IlluminateRoutingRoute", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 680, "function": "run", "class": "IlluminateRoutingRoute", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 30, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingRouter", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php", "line": 41, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateRoutingMiddlewareSubstituteBindings", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php", "line": 75, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateFoundationHttpMiddlewareVerifyCsrfToken", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php", "line": 49, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateViewMiddlewareShareErrorsFromSession", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php", "line": 56, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateSessionMiddlewareStartSession", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php", "line": 37, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateCookieMiddlewareAddQueuedCookiesToResponse", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php", "line": 66, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateCookieMiddlewareEncryptCookies", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 104, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 682, "function": "then", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 657, "function": "runRouteWithinStack", "class": "IlluminateRoutingRouter", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 623, "function": "runRoute", "class": "IlluminateRoutingRouter", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 612, "function": "dispatchToRoute", "class": "IlluminateRoutingRouter", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", "line": 176, "function": "dispatch", "class": "IlluminateRoutingRouter", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 30, "function": "IlluminateFoundationHttp{closure}", "class": "IlluminateFoundationHttpKernel", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/fideloper/proxy/src/TrustProxies.php", "line": 57, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "FideloperProxyTrustProxies", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php", "line": 21, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateFoundationHttpMiddlewareTransformsRequest", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php", "line": 21, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateFoundationHttpMiddlewareTransformsRequest", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php", "line": 27, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateFoundationHttpMiddlewareValidatePostSize", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php", "line": 62, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 163, "function": "handle", "class": "IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "IlluminatePipeline{closure}", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 104, "function": "IlluminateRouting{closure}", "class": "IlluminateRoutingPipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", "line": 151, "function": "then", "class": "IlluminatePipelinePipeline", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", "line": 116, "function": "sendRequestThroughRouter", "class": "IlluminateFoundationHttpKernel", "type": "->" }, { "file": "/home/s/shutruk/angel-abkhazia.ru/public/index.php", "line": 55, "function": "handle", "class": "IlluminateFoundationHttpKernel", "type": "->" } ] }
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=narzantaria@gmail.com MAIL_PASSWORD=тут_пароль MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=narzantaria@gmail.com MAIL_FROM_NAME=Shutruk
<?php return [ 'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.gmail.com'), 'port' => env('MAIL_PORT', 587), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'narzantaria@gmail.com'), 'name' => env('MAIL_FROM_NAME', 'Example'), ], 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'sendmail' => '/usr/sbin/sendmail -bs', 'markdown' => [ 'theme' => 'default', 'paths' => [ resource_path('views/vendor/mail'), ], ], 'log_channel' => env('MAIL_LOG_CHANNEL'), ];

В чем может быть причина, если на локальном сервере все работает, а при переносе без изменений на хост (провайдер бегет), начинается какая-то чертовщина?
Заранее всем огромное спасибо!

В статье мы расскажем, как исправить ошибку (код состояния) 500 со стороны пользователя и администратора сайта, а также подробно разберём, что такое ошибка запроса 500.

Что такое внутренняя ошибка сервера 500

Код ошибки 5хх говорит о том, что браузер отправил запрос корректно, но сервер не смог его обработать. Что значит ошибка 500? Это проблема сервера, причину которой он не может распознать.

Сообщение об ошибке сопровождается описанием. Самые популярные варианты:

  • Внутренняя ошибка сервера 500,
  • Ошибка 500 Internal Server Error,
  • Временная ошибка (500),
  • Внутренняя ошибка сервера,
  • 500 ошибка сервера,
  • Внутренняя ошибка HTTP 500,
  • Произошла непредвиденная ошибка,
  • Ошибка 500,
  • HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).

Дизайн и описание ошибки 500 может быть любым, так как каждый владелец сайта может создать свою версию страницы. Например, так выглядит страница с ошибкой на REG.RU:

Как ошибка 500 влияет на SEO-продвижение

Для продвижения сайта в поисковых системах используются поисковые роботы. Они сканируют страницы сайта, проверяя их доступность. Если страница работает корректно, роботы анализируют её содержимое. После этого формируются поисковые запросы, по которым можно найти ресурс в поиске.

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

Проверить, осталась ли страница на прежних позициях, можно с помощью Google Search Console. Если робот исключил страницу из поисковой выдачи, её можно добавить снова.

Код ошибки 500: причины

Если сервер вернул ошибку 500, это могло случиться из-за настроек на web-хостинге или проблем с кодом сайта. Самые распространённые причины:

  • ошибки в файле .htaccess,
  • неподходящая версия PHP,
  • некорректные права на файлы и каталоги,
  • большое количество запущенных процессов,
  • большие скрипты,
  • несовместимые или устаревшие плагины.

Решить проблему с сервером можно только на стороне владельца веб-ресурса. Однако пользователь тоже может выполнить несколько действий, чтобы продолжить работу на сайте.

Что делать, если вы пользователь

Если на определённом ресурсе часто возникает ошибка 500, вы можете связаться с владельцем сайта по инструкции.

Перезагрузите страницу

Удаленный сервер возвращает ошибку не только из-за серьёзных проблем на сервере. Иногда 500 ошибка сервера может быть вызвана небольшими перегрузками сайта.

Чтобы устранить ошибку, перезагрузите страницу с помощью сочетания клавиш:

  • на ПК — F5,
  • на ноутбуке — Fn + F5,
  • на устройствах от Apple — Cmd + R.

Обратите внимание! Если вы приобретаете товары в интернет-магазине и при оформлении заказа появляется 500 Internal Server Error (перевод — внутренняя ошибка сервера), при перезагрузке страницы может создаться несколько заказов. Поэтому сначала проверьте, оформился ли ваш предыдущий заказ. Если нет, попробуйте оформить заказ заново.

Очистите кэш и cookies браузера

Кэш и cookies сохраняют данные посещаемых сайтов и данные аутентификаций, чтобы в будущем загружать веб-ресурсы быстрее. Если на ресурсе уже был статус ошибки 500, при повторном входе на сайт может загружаться старая версия страницы с ошибкой из кэша, хотя на самом деле страница уже работает. Очистить кэш и куки браузера вам поможет инструкция.

Если ни одно из этих действий не решило проблему, значит, некорректно работает сам сервер сайта. Вернитесь на страницу позже, как только владелец решит проблему.

Что делать, если вы владелец сайта

В большинстве случаев устранить проблему может только владелец сайта. Как правило, ошибка связана с проблемами в коде. Реже проблемы могут быть на физическом сервере хостинг-провайдера.

Ниже рассмотрим самые популярные причины и способы решения.

Ошибки в файле .htaccess

Неверные правила в файле .htaccess — частая причина возникновения ошибки. Чтобы это проверить, найдите .htaccess в файлах сайта и переименуйте его (например, в test). Так директивы, прописанные в файле, не повлияют на работу сервера. Если сайт заработал, переименуйте файл обратно в .htaccess и найдите ошибку в директивах. Если вы самостоятельно вносили изменения в .htaccess, закомментируйте новые строки и проверьте доступность сайта.Также может помочь замена текущего файла .htaccess на стандартный в зависимости от CMS.

Найти директиву с ошибкой можно с помощью онлайн-тестировщика. Введите содержимое .htaccess и ссылку на сайт, начиная с https://. Затем нажмите Test:

Произошла непредвиденная ошибка

На экране появится отчёт. Если в .htaccess есть ошибки, они будут выделены красным цветом:

500 ошибка nginx

Активирована устаревшая версия PHP

Устаревшие версии PHP не получают обновления безопасности, работают медленнее и могут вызывать проблемы с плагинами и скриптами. Возможно, для работы вашего веб-ресурса нужна более новая версия PHP. Попробуйте сменить версию PHP на другую по инструкции.

Установлены некорректные права на файлы и каталоги сайта

В большинстве случаев корректными правами для каталогов являются «755», для файлов — «644». Проверьте, правильно ли они установлены, и при необходимости измените права на файлы и папки.

Запущено максимальное количество процессов

На тарифах виртуального хостинга REG.RU установлены ограничения на количество одновременно запущенных процессов. Например, на тарифах линейки «Эконом» установлено ограничение в 18 одновременно запущенных процессов, на тарифах «+Мощность» ― 48 процессов. Если лимит превышен, новый процесс не запускается и возникает системная ошибка 500.

Такое большое число одновременных процессов может складываться из CRON-заданий, частых подключений с помощью почтовых клиентов по протоколу IMAP, подключения по FTP или других процессов.

Чтобы проверить количество процессов, подключитесь по SSH. Выполните команду:

ps aux | grep [u]1234567 |wc -l

Вместо u1234567 укажите ваш логин хостинга: Как узнать логин хостинга.

Чтобы посмотреть, какие процессы запущены, введите команду:

Вместо u1234567 укажите логин услуги хостинга.

Командная строка отобразит запущенные процессы:

Код ошибки 500

Где:

  • u1234567 — логин услуги хостинга,
  • 40522 — PID процесса,
  • S — приоритет процесса,
  • /usr/libexec/sftp-server — название процесса.

Процесс можно завершить командой kill, например:

Вместо 40522 укажите PID процесса.

Чтобы решить проблему, вы также можете:

  • увеличить интервал запуска заданий CRON,
  • ограничить количество IMAP-соединений в настройках почтового клиента. Подробнее в статье Ограничение IMAP-соединений,
  • проанализировать запущенные процессы самостоятельно или обратившись за помощью к разработчикам сайта.

Если вам не удалось самостоятельно устранить ошибку 500, обратитесь в техподдержку.

Скрипты работают слишком медленно

На каждом виртуальном хостинге есть ограничения на время выполнения скрипта. Если за установленное время скрипт не успевает выполниться, возникает ошибка сервера 500. Для решения проблемы обратитесь к разработчику сайта и оптимизируйте скрипты. Если оптимизировать нельзя, перейдите на более мощный вид сервера.

У пользователей VPS есть возможность увеличить максимальное использование оперативной памяти на процесс, но лучше делать скрипты меньшего размера.

Ошибка 500 на сайте, созданном на WordPress

WordPress предлагает много плагинов для создания хорошего сайта. Они значительно расширяют возможности CMS. Однако они же могут нарушать работу сайта и вызывать ошибку 500. Вызвать ошибку могут как недавно установленные плагины, так и старые.

Для начала проверьте, нужно ли обновить плагины. Часто устаревшие плагины перестают работать и вызывают проблемы работы сайта. Если все плагины обновлены, но 500 Internal Server Error остаётся, отключите все плагины, чтобы убедиться, что именно они мешают работе сайта. Как только станет понятно, что виноват один из плагинов, отключайте их по очереди, пока не найдёте тот, который нарушает работу сервера.


Как отключить плагин в WordPress

  1. 1.
  2. 2.

    Перейдите во вкладку «Плагины» ― «Установленные».

  3. 3.

    Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:

Если все ваши действия не решили проблему или вы не уверены в своих технических знаниях, обратитесь к службе технической поддержки. Сообщите время обнаружения проблемы и опишите все действия, которые вы предприняли перед обращением. Специалисты сделают детальную проверку настроек вашего сайта и при необходимости обратятся к администраторам сервера на стороне хостинг-провайдера.

Ошибка 500

Внутренняя ошибка 500 — Internal Server Error

Ошибка с кодом 500 (internal server error) – внутренняя ошибка сервера.

500я ошибка

Значение 500 — код статуса протокола HTTP. Причина ошибки с таким кодом — неисправность конфигурации сервера, либо появление информации о том, что произошел отказ компонента. При ошибке 500 программное обеспечение работает, но есть серьезные внутренние проблемы, которые мешают запросам правильно обрабатываться.

Такая ошибка появляется у построенных на разных CMS сайтах.

Причины возникновения 500 ошибки сервера и способы их исправить

Ошибка 500 говорит о некорректной обработке запросов. Из-за этого пользователи и поисковые системы не могут полноценно работать с сайтом. Необходимо выявить и исправить причину, из-за которой возникло сообщение об ошибке. В случае, когда ошибка появляется часто и устраняется только технической поддержкой, стоит сменить хостинг.

Мы предлагаем бесплатный перенос Ваших проектов с другого хостинга на наш.

Ошибка 500 — внутренняя, поэтому если она возникла на нужном для просмотра сайте, то можно только посетить его позже, когда восстановят работоспособность.

Причин, по которым появляется ошибка 500 — огромное количество. Задача сводится к поиску и устранению неисправности.

Неправильные права доступа

Частая причина возникновения ошибки – установка неправильных прав доступа на файлы скриптов — 777. Из-за этого они блокируются сервером. Такая настройка разрешает всем вносить изменения в файл, что недопустимо с точки зрения обеспечения безопасности. В случае, когда требуется установить такие права, поставщик всегда сообщает об этом заранее.

Как исправить?

С помощью файлового менеждера (на скриншоте — бесплатная программа FileZilla) просмотреть права доступа к файлу или папке на сервере.

меняем права доступа к файлу

В первую очередь надо проверить, каким образом настроены права доступа. Для каждого типа элементов они проверяются индивидуально. Для папок рекомендуется значение 755, для скриптов — 600, а для других файлов — 644.

Оптимальное решение — один человек. который может управлять аккаунтом. Не желательно давать кому-либо права доступа к корневым папкам сайта.

Высокая длительность работы скрипта

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

Как исправить?

Решение проблемы заключается в оптимизации работы скрипта. Можно использовать специальные сервисы, которые помогают найти медленный участок кода. Если используется выделенный сервер или VPS, можно увеличить промежуток времени ожидания сервера. Маловероятно, что удастся изменить этот параметр при использовании виртуального хостинга. Это возможно только при согласии технической поддержки.

Ошибки htaccess

У файла «.htaccess» определен строгий синтаксис, который нельзя нарушать. Если в нем написаны ошибочные директивы, то это приведет к появлению ошибки 500. Возможно, директива написана правильно, но не поддерживается.

Как исправить?

меняем права доступа к файлу

В корневой папке сайта нужно поискать файл «.htaccess». Если он нашелся, то нужно скопировать его, чтобы не потерять, а затем удалить из папки. После этой процедуры сайт может заработать. В таком случае станет точно известно, что причина была в этом файле. Затем нужно исправить файл (самый простой способ — добавить файл из чистого дистрибутива используемой системы управления сайтом).

Кроме того, есть возможность посмотреть сведения о появившихся ошибках. Ошибки сервера заносятся в специальный файл «error.log». В нем нужно найти строки о том, какая из директив ошибочна. Например, информация «Invalid command ‘RewritRule’» говорит о том, что директива «RewritRule» написана с опечаткой. Исправление на «RewriteRule» убирает эту ошибку.

Нехватка памяти для работы кода

На виртуальном хостине контролируется, какое количество памяти потребляет скрипт. В случае, когда скрипт хочет использовать слишком много памяти, возможно появление сообщения об ошибке 500.

Эта функция предотвращает большую нагрузку на сервер со стороны каждого аккаунта.

Как исправить?

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

Тарифы виртуального хостинга с выбором периода предоплаты от 1 месяца до 3-х лет.

Ошибка в cgi скрптах

Ошибка 500 чаще появляется из-за ошибок в «htaccess», но еще одна её причина – неправильная работа с CGI-скриптами.

Как исправить?

Существует три основных правила, которые могут быть нарушены.

  • Формат окончания каждой из строк — UNIX (n), а не Windows (rn). Для обеспечения такого условия их загрузка проводится по FTP в режиме ASCII.
  • Права доступа для скриптов CGI и папок, где они хранятся — 0755. Такая настройка разрешает процедуру записи исключительно владельцу, чтоб правильно с позиции безопасности.
  • При работе скрипта CGI могут появиться неправильные HTTP-заголовки ответа. Следует проанализировать содержимое файла «error log» на предмет ошибок.

Ошибка 500 при использовании WordPress

В первую очередь рекомендуется определить, имеет ли файл «.htaccess» отношение к возникновению неисправности. Для этого выполнить его резервное копирование, удалить, а затем обновить страницу. Если сайт после этого работает, значит причина найдена и осталось исправить файл.

Файл «.htaccess» используется WordPress в случае, когда обычная структура ссылок была изменена на ЧПУ. Помимо этого, его используют плагины WordPress, которые осуществляют резервное копирование и некоторые другие функции.

Чаще всего файл «.htaccess» создается однократно, но в WordPress это происходит регулярно. Если в файл заносится ошибка, то хостинг считает его поврежденным и появляется «ошибка 500». Записывать лишние данные, которые воспринимаются как повреждения, могут:

  • движок;
  • тема;
  • плагины, которые активированы.

Если приведенные методы не помогли, то в качестве крайнего варианта можно отключить функцию wordpress, которая создает и переписывает файл «.htaccess». Этот метод подходит только как временная мера, поскольку вызывает проблемы при активации плагинов.

Мы предлагаем бесперебойный WordPress хостинг, оптимизированный под создание сайтов на этой CMS.

Поочередная проверка элементов позволяет отследить, какой из них — причина ошибки. В процессе поиска неисправности постоянно проверяют, не исчезает ли ошибка 500:

  • сменить тему и проверить наличие ошибки;
  • по очереди деактивировать плагины и следить за изменениями;
  • поиск ошибок в сторонних скриптах;
  • поиск проблемы в движке WordPress.

Сбои плагина иногда видно по искажению внешнего вида сайта. Возможно наличие ошибок в работе конкретного плагина или его конфликт с остальными.

Если файл «.htaccess» – не причина проблемы, нужно убедиться, что скрипты работают с нормальной скоростью. Поиск медленно работающиех скриптов можно выполнить самостоятельно, либо попросить помощи у специалистов службы технической поддержки. Файл с обнаруженной ошибкой и временем ее появления отражается в файле «Error Log».

отключаем плагины WP

В WordPress частые причины ошибки — файлы плагинов или тем. Можно деактивировать плагин и применить новый. Если причиной неисправности оказалось ядро WordPress, потребуется обновление.

На хостинге выделяется определенный объем оперативной памяти для использования. Ошибка 500 появится и из-за превышения этого допустимого значения. В админ-панели можно убедиться, не превысил ли сайт этот лимит. Там приведены сведения о уровне загруженности сервера. В файле с перечнем появляющихся ошибок видно, какой из файлов вызвал чрезмерную загрузку. Его придется обновить или удалить, если это допустимо.

Увеличить объем памяти возможно путем корректирования файла. В корне хостинга нужно найти «wp.config.php» и после последней строки добавить в него код:«define(‘WP_MEMORY_LIMIT’, ’64M’».

В ряде случаев помогает обновление WordPress до последней версии.

Ошибка 500 при входе в административную панель Joomla

Ошибка 500 иногда возникает после ввода логина и пароля для панели администрирования Joomla – «админки». При этом работоспособность сайта сохраняется. Код ошибки не указывает на конкретную проблему, поэтому требуется её самостоятельный поиск.

Как исправить?

В журнале ошибок хранятся сообщения об ошибках. Он называется «error.php» и лежит в каталоге «logs». При поиске ошибок, которые появились недавно, важно обратить на последние записи в этом файле. Там содержатся сведения о нарушениях в работе модулей, если они происходили.

Другая вероятная причина ошибки — невозможность записи в каталоги «logs» и «tmp». Возможно, потребуется установка полных прав для этих каталогов – 777.

Рекомендуется проверить правильность путей к каталогам «logs» и «tmp» в файле конфигурации «configuration.php». Желательно указать полные пути к этим каталогам.

Если проблема сохраняется, рекомендуется проверить корректность файла «htaccess» и по очереди отключить и включить все логины и плагины через базу данных. В «htaccess» возможны ошибки, опечатки и лишняя информация. Например, ошибка 500 появляется из-за того, что не закомментирована строка Options +FollowSymLinks. При редактировании файла можно не удалять, а комментировать строки и проверять, как изменяется после этого работа сайта.

Если решить проблему самостоятельно не удается, потребуется обращение в службу технической поддержки.

iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.

Мы предлагаем:

  • Виртуальные серверы с NVMe SSD дисками от 299 руб/мес
  • Безлимитный хостинг на SSD дисках от 142 руб/мес
  • Выделенные серверы в наличии и под заказ
  • Регистрацию доменов в более 350 зонах

Понравилась статья? Поделить с друзьями:
  • Ошибка 500 при отправке сообщения теле2
  • Ошибка 500 при отправке почты
  • Ошибка 500 при открытии сайта что значит
  • Ошибка 500 при оплате картой
  • Ошибка 500 при изменении htaccess