저는 약간의 프로젝트를 진행 중이고 뇌사 상태가되었으므로 여기 누군가가 제 코더 블록을 물리 칠 수 있도록 도와 줄 수 있기를 바랍니다.foreach 루프를 종료하고 결과를 검색하십시오.
어떤 값 (있는 경우)이 페이지 (위치)에 전달되는지에 따라 콘텐츠 표시를 변경하는 php를 사용하여 페이지를 만들려고합니다. 다른 위치를 저장 한 수신 허용 목록 배열을 만들었습니다. 먼저 일치 목록에 하나의 콘텐츠 집합이 표시되면 수신 허용 목록에 대해 전달 된 값을 확인합니다.
일치하지 않는 경우 theres가 단순한 오타 일 수 있는지 확인하기 위해 유사성 테스트를 실행 중이며 여전히 사람들이 원하는 페이지로 이동할 수 있지만 이것이 내가 갇혀있는 곳입니다.
나는 누군가가 ----
www.example.co.uk/location.php <을 입력 할 수있는 일반적인 위치 페이지를
www.example.co.uk/를로드 할 것을 바라고 있어요 location.php? loc = Bishops-Stortford < 타겟 위치 페이지를로드하려면
www.example.co.uk/location.php?loc=Bishop-Stortford < ---- 타겟을로드하십시오. 위치가 잘못되어도 페이지가 90 % 이상 일치합니다.
www.example.co.uk/location.php?loc=?php echo "귀하의 사이트를 해킹했습니다."; ?> ---- 잘하면 내 시스템은 불쾌한 코드 삽입을 무력화 할 것이다
나는 내가 가진 것을 볼 수 있도록 아래에 나의 코드를 게시 할 것이다.
<?php
$loc = "";
$safelist = array("Bishops Stortford", "Braintree", "Chelmsford", "Dunmow", "Harlow", "Hertford", "Saffron Walden", "Sawbridgeworth", "Stansted", "Ware",
"Essex", "Hertfordshire");
if(isset($_GET["loc"])) {
/* Gets the value of loc if set, replaces hyphens with spaces and capitalises first letters of words converting the rest to lowercase. */
$loc = ucwords(strtolower(str_replace("-", " ", $_GET["loc"])));
}
/* Is word in safelist */
if (in_array($loc, $safelist)) {
/* Yes */
if (($loc == "Essex") or ($loc == "Hertfordshire")) {
$county = True;
} else {
$county = False;
}
if ($county == False) {
echo "\"" . $loc . "\" is not a county";
}else{
echo "\"" . $loc . "\" is a county";
}
} else {
/* No, Is string 90% similar to any entry within the safelist? */
foreach ($safelist as $safeword) {
similar_text($safeword, $loc, $percent);
echo $safeword . " " . $loc . " " . $percent . "<br />";
if ($percent >= 90) {
}
}
?>
if ($ percent> = 90)에 대해 어떻게 해야할지 생각할 수 없습니다. 루프를 종료하고 처음 90 % 이상 일치하는 결과를 얻고 싶지만 100 % 확신 할 수는 없습니다.
코드 삽입을 처리하는 가장 좋은 방법은 무엇입니까? www.example.co.uk/location.php?loc=?php echo "내가 귀하의 사이트를 해킹했습니다."; ?>
당신이있어 이후 : – Barmar
나는 그 질문을 이해하지 못한다. 에코 한 모든 내용이 페이지에 표시되므로 결과를 검색하기 위해 아무 것도 할 필요가 없습니다. – Barmar
나는 디버깅을 위해 에코를 꺼낼 것이다. 내 머리 속에서 볼 수있는 방법은 foreach 루프를 사용하여 배열 내의 각 문자열을 페이지에 전달 된 문자열과 비교하는 것입니다. 백분율 값이 90 % 이상일 때 루프를 종료하고 근접한 배열의 값을 가져온 다음 해당 값을 사용하여 페이지 콘텐츠를로드합니다. 90 % 범위 내에서 일치하는 항목이 발견되지 않으면 악의적 인 것처럼 코드를 처리하고 싶습니다. –