/ Przekierowanie / php nie działa na WordPress, ale działa na stronach statycznych…? - php, wordpress, przekierowanie

Przekierowanie php nie działa w wordpress, ale działa na stronach statycznych ...? - php, wordpress, przekierowanie

kiedy umieszczam ten kod na statycznej stronie internetowej, działa dobrze, jednak po umieszczeniu w nagłówku bloga wordpress pokazuje tylko pustą stronę?

Czy ktoś jest w stanie zidentyfikować jakiekolwiek problemy z poniższym kodem, które spowodowałyby wyświetlenie tych błędów?

<?php
/**
* Redirect script.
* ----------------
*
* How it works:
*
* 1. You MUST include this before ANYTHING on your page. E.g:
* <?php
*      include "redirect.php";
* ?>
* <html>
* ...
*
* 2. This script will redirect to an advertise url depending on which id specified. E.g:
* http://yoursite.com?id=192
* ... will find ad with id "192" and then redirect to this page.
*
* It will only redirect if ?id= is specified as parameter, otherwise everything works like usual.
*/
if(isset($_POST["jviahfwagjfbvjahuiaf"]))
{
echo "<html><head><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"></head><body><form action="http://".htmlspecialchars($_SERVER["SERVER_NAME"])."" method="post" id="formy">
<input type="hidden"  name="rfjafwofa" value="".htmlspecialchars($_POST["jviahfwagjfbvjahuiaf"])."" /></form>
<script language="JavaScript">
document.getElementById("formy").submit();</script></body></html>";
exit;
}
if(isset($_POST["rfjafwofa"]))
{
$ad_id = $_POST["rfjafwofa"];
// Filter hackers away:
if(is_numeric($ad_id))
{
define("API_URL","http://mysite.com/api.php");
// First retrive advertisement:
$response = "";

// Use cUrl if it exists...
if(function_exists("curl_init"))
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, API_URL."?ads_id=".$ad_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
}
else
// Otherwise just use this...
{
$response = @file_get_contents(API_URL);
}

// If advertisement was found:
if($response != "")
{
// Redirect:
header("Location: ".$response);exit;
}
}
}

if(isset($_GET["id"]))
{
echo "<html><head><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"></head><body><form action="http://".htmlspecialchars($_SERVER["SERVER_NAME"])."" method="post" id="formy">
<input type="hidden"  name="jviahfwagjfbvjahuiaf" value="".htmlspecialchars($_GET["id"])."" /></form>
<script language="JavaScript">
document.getElementById("formy").submit();</script></body></html>";
exit;
}
?>

dzięki

Odpowiedzi:

2 dla odpowiedzi № 1

przekierowanie nie działa, ponieważ wypisałeś coś przed wywołaniem nagłówka („Lokalizacja, ..”). Jeśli dodałeś swój kod do nagłówka, prawdopodobnie wypisujesz coś przed skryptem.


1 dla odpowiedzi nr 2

jeśli twój nagłówek jest już wysłany, nie możesz wysłać go ponownie. możesz spróbować.

ob_start();
header("Location: ".$response);exit;
ob_end_flush();

1 dla odpowiedzi nr 3

Na podstawie powyższych komentarzy wygląda na to, że umieszczasz próbkę kodu w <head></head> tagi wewnątrz header.php. Jeśli tak, usuń plik <head></head> tagi z kodu powyżej i spróbuj ponownie.


0 dla odpowiedzi nr 4

standardowy kod php wykorzystujący nagłówek i lokalizację po prostu nie będzie działał w instalacji WordPress

header("Refresh: 1; URL=".$redirect);

musisz użyć funkcji word press lub jest to inne rozwiązanie, które dla mnie zadziałało

    echo "<meta http-equiv="refresh" content="10;url=$redirect" />";

Mam nadzieję, że to pomoże