Skocz do zawartości

Polecane posty

Witam. Otóż jestem dość zielony w języku PHP. Wczoraj próbowałem się pobawić z PHPMailerem. Swoją stronę internetową mam postawioną na VPS'ie z panelem VestaCP (może tu będzie leżeć problem?)

 

Strona z HTML - index.php

        <?php
            session_start();

            require_once 'security.php';

            $errors = isset($_SESSION['errors']) ? $_SESSION['errors'] : [];
            $fields = isset($_SESSION['fields']) ? $_SESSION['fields'] : [];

        ?>
        
        <?php if(!empty($errors)): ?>
            <div class="errors">
                <ul>
                <li><?php echo implode('</li><li>', $errors); ?></li>
                </ul>
            </div>
        <?php endif; ?>
        

        <form method="post" name="form1" id="form1" action="contact.php">

                <input type="text" id="name" name="name" <?php echo isset($fields['name']) ? ' value="' . $fields['name'] . '" ' : '' ?> placeholder="imię"/><br>

                <input type="text" id="email" name="email" <?php echo isset($fields['email']) ? ' value="' . $fields['email'] . '" ' : '' ?> placeholder="e-mail"/><br>

                <input type="text" id="phone" name="phone" <?php echo isset($fields['phone']) ? ' value="' . $fields['phone'] . '" ' : '' ?> placeholder="telefon"/>

                <textarea id="message" name="message" placeholder="wiadomość"/></textarea>

                <div class="submit_box">

                    <input type="submit" name="submit" value="Wyślij" />

                    <img src="images/bg_submit.png">
                    <div class="shadow"></div>
                </div>
        </form>

</body>
</html>

<?php
unset($_SESSION['errors']);
unset($_SESSION['fields']);
?>

no i contact.php

<?php

session_start();

require_once 'phpmailer/PHPMailerAutoload.php';

$errors = [];

print_r($_POST);

if(isset($_POST['name'], $_POST['email'], $_POST['phone'], $_POST['message'])) {
    
    $fields = [
        'name' => $_POST['name'],
        'email' => $_POST['email'],
        'phone' => $_POST['phone'],
        'message' => $_POST['message']
    ];
    
    foreach($fields as $field => $data) {
        if(empty($data)) {
            $errors[] = 'Pole ' . $field . ' jest wymagane';
        }
    }
    
    if(empty($errors)) {
    
        $m = new PHPMailer;
        
        $m->isSMTP();
        $m->SMTPAuth = true;
        
        $m->SMTPDebug = 1;
        
        $m->Host = 'smtp.gmail.com';
        $m->Username = 'mojmail@gmail.com';
        $m->Passowrd = 'blablabla';
        $m->SMTPSecure = 'tsl';
        $m->Port =  465;
        
        $m->isHTML();
        
        $m->Subject = 'Email wysłany z strony KS';
        $m->Body = 'From: ' . $fields['name'] . ' (' . $fields['email'] . ')<p>' . $fields['message'] . '</p>';
        
        $m->FromName = 'Contact';
        
        $m->AddAddress('mojmail@gmail.com', 'Karol S');
        
        if($m->send()) {
            header('Location: thanks.php');
            die();
        } else {
            $errors[] = 'Przepraszamy, spróbuj później';
        }
        
    }
    
} else {
    $errors[] = 'Something went wrong.';
}

$_SESSION['errors'] = $errors;
$_SESSION['fields'] = $fields;

header('Location: index.php');

?>

I coś niedziała.. mianowicie wywala mi błąd "500 Internal Server Error Sorry, something went wrong :("

 

Any help?

 

Dzięki i pozdrawiam :)

 

Edit: ciekawe jest to, że przy wejściu na stronę, bez wypełnienia formularza, wysyła się automatycznie pusty mail na moją skrzynkę.

Edytowano przez Muczkowski (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dodaj na górze pliku

 

ini_set( 'log_errors', true );
ini_set( 'error_log', realpath( dirname( __FILE__ ) ) . '/logs/php_error.log' );
Utwórz folder logs i nadaj mu chmody 777.
Rezultat utworzonego tam pliku po uruchomieniu strony wklej tutaj.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×