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.
Üstadım çok teşekkür ediyorum detaylı cevabınız ve kod için...
Birazdan deneyip sonucu paylaşacağım...
Deneme sonrası;
Temizlik fonsiyonunu başta oluşturmak alttaki kodları daha sade kılmış, elinize sağlık...
Email gönder checkbox'ını hangi durumlarda kullanmak gerekir diye hala düşünüyorum, varlık sebebini açıklayabilirseniz sevinirim...
Konunun çıkış noktası olan;
Parse error: syntax error, unexpected 'use' (T_USE) sorunu ise hala devam etmekte üstadım... : (
Yeni öğrenen biri olarak benim yapamamam normalniş... : )
Küçük bir dokunuş gerek ama ne1?
