Newsgroup: it.comp.www.php
Titolo: javascript enabled

Ciao potrei avere una vostra opinione su questo script inteso a rilevare 
se il browser ha JavaScript abilitato e funzionante? Non capisco come si 
fa poi a reindirizzare a pagine differenti a seoconda dell'esito.
Grazie a tutti.
<HTML>
<BODY>
<?php
$js = array_key_exists('js', $_POST) ? $_POST['js'] : '';
if ($js == '')
{
    $js = 'off';
?>
     <form name="tester" action="<?php echo $PHP_SELF ?>" method="post">
     <input type="hidden" name="js" value="on">
     </form>
     <script type="text/javascript"><!--
	document.tester.submit()
     //-->
     </script>
<?php
     }
?>
Javascript is <? echo htmlentities($js); ?>
<BR>
here follows main body.
</BODY>
</HTML>
fonte: 
http://www.faqts.com/knowledge_base/view.phtml/aid/3459

 dell'esito.
Salva il dato in sessione ed usare include o header location.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

mi sono spiegato male, in modo insufficiente.
Dunque: se lo script arriva a
$js = 'off';
penso si possa aggiungere subito dopo un header location per far 
cambiare pagina e così lo script terminerebbe, giusto?
Ma, pensavo, se lo script arriva qui:
Javascript is <? echo htmlentities($js); ?>
non è già certo che sia on? Per quale motivo è stato chiesto questo
<? echo htmlentities($js); ?>
invece di scrivere direttamente "on"?
A questo punto si potrebbe scrivere direttamente l'intera pagina per il 
browser abilitato a JavaScript, senza mandare l'utente altrove?
E' possibile, inoltre, piazzare in qualche modo lo script php prima del 
tag <HTML>?
Setec Astronomy ha scritto:


 cambiare pagina e così lo script terminerebbe, giusto?
No perche' alla prima esecuzione della pagina $js verra' sempre
valorizzato con '' in quanto la form non puo' ancora essere stata
inviata tramite JS.
IMHo ti conviene semplicemente usare JS lato client usando un codice
tipo location.herf = 'js_on.php'; ed un META REFRESH dopo qualche
secondo per inviare l'utente sulla pagina senza JS.


ci si spiega male quando non si capisce.
Adesso mi è chiaro che subito è sempre off...

non sono riuscito a fare nulla di buono.  :-(
Le altre due "pagine" sono, oltre che una pensata per js-enabled e 
l'altra no, da mostrare per intero dal tag HEAD almeno. Se, infatti, si 
fa quella prova del form, si possono avere problemi spostando il codice 
altrove (Firefox almeno ci tiene, mentre IE lo fa funzionare ma...). 
Dunque l'include non è possibile, o non sembra possibile. Ho provato 
anche Header Location ma viene fuori un errore che dice che gli header 
sono già stati inviati. Io vorrei che la cosa (controllo e pagina 
mostrata) stessero in una sola pagina, senza reindirizzamenti ulteriori.
Setec Astronomy ha scritto:


 ma...). Dunque l'include non è possibile, o non sembra possibile.
Bisogna solo saperlo fare.
<?php 
session_start();
$_SESSION['javascript'] = isset($_SESSION['javascript']) ?
$_SESSION['javascript'] : -1;
$_POST['js'] = isset($_POST['js']) ? $_POST['js'] : '';
if (($_POST['js'] == 'on') || ($_SESSION['javascript'] == 1)) {
	$_SESSION['javascript'] = 1; // js enabled
	include('js_enabled.php');
	exit;
} 
if ($_SESSION['javascript'] == 0) {
	include('js_disabled.php');
	exit;
}
if ($_SESSION['javascript'] == -1) {
	$_SESSION['javascript'] = 0;  // js disabled
?>
<html>
<head>
<title>JS Check</title>
<noscript>
<meta http-equiv="refresh" content="0;URL=<?php
echo($_SERVER['PHP_SELF']) ?>" />
</noscript></head>
<body>
<form name="tester" action="<?php echo($_SERVER['PHP_SELF']) ?>"
method="post">
  <input type="hidden" name="js" value="on">
</form>
<script type="text/javascript">
<!--
	document.tester.submit();
//-->
</script>
</body>
</html>
<?php 
}
?>
-- 
I am what I am, I do what I can


 Bisogna solo saperlo fare.
giusto anche questo. Quello che non capisco dal tuo codice è come 
includere due pagine differenti a seconda del js abilitato o meno. Ti 
ringrazio comunque tantissimo per il codice

 includere due pagine differenti a seconda del js abilitato o meno.
Hai provato almeno a leggerlo?
Se tu lo avessi fatto realmente ti saresti accorto che gia' adesso
include i file js_enabled.php e js_disabled.php a seconda se il
supporto e' attivo o meno.


> Hai provato almeno a leggerlo?
Ti chiedo umilmente scusa e ti ringrazio:
ieri ero davvero "cotto": avevo fatto le quattro di notte su un grosso 
progetto in Flash, che, se è possibile, conosco meno di PHP