BEYAZMASTER adlı üyeden alıntı

Merhabalar...

PHPmailler kullanıyorum, koşulsuz gönderi yapan kodları ilk satırı şçyle;

use PHPMailer\PHPMailer\PHPMailer; 

Fakat ben bu kodların çalışmasını verilerin post edilmesi şartına bağlamak için else içine koyduğumda başlıktaki hata ortaya çıkıyor.
Nette araştırdım ama henüz çözemedim.

<?php
if (isset($_POST['register']))
{
    $test_message_nam=$_POST["message_nam"]; 
    $test_message_ema=$_POST["message_ema"]; 
    $test_message_sub=$_POST["message_sub"]; 
    $test_message_txt=$_POST["message_txt"]; 
}

else
{
    use PHPMailer\PHPMailer\PHPMailer; 
    ...
}
?>


Koda nasıl bir müdahalede bulunmak gerekiyor sizce?

Şimdiden teşekkür ederim...

 

Kodları temizlemeden post ederseniz hacklenirsiniz.

Şu şekilde birşey istiyorsunuz sanırım.

 

<form role="form" action="form_submit.php" method="POST" name="FormInformation">
<input type="hidden" name="RegisterForm" value="FormInformation" />

<label>Adınız</label>
<input type="text" name="yourname"/>

<label>Telefon Numaranız</label>
<input type="text" name="yourphone"/>

<label>E-posta Gönderilsin</label>
<input type="checkbox" value="0" name="checkbox"/>
</form>

 

form_submit.php

function temizlikYap( $str ) {
    if (! empty($str)) {
        $str = trim( $str );
        $str = strip_tags( $str );
        $str = htmlspecialchars( stripslashes( $str ));
        $str = htmlentities( $str );
        return $str;
    }
}

if ((isset($_POST["RegisterForm"])) && ($_POST["RegisterForm"] == "FormInformation")) {  //post edilen RegisterForm FormInformation a eşitse işlemleri başlat.

$checkbox      = filter_input(INPUT_POST, 'checkbox', FILTER_SANITIZE_NUMBER_INT);
$adiniz           = temizlikYap($_POST['yourname']);
$telefonunuz = temizlikYap($_POST['yourphone']);

// Veritabanına kaydedilecekse --> INSERT INTO table

if(isset($checkbox)){

// E-posta gönderme bilgileri.
use PHPMailer\PHPMailer\PHPMailer;

// PHPMailer güncel sınıfı -> https://github.com/PHPMailer/PHPMailer 

}


}

 

Baştada dediğim gibi kodlar temizlenmeden gönderilmez. 

CSRF, XSS açıklarını yok ettiğinizden emin olun.