나는 다음을 시도하고 있습니다 (불필요하게 복잡한 것처럼 보이지만 문제를 조금씩 나누어야했습니다).
page_a.php
$keywords = get_meta_tags($_SERVER['HTTP_REFERER']);
$author = $keywords['author']; //"nameofauthor"
$foo = "foo";
$keywords = array ( "author" => $author, "foo" => $foo);
$_SESSION['keywords'] = $keywords;
//echo $author on page_a.php would successfully print "nameofauthor", so the variable isn't empty
page_b.php
echo $_SESSION['keywords']['author']; //echoes ""
echo $_SESSION['keywords']['foo']; //echoes "foo"
내가 무엇을 놓치고 있습니까?
감사!
문제가 스크립트가 포함 된 페이지의 이중 실행이라는 것을 발견했습니다.
첫 번째 실행에서 리퍼러는 원격 사이트 (메타 태그를 검색해야하는 사이트)에서 가져 왔습니다.
두 번째 실행에서 리퍼러는 스크립트 호스팅 사이트에서 가져 왔으므로이 실행은 태그를 빈 값으로 덮어 씁니다 (스크립트 자체에서 메타 태그가 사용되지 않기 때문).
후자를 피하기 위해 다음 줄을 추가하여 첫 번째 실행인지 두 번째 실행인지 확인했습니다.
$baseurl = parse_url($request->getBaseUrl()); //My framework's function to return the hosting system's base-url (e.g., example.com)
$referer = strstr($_SERVER['HTTP_REFERER'], $baseurl['host']) ? $_SESSION['referer'] : $_SERVER['HTTP_REFERER'];
$keywords = get_meta_tags($referer);
의견을 보내 주셔서 감사합니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다