2012-01-23 8 views
1

**スクリプトを使用した更新**

ここには、実行しようとしているスクリプトのサンプルがあります。

$lastPage = $_SERVER['HTTP_REFERER']; 
echo '<script>alert("'.$lastPage.'")</script>'; // this gives me the url I need. 
$_SESSION['lastPage'] = $lastPage; 

コンテンツが更新された後、私はそうのように、前のページにリダイレクトするために、window.locationのを使用しています:

echo '<script>window.location="'.$_SESSION['lastPage'].'"</script>' 

問題がwindow.locationのは適切に私を指示されています"http://"にコロンがありません。

上記のコードに示すようにhttp_refererに警告すると、完全なURL、コロン、およびすべてが表示されます。

私はwindow.locationで使用しようとすると、コロンを削除します。

アイデア?

ありがとうございます!

+1

は、スクリプトを示し –

+2

あなたはそれをエコーし​​、値があなたはそれがあることを期待するものであることを確認してくださいときのソースを表示します。 – jakx

+0

HTMLドキュメントの代わりに[204ステータスコード](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5)が必要です。 – Quentin

答えて

0

なぜPHPでリダイレクトしないのですか?

header("location: ".$_SESSION['lastPage']); 
+0

これは私が元来試みたものです。 mod_rewriteを使用してサイトのURLをクリーンアップしていますが、なんらかの理由でセッションにページ変数を格納する際に問題が発生しています。私はそれを数時間トラブルシューティングしようとしましたが、時間を無駄にする代わりに別のルートを試すことにしました。 私はこの方法で試してみましたが、更新スクリプトが実行された後にセッションがクリアされていましたが、これが起こる原因を見つけることができませんでした。 .htaccessファイルから書き換えルールを削除すると、リダイレクトはうまく動作しますが、クリーンURLはウェブサイトのクライアントにとって不可欠です。 – user995542

+0

別の方法として、javascript regexからhttp://を削除してからwindow.location.href = "http://" + url_without_http – ZiTAL

+0

を削除するか、リダイレクトにhtmlメタを使用してください:http://webdesign.about.com/od/ metataglibraries/a/aa080300a.htm – ZiTAL

0
 var location = "http://"+ window.location.href.replace(/^http(\:|)\/\//, ""); 
     window.location.href = location 
関連する問題