Php in grado di rilevare IP, nome host, agente client ecc. È possibile rilevare la dimensione/risoluzione del monitor del browser client?può rilevare la dimensione/risoluzione del monitor del browser client?
risposta
Si dovrebbe passare a uno script PHP da JavaScript come fa la maggior parte del codice di monitoraggio (con una richiesta di immagine trasparente).
Dovrete usare PHP insieme a JavaScript, come in this example:
$url = $_SERVER['PHP_SELF'];
if(isset($HTTP_COOKIE_VARS["res"]))
$res = $HTTP_COOKIE_VARS["res"];
else {
?>
<script language="javascript">
<!--
go();
function go()
{
var today = new Date();
var the_date = new Date("August 31, 2020");
var the_cookie_date = the_date.toGMTString();
var the_cookie = "res="+ screen.width +"x"+ screen.height;
var the_cookie = the_cookie + ";expires=" + the_cookie_date;
document.cookie=the_cookie
location = '<?echo "$url";?>';
}
//-->
</script>
<?php
}
//Let's "split" the resolution results into two variables
list($width, $height) = split('[x]', $res);
//Take the width and height minus 300
$tb_width = $width-300;
$tb_height = $height-300;
//Make the table
print("<table align=center border=1 width=" .$tb_width . " height=" . $tb_height . " >
<tr><td align=center>Your screen resolution is " . $width . " by " . $height . ".<br>
The width/height of this table is " . $tb_width . " by " . $tb_height . ".</td></tr>
</table>");
No, non posso. PHP viene eseguito sul server, quindi non è in grado di rilevare le impostazioni del client a meno che non si adottino specifici passaggi sul lato client per passare le informazioni agli script PHP sul server.
Dovrete usare PHP insieme con JavaScript –
dimensioni Monitor non può essere ottenuto utilizzando JS, si deve fare un sondaggio :)
Ugh? Sì, può. – Lloyd
Lloyd: è possibile rilevare la risoluzione dello schermo, ma non le dimensioni del monitor. Una risoluzione 1600x1200 può significare un vecchio CRT da 21 ", un LCD moderatamente grande e uno schermo piccolo molto bello e denso intorno a 16" –
+1 perché * la dimensione * non può essere letta come da Csaba – cjk
Si prega di fare notare che alcuni di noi come i nostri browser non-elevata. Forse staresti meglio cercando di rilevare la dimensione del browser piuttosto che la risoluzione dello schermo. Presumo che il JS per fare entrambi sarebbe molto simile, ma in realtà non so che sia il caso.
Inoltre, qual è la risoluzione dello screen reader di un cieco?
+1. Ho una risoluzione dello schermo di 2560x1600, non riesco quasi mai a funzionare al massimo. Dovresti leggere le dimensioni della porta di visualizzazione (area della finestra senza contare le barre degli strumenti, le barre di scorrimento, la barra di stato e le decorazioni delle finestre). – SpliFF
Si noti che JS può controllare le dimensioni della finestra del browser, ma questa dimensione include barre degli strumenti utente, barre di scorrimento, ecc ... L'area dell'area di lavoro reale nel browser dipende da quelle dimensioni della barra degli strumenti.
Alcune persone richiedono dimensioni del browser per il devoloping mobile. Questa è un'informazione essenziale in alcuni casi.
L'utilizzo di WURFL e WALL può aggirare il problema poiché la maggior parte dei telefoni cellulari non supporta JS.
Anche io stavo cercando questo, ma ho trovato che nessuna di queste risposte rispondeva veramente alla domanda! In effetti, non c'è modo per PHP di conoscere la risoluzione dello schermo dal momento che è in esecuzione sul lato server. Poiché tali informazioni non vengono passate nelle variabili di ambiente HTTP, abbiamo bisogno di un'altra route. Javascript è un'alternativa.
L'esempio seguente è una pagina PHP che verifica la trasmissione di una variabile resolution
nella richiesta HTTP. Se non trova la variabile resolution
, crea un breve bit di JavaScript nella pagina che passa quella variabile e l'altezza e la larghezza lungo un reindirizzamento a se stesso. Ovviamente, quando la pagina viene caricata di nuovo dopo il reindirizzamento, tutte le variabili verranno impostate e PHP conoscerà la risoluzione.
<?php
if(!isset($_GET['resolution'])) {
echo "<script language=\"JavaScript\">
<!--
document.location=\"$PHP_SELF?resolution=1&width=\"+screen.width+\"&height=\"+screen.height;
//-->
</script>";
} else {
// Code to be displayed if resolution is detected
if(isset($_GET['width']) && isset($_GET['height'])) {
echo "Width: " . $_GET['width'] . " and Height: " . $_GET['height'] . "<br />";
} else {
echo "Resolution not detected.";
}
}
?>
Alla fine ho trovato una soluzione piuttosto insoddisfacente. Funziona, ma è brutto, aggiungendo cruft all'URL e richiedendo un reindirizzamento. Tuttavia, potrebbe ispirare qualcuno a pubblicare una risposta migliore. Cordiali saluti, credito in cui il credito è dovuto, questa risposta è stata ispirata da this post.
Si conosce la risoluzione in un determinato momento .. ma quando si carica dopo il reindirizzamento, chissà qual è la risoluzione. – xaxxon
So che questa non è la risposta migliore, quindi risparmia il downvote.
<script>
/*
JAVASCRIPT IS ON TELL THE DEVELOPER#
*/
// GET BROWSER WIDTH AND HEIGHT
var bh=screen.height;
var bw=screen.width;
window.location="?doSubmit=do&js=yes&bh="+bh+"&bw="+bw+"";
</script>
<noscript>
<!--
JAVASCRIPT IS OFF TELL THE DEVELOPER#
-->
<meta http-equiv='refresh' content='0;url=?doSubmit=do&js=off&bh=off&bw=off'>
</noscript>
<?
if($_GET["doSubmit"]=="do"){
// VARS
$bh=$_GET["bh"];
$bw=$_GET["bw"];
$js=$_GET["js"];
// PRINT HTML ?>
<table>
<tr><td><strong>Browser Width:</strong></td><td><?=$bw;?>px</tr>
<tr><td><strong>Browser Height:</strong></td><td><?=$bh;?>px</tr>
<tr><td><strong>JavaScript Detection (y/n):</strong></td><td><?=$js;?></tr>
</table>
- 1. Come rilevare l'attività del browser?
- 2. Apertura di una nuova pagina del browser sul secondo monitor
- 3. rileva la dimensione del carattere del browser
- 4. Come rilevare l'hot plug del monitor in un'applicazione Win32?
- 5. come rilevare il fuso orario del client?
- 6. Un sito può richiamare un'estensione del browser?
- 7. Javascript per rilevare la larghezza dello schermo del browser mobile?
- 8. Invia notifica al browser del client
- 9. Memoria del monitor in MATLAB
- 10. può rilevare in modo affidabile la chiusura/disconnessione del canale?
- 11. Come rilevare se il supporto del browser lampeggia?
- 12. Pulsante Indietro del browser dopo la disconnessione
- 13. Posso rilevare lo spostamento di una finestra del browser da una schermata all'altra in JavaScript?
- 14. ToolTip sul secondo monitor viene visualizzato sul bordo del monitor
- 15. Rileva aggiornamento del browser
- 16. Come posso rilevare un evento del browser "copia immagine"?
- 17. pulsante del pulsante Indietro del browser
- 18. Come rilevare lo stato attivo del browser sui dispositivi mobili?
- 19. Come rilevare l'eccezione di timeout del client sul lato server?
- 20. rilevare le impostazioni proxy del browser web predefinito
- 21. Dynamics CRM 2011 Outlook client e rendering del browser
- 22. Come determinare la disconnessione del server dal client SignalR?
- 23. .net serializzatore JSON restituisce l'ora del client locale al browser?
- 24. L'URL del documento HTML è stato scaricato dal browser client?
- 25. Leggere l'ora del browser/client dall'intestazione della richiesta servlet Http
- 26. ASP.Net Scarica il file sul browser del client
- 27. Implementazione del client COMET
- 28. Come rilevare la modalità di rendering del browser per la pagina corrente?
- 29. Può est4 rilevare il contenuto del file danneggiato?
- 30. Ottenere le dimensioni del monitor in python
e ancora non è possibile dire se l'utente ridimensiona la finestra o qualsiasi altro evento del genere .. – xaxxon