Redirect JavaScript PHP

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
MelecaCristian
Mesaje: 176

Redirect JavaScript PHP

Buna am si eu o mica problema si nu stiu daca merge rezolvata problema consta in urmatoarul script nu face ceea ce vreau eu
deci daca se poate daca nu gaseste date (ex:18917117 nu conteaza) cod in GET 1 sa ma redirectioneze catre o noua adresa de ex : http://site.com/noclip nu am mai lucrat cu asa ceva si cer ajutorul celor mai priceputi multumesc mult pentru fiecare care depune un efort spre a ma ajuta ...

Cod: Selectaţi tot

<!-- Redirect -->
<script type="text/javascript">
<!--
function delayer(){
    window.location = "http://site.com/?1=<?php echo $_GET['1']; ?>&2=<?php echo $_GET['2']; ?>&3=<?php echo $_GET['3']; ?>"
}
//-->
</script>
</head>
<body onLoad="setTimeout('delayer()', 5000)">
<b><font color="red"><br>Va rugam asteptati cateva momente</font></b>
„Uneori o greşeală poate fi tot ce este necesar pentru o realizare valoroasă.” — Henry Ford

MarPlo Mesaje: 4343
Salut
Daca nu trebuie neaparat redirect cu JavaScript, poti face din codul PHP, daca nu exista acel $_GET['1'].
Inlocuiesti in exemplu tau, la ?1=... cu asta:

Cod: Selectaţi tot

<?php if(isset($_GET['1'])) echo $_GET['1']; else { header('Location: http://site.net/pagina'); exit; } ?>

MelecaCristian Mesaje: 176
offf nu stiu de ce imi da eroare cand nu este nici o data in GET1 nu se redirectioneaza spre http://site.net/pagina (ex) imi da eroarea urmatoare :

Cod: Selectaţi tot

Warning: Cannot modify header information - headers already sent by (output started at /home/skalumea/public_html/site...:8) in /home/skalumea/public_html/site... on line 20
Deci faza ca daca nu este nimic in GET1 sa ma redirectioneze catre un url de exemplu http://site.net/primared

si daca sunt date in GET1 ,2 ,3 sa ma redirectioneze catre
http://site.com/vezi.php?1=<?php echo $_GET['1']; ?>&2=<?php echo $_GET['2']; ?>&3=<?php echo $_GET['3']; ?>
pt ca vezi.php include alte date care sunt folositoare dar daca nu e nimic in get1 2 sau 3 imi da fisier inexistent si decat sa imi arate asa prefer sa imi arate un clip sa zic :D oricum apreciez efortul depus.
„Uneori o greşeală poate fi tot ce este necesar pentru o realizare valoroasă.” — Henry Ford

MarPlo Mesaje: 4343
Eroarea e din cauza ca deja sunt date de esire (cod html/js) inainte de header(). Solutia ar fi sa adaugi acel header de redirect in php inainte de orice cod html /js , mai la inceputul fisierului (ca si session_start() ).
Incearca sa adaugi la inceputul fisierului codul:

Cod: Selectaţi tot

<?php if(!isset($_GET['1'])) { header('Location: http://site.net/pagina'); exit; } ?>
- Sau, poti adauga asa in acea functie JavaScript:

Cod: Selectaţi tot

window.location = "<?php
if(isset($_GET['1'])) echo 'http://site.com/?1='. $_GET['1']. '&2='. $_GET['2']. '&3='. $_GET['3'];
else echo 'http://site.net/pagina'; ?>";

MelecaCristian Mesaje: 176
sa sti ca la optiunea cu html/js era o problema deoarece aveam un cod google adsense inainte care functioneaza cu JS oricum multumesc mult de sfaturi si de scripturi

si am o mica problema cand e cu ?1= (chair daca nu e nimic in fata la 1) tot nu ma redirectioneaza am incercat sa pun if(isset (?1=$_GET['1'])) dar imi da eroare
„Uneori o greşeală poate fi tot ce este necesar pentru o realizare valoroasă.” — Henry Ford

MarPlo Mesaje: 4343
Mai mult decat solutia data in raspunsul precedent (cele 2 variante) nu stiu alta.
Vezi ca in una e adaugat caracterul "!" in fata la isset(). Studiaza raspunsul anterior mai bine si cum e folosit isset().

MelecaCristian Mesaje: 176
am reusti multumesc marius :D
„Uneori o greşeală poate fi tot ce este necesar pentru o realizare valoroasă.” — Henry Ford

Subiecte similare