The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Special Forums > Web Programming, Web 2.0 and Mashups
.
google unix.com




View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #8 (permalink)  
Old 05-08-2009
pludi's Avatar
pludi pludi is online now Forum Staff  
Moderator
  
 

Join Date: Dec 2008
Location: .at
Posts: 1,860
Take this simple script:
Code:
#!/bin/bash
echo -e "Content-Type: text/plain\n\n"
env
echo "-------------"
id
Put it in your servers /cgi-bin/ directory as minimal.sh, make it executable, and then call it from your browser as http://localhost/cgi-bin/minimal.sh?a=b&c=d&e=ü
Example output:
Code:
SERVER_SIGNATURE=<address>Apache/2.2.4 (Linux/SUSE) Server at localhost Port 80</address>

HTTP_KEEP_ALIVE=300
HTTP_USER_AGENT=Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.5) Gecko/2008121300 SUSE/3.0.5-2.3 Firefox/3.0.5
SERVER_PORT=80
HTTP_HOST=localhost
DOCUMENT_ROOT=/srv/www/htdocs
HTTP_ACCEPT_CHARSET=ISO-8859-1,utf-8;q=0.7,*;q=0.7
SCRIPT_FILENAME=/srv/www/cgi-bin/minimal.sh
REQUEST_URI=/cgi-bin/minimal.sh?a=b&c=d&e=%C3%BC
SCRIPT_NAME=/cgi-bin/minimal.sh
HTTP_CONNECTION=keep-alive
REMOTE_PORT=50421
PATH=/usr/sbin:/bin:/usr/bin:/sbin
PWD=/srv/www/cgi-bin
SERVER_ADMIN=[no address given]
HTTP_ACCEPT_LANGUAGE=de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
REMOTE_ADDR=127.0.0.1
SHLVL=1
SERVER_NAME=localhost
SERVER_SOFTWARE=Apache/2.2.4 (Linux/SUSE)
QUERY_STRING=a=b&c=d&e=%C3%BC
SERVER_ADDR=127.0.0.1
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.1
HTTP_CACHE_CONTROL=max-age=0
HTTP_ACCEPT_ENCODING=gzip,deflate
REQUEST_METHOD=GET
_=/usr/bin/env
-------------
uid=30(wwwrun) gid=8(www) groups=8(www)
Notice the part in blue? That are the parameters for the script. The part in red? The Unicode codepoint for ü, as it was sent by my browser. If you really want to code this in bash, there are no libraries or other helpers for that kind of stuff. And you're not even tracking sessions yet.

What you'd have to do is code the login logic, authentication, authorization, and since the users should be able to run scripts, some kind of security lest you want to lose data.