PHP > Javascript >MySQL

lexxx

Guest
PHP > Javascript >MySQL

Привет :)
Вот такая у меня сейчас трабла - надумал логер сделать, что-б в датабазу вносил разрешение экрана. Через php разрешение не достать, поэтому надо через java. Получлось вот что:
PHP:
$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$res = ("<script type=\"text/javascript\"> 
document.write(window.screen.width + ' x ' + window.screen.height); 
</script>");
echo $res;
if (mysql_query( "INSERT INTO log VALUES( null, '$ip', '$res', '$browser' )")){
echo "data posted successfully";
}else{
echo "failure to post the data";
}
Все работает отлично, однако при попытке послать $res ничего не полачается. Если сделать
PHP:
 echo $res;
то получаю "800 x 600", тем не менее ничего не выходиь. Пробовал (string)$res (на всякий случай) - тот же еффект. Еще пробовал
PHP:
$res .= "800 x 600"
- тоже ничего не получается, хотя если сделать просто
PHP:
$res = "800 x 600"
, то проходит нормально... вообщем я тута немного в трансе :D Плиз хелп! :)
 

lexxx

Guest
Так, спасибо :) Я знал что пхп выполняется на сервере а жава на клиенте, но не додумался что похожая структура работать не будет.
Но все равно вопрос - если не было повторного запроса на пхп сервер, то как я все равно получаю правильное echo? И что мне делать? :)
 

rotoZOOM

ACM maniac
результат echo ты получаешь где ? Правильно на клиенте !
А клиент обрабатывает это как javascript, вот ты и видишь у себя на экране разрешение.
А пока скрипт выполняется на сервере, PHP видит $res как
"<script type=\"text/javascript\">
document.write(window.screen.width + ' x ' + window.screen.height);
</script>"
Что делать ? А ничего, не заниматься глупостью.
Узнать разрешение экрана пользователя можно только с разрешения самого пользователя. Если он не захочет, то ты ничего не узнаешь.
 

lexxx

Guest
Спасибо за ту линку... я наконец-то понял :) Только что получилось сделать все через куку и рефреш страницы... но вот я думаю - а как можно без куки?
 

Рафаэль

Guest
А почему бы не сделать так:

Это будет на той страничке, которую клиент будет открывать:
<script language="javascript">
res=window.screen.width + "x" + window.screen.height;
document.location.href="AddResolution.php?res="+res;
</script>


А это будет php-файл "AddResolution.php", который добавляет разрешение в базу данных из входящей переменной $res:

...
mysql_query( "INSERT INTO log VALUES( null, '$ip', '$res', '$browser' )"));
...

Вроде так
 
Сверху