Member 13257242 Ответов: 1

Проверьте наличие массива сайтов


- Привет! Я пытаюсь проверить, является ли веб-сайт, указанный в текстовом поле, веб-сайтом, перечисленным в массиве. Люди могут сообщать о веб-сайтах, и он добавит их в массив. Так, например, один сообщенный веб-сайт (мной) является www.scamadviser.com , как мне добраться туда, куда они наберут www.scamadviser.com он сказал бы: "об этом сайте сообщил администратор сайта. Обычно это означает, что сайт небезопасен. Вот код:

<html>
<head>
		<title>QuickExpose</title>
		<meta charset="utf-8" />
		<link rel="stylesheet" type="text/css" href="dist/sweetalert.css">
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->
		<link rel="stylesheet" href="assets/css/main.css" />
		<link rel="stylesheet" type="text/css" href="dist/sweetalert.css">
		<!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]-->
		<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->
</head>
<body onload="onloadwarning();">
<center>
<a href="index.html">← Go back home</a>
<h1>QuickExpose</h1>
<form method="post">
<p>enter your website:</p>
<input type="text" name="nm" style="width">
<br>
<input type="submit" value="Send">
</center>
</body>
<script src="dist/sweetalert.min.js">
</script>
<script src="script.js">
</script>
			<script type='text/javascript' data-cfasync='false'>window.purechatApi = { l: [], t: [], on: function () { this.l.push(arguments); } }; (function () { var done = false; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript'; document.getElementsByTagName('HEAD').item(0).appendChild(script); script.onreadystatechange = script.onload = function (e) { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { var w = new PCWidget({c: '0e76140a-8bc5-441a-8b05-5afcad3a46b7', f: true }); done = true; } }; })();</script>
</html>

<?php
$reportedwebsite = ["www.scamadviser.com","www.urlvoid.com"];
echo $_POST["nm"];
if("nm" == $reportedwebsite) {
	echo "This website has been reported by 'Website Administrator. This usually means the website is NOT safe.";
}
?>


Что я уже пробовал:

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

Member 13257242

Я не знаю, почему это не работает.

1 Ответов

Рейтинг:
12

Richard Deeming

Потому что одна строка не равна массиву строк.

Кроме того, вы пытаетесь найти литеральную строку "nm", а не отправленная строка $_POST["nm"].

Вам нужно использовать что-то вроде в массиве[^] чтобы проверить, содержит ли массив указанное значение.

Тем не менее, вы, вероятно, захотите выполнить поиск без учета регистра, как описано в этой статье[^].

<?php
$reportedwebsite = ["www.scamadviser.com","www.urlvoid.com"];
$nm = strtolower($_POST["nm"]);
if (in_array($nm, $reportedwebsite)) {
    echo "This website has been reported by 'Website Administrator. This usually means the website is NOT safe.";
}
?>


Member 13257242

Спасибо, брат!