1

I am running Google App engine with Python, yaml. Now i need to use whichbrowser.net with it (whichbrowser is using also a PHP and the error that occure is in the

But when i am trying to load the Javascript libraries of http://whichbrowser.net/ its failing "Uncaught SyntaxError: Unexpected token < " on detect.js line 1:

detect.js:

<?php

    header("Content-Type: text/javascript");
    header("Cache-Control: no-cache, no-store, must-revalidate, max-age=0"); 
    header("Pragma: no-cache");
    header("Expires: 0"); 

    include('libraries/whichbrowser.php');

    $options = array('headers' => apache_request_headers());
    if (isset($_REQUEST['ua'])) $options['useragent'] = $_REQUEST['ua'];
    if (isset($_REQUEST['e'])) $options['engine'] = intval($_REQUEST['e']);
    if (isset($_REQUEST['f'])) $options['features'] = intval($_REQUEST['f']);
    if (isset($_REQUEST['w'])) $options['width'] = intval($_REQUEST['w']);
    if (isset($_REQUEST['h'])) $options['height'] = intval($_REQUEST['h']);
    $detected = new WhichBrowser($options);

?>

index.html:

  (function(){var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0;
  e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0;
  e|=(e&16&&({}.toString).toString().indexOf("\n")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0;
  f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0;
  p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script');
  s.src='/whichbrowser/detect.js?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);})();

app.yaml:

- url: /whichbrowser
  static_dir: whichbrowser

3 Answers 3

2

There is nothing special about the way you load JavaScript on App Engine. It loads the same way as it would on any other platform/server.

Sign up to request clarification or add additional context in comments.

3 Comments

I am getting this error in browser: "Uncaught SyntaxError: Unexpected token < " on detect.js line 1: which is <?php
See paste.ubuntu.com/7120550 , this is my yaml file. how can i tell to use python and php ?
I am running runtime main as Python in my yaml file you can see, but the javascript requires to load a PHP script that is failing, can you please check it in details first. Google App Engine needs to allow me to access Python runtime + PHP runtime from index.html where its only allowing Python runtime.
1

Your JS file(s) include PHP processing directives. This will fail if your application is written in python.

You can write your app in PHP, or you can write it in Python. You cannot commingle both languages in the same version.

You could in theory use modules/versions to implement a PHP and a Python version and use dispatch routing to wire them together, but I'd posit that its far simpler if you simply find a browser detection library that doesn't have the PHP language dependency.

More information about modules and dispatch routing: LINK

Comments

0

FYI - Google App Engine - do not allow PHP + Python to run at once. For that you need to use URL of the PHP running in another server.

This is a really Google App Engine trap, cause when the application become larger then there is no way to move.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.