Итак, короткий рассказ:
Я проверяю много стеков над потоком статьи с похожей ситуацией и нашел только этот
1) Обнаружение URL с помощью preg_match? без http: // в строке
2) preg_match, чтобы разрешить только https: // в URL
но не ответил на мою проблему
Так что я делаю preg_match в своем php-файле, чтобы люди не вставляли URL-адреса из Bot и Troll. Но когда я проверяю его с помощью этого кода, он не работает :(. Поэтому, если они отправляют сообщение с каким-либо префиксом URL, оно не будет отправлено. Но оно не работает
if(preg_match('/(https|ftp|http):/i',$comments))
{
// prevent form from saving code goes here
echo "<script>alert('Please Correct your message');</script>";
// echo "<script>window.open('contactus.php','_self');</script>";
}
но по какой-то причине он обходит preg_match и все еще отправляется даже при всплывающем скрипте. Есть ли что-то, что я делаю неправильно, потому что мой коллега использует этот код на другом сайте, и он работает. Спасибо
PS: ЗДЕСЬ весь код, если вам нужно больше контекста, спасибо
<?php
session_start();
/*if ($_SESSION['company'] != "RapidPay") {
//redirect to the logout pag
$redirect = 'index.php';
include './includes/redirect.php';
}
if(!$_SESSION['userid']) {
header("Location:login.php");
}*/
/* if(!$_SESSION['userid']){
header("location:login.php");
}*/
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$useremail = $_SESSION['uemail'];
$uphone = $_SESSION['uphone'];
$usecurity = $_SESSION['usecurity'];
include './includes/dblogin.php';
$currentPage = 'contactus';
?>
<!DOCTYPE html>
<?php
$dontsend=0;
$mailstatus="";
if(isset($_POST["submit"])){
//catch spambots
$honeypot = FALSE;
if (!empty($_REQUEST['honeypot']) && (bool) $_REQUEST['honeypot'] == TRUE){
$honeypot = TRUE;
$dontsend=1;
# treat as spambot
}
$username=$_POST["uname"];
$phoneno=$_POST["phno"];
$email=$_POST["email"];
$comments= $_POST["message"];
if(preg_match('/(https|ftp|http):/i',$comments))
{
// prevent form from saving code goes here
echo "<script>alert('Please Correct your message');</script>";
// echo "<script>window.open('contactus.php','_self');</script>";
}
if (preg_match('/[А-Яа-яЁё]/u', $comments) || strpos($comments, 'erect') !== false){
$ipaddress = $_SERVER["REMOTE_ADDR"];
$subject = 'russian spammer ip /erectile spammer ip - RPSBS';
$message = $comments . " " . $ipaddress;
$from = $eemail;
$headers = "From:".$from;
$to= 'EMAIL';
# mail($to, $subject, $message, $headers);
$dontsend=1;
}
if ($dontsend!=1){
$ipaddress = $_SERVER["REMOTE_ADDR"];
$message="";
$message.="<table>";
$message.="<tr height='40'><td colspan='2' style='vertical-align:top'>Details of the Person</td></tr>";
$message.="<tr height='40' ><td style='vertical-align:top; width:120px'><b>Name:</b></td><td style='vertical-align:top'>".$username."</td></tr>";
$message.="<tr height='40' ><td style='vertical-align:top'><b>Mobile Number:</b></td><td style='vertical-align:top'>".$phoneno."</td></tr>";
$message.="<tr height='40' ><td style='vertical-align:top'><b>Email ID:</b></td><td style='vertical-align:top'>".$email."</td></tr>";
$message.="<tr height='40' ><td style='vertical-align:top'><b>Message:</b></td><td style='vertical-align:top; text-align:justify'>".$_POST["message"]. "<br>this message is from ip address " . $ipaddress ."</td></tr>";
$message.="</table>";
$to="EMAIL";
$sub="RapidPay - Contact US Form Submission From ".$username;
$headers="";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .="From: ".$email."\r\n";
mail($to, $sub, $message, $headers);
$mailstatus="Your mail has been sent";
//phpinfo();
}
}
?>