0

基本的に、特定の画像 $member_profile_image の URL を提供する変数があります。その URL を確認しようとしているところに、「デフォルト」という単語が含まれています。これで、indexOf が 22 になりました。これにより、誰かが自分のプロフィールに写真をアップロードしていないことがわかります。プロフィール写真をアップロードしていない場合は、配列 myurls に保存したリンクにのみアクセスできるようにしたいと思います。したがって、アップロードの indexOf が実際に 22 で、それらが myurls に保存されているページの 1 つにある場合、何も起こらないようにしたいのですが、他のページに移動しようとすると、そのページにリダイレクトされるようにします。写真をアップロードします。私はこれらすべてにかなり慣れていないので、おそらくここから外れているでしょう。これまでになんとかできたのは、写真がアップロードされるページにリダイレクトされることだけです。しかし、ページを何度もリロードし続けます。以下のコード:

<script>
var image = "$member_profile_image"
var upload = image.indexOf("Default");
var myurls = new Array(3);
myurls[0] = "http://websiteforyou.spruz.com/?page=login&cmd=c&id=7394750B-F821-48B6-B6AC-1508D1932390&c=eb3hb4el98";
myurls[1] = "http://www.websiteforyou.spruz.com/?page=login&cmd=confirm";
myurls[2] = "http://www.websiteforyou.spruz.com";
myurls[3] = "http://www.websiteforyou.spruz.com/member/?page=settings&cmd=personal";
if(myurls[0,1,2] = window.location && upload == "22")
alert("have a great day");
else
alert("You have to upload a profile image to participate on this site");
window.location.replace("http://www.websiteforyou.spruz.com/member/?page=settings&cmd=personal");
</script>
4

2 に答える 2

1

私はあなたが何をしているのか完全には理解していないので、私はたくさんの仮定をしました!一般的に、あなたの最大の間違いはmyurls[0,1,2,3] = window.locationmyurls[0,1,2,3]が無効なjavascriptで=あり、比較せずに割り当てるためです。

私はコードがどうあるべきかについて例を挙げましたが、私が正しいことを願っています。

var image   = <?php echo json_encode($member_profile_image) ?>,
    upload  = image.indexOf('Default') === 22,
    myurls  = [
        'http://websiteforyou.spruz.com/?page=login&cmd=c&id=7394750B-F821-48B6-B6AC-1508D1932390&c=eb3hb4el98',
        'http://www.websiteforyou.spruz.com/?page=login&cmd=confirm',
        'http://www.websiteforyou.spruz.com',
        'http://www.websiteforyou.spruz.com/member/?page=settings&cmd=personal'
    ];

if (myurls.indexOf(window.location) > -1 && upload) {
    alert('have a great day');
}
else {
    alert('You have to upload a profile image to participate on this site');
    window.location.replace('http://www.websiteforyou.spruz.com/member/?page=settings&cmd=personal');
}

IE8を使用している場合-自分で実装する必要がindexOfありArrayます(またはポリフィルを使用します)

また、それが自分のドメインであり、変更されないと仮定すると、次のようにURLパスを確認できます。

var image   = <?php echo json_encode($member_profile_image) ?>,
    upload  = image.indexOf('Default') === 22,
    myurls  = [
        '/?page=login&cmd=c&id=7394750B-F821-48B6-B6AC-1508D1932390&c=eb3hb4el98',
        '/?page=settings&cmd=personal',
        '/?page=login&cmd=confirm',
        ''
    ];

if (myurls.indexOf(window.location.pathname) > -1 && upload) {
    alert('have a great day');
}
else {
    alert('You have to upload a profile image to participate on this site');
    window.location.replace('/member/?page=settings&cmd=personal');
}
于 2012-11-08T14:42:11.357 に答える
-1

else ステートメントの後、アラートをラップし、場所を { } に置き換える必要があります。現状では、if チェックの結果に関係なく、window.location 行が実行されます。

つまり、変わる

if(myurls[0,1,2,3] = window.location && upload == "22")
alert("have a great day");
else
alert("You have to upload a profile image to participate on this site");
window.location.replace("http://www.websiteforyou.spruz.com/member/?page=settings&cmd=personal");

これに:

if(myurls[0,1,2,3] = window.location && upload == "22")
  alert("have a great day");
else
{
  alert("You have to upload a profile image to participate on this site");
  window.location.replace("http://www.websiteforyou.spruz.com/member/?page=settings&cmd=personal");
}
于 2012-11-08T07:55:20.630 に答える