[Apache/Debian] Geen POST/GET variabelen via CGI

Pagina: 1
Acties:

  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
Ik probeer een oud schoolproject project weer werkend te krijgen onder Debian.
Alles werkt nu maar het lijkt erop alsof ik niets kan doorgeven via POST en
GET (environment variabelen?). Ik blijf dus hangen op de inlog pagina hierdoor.
Iemand enig idee?


Hieronder wat ik (ongeveer) gedaan heb:
We hadden op de pagina een "registreer" pagina die de volgende pagina aanroept:
http://10.0.0.9/cgi-bin/uncgi/useradd.sh?user=gast
Ik heb de code van de useradd pagina aangepast:
echo "test"
echo $WWW_user
echo "$WWW_user"
echo "test"
En ik zie alleen 2x test staan. De "WWW" variabele wordt dus niet gevuld?

Dit is zo'n beetje wat ik gedaan heb:
* Installeer Linux (debian-31r0a-i386-binary-1.iso &
debian-31r0a-i386-binary-2.iso)
hostname: debian
Domain: WORKGROUP
root password: root
user & password: blackbird
* Bepaal IP-nummer met "ifconfig"

* Installeer Apache en PHP (apt-get install apache2 php4
libapache2-mod-php4)
* Installeer MySQL (apt-get install mysql-server mysql-client php4-mysql)
* Installeer eventueel SSL zodat je WinScp kan gebruiken (apt-get install
ssh)
* Installeer phpmyadmin (apt-get install phpmyadmin)


* Kopieer de html bestanden in de www root (/var/www/)
* Kopieer de "uncgi-bin" folder in cgi-bin folder (/usr/lib/cgi-bin)
* Kopieer "cgi-functions.sh", "statistieken-functions.sh", en de "styles"
folder naar
(/var/www/uncgi-bin)
* Kopieer texttag, starttag, endtag, urlencode, urldecode,htmlencode,
htmldecode naar
bin dir (/bin)


* Maak een Linux gebruiker aan: "groep3" met wachtwoord: "geheim"


* Voeg een gebruiker toe aan mysql: "groep3"
phpmyadmin => Privileges => Add a new user
User name: groep3
host: localhost
Password: geheim
Privileges: Check All
* phpmyadmin => maak database aan genaamd: "blackbird" =>
Bij tab "SQL" importeer "blackbirddb-edit.txt"
(NOTE: phpmyadmin gaf een error op: "ENGINE=MyISAM DEFAULT
CHARSET=latin1;"
En dit is de inhoud van /etc/apache2/sites-available/default:
(= httpd.conf?)
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Configuratieproblemen hebben niets met programmeren te maken. ;) Waar hoort mijn topic?

PRG>>NOS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Massiefje
  • Registratie: Mei 2002
  • Laatst online: 23-01 21:41
Probeer eens $_GET['varname'] of $_POST['varname'] ? Wat doettie dan ?

  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
als ik dit probeer:
echo "test"
echo $WWW_user
echo "$WWW_user"
echo "test"

echo $_GET['WWW_user']
echo $_POST['WWW_user']
echo $_GET["WWW_user"]
echo $_POST["WWW_user"]

echo $_GET['user']
echo $_POST['user']
echo $_GET["user"]
echo $_POST["user"]
Dan komt er dit uit:
test test [WWW_user] [WWW_user] [WWW_user] [WWW_user] [user] [user] [user] [user] test

  • rvdven
  • Registratie: November 2006
  • Laatst online: 03-01 07:24
ik neem aan dat je met [WWW_user] bedoeld dat daar de naam van de www-user staat? Als dat zo is dan doen de $_GET en $_POST variabelen het dus goed, en heb je register_globals uit staan (waar maar goed is ook.)

  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
Ik run:
http://10.0.0.9/cgi-bin/uncgi/useradd.sh?user=gast

Dan zou er dus "gast" moeten staan. Maar hij geeft nu dus letterlijk het bovenstaande eruit...

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 01-02 22:15

SA007

Moderator Tweaking
voor zover ik herinner uit een vaag schoolproject kan je met apache met cgi zo niet de variabelen ophalen.

POST variabelen krijg je over de standaard input geduwd, GET variablen moet je uit je server adres vissen (voer 's env uit in je scriptje, zie je het zo)

Edit:
Je gebruikt uncgi... mjah, ben ik nooit zo dol op geweest, had daar zelf een script voor gemaakt :)
uncgi staat er goed (krijg je ook de uncgi foutmeldingen als je een 404 maakt enzo?)

Gokje: project 3, hbo informatica ICA te arhnem (han) onze hete ook blackbird...

[ Voor 34% gewijzigd door SA007 op 06-03-2007 19:18 ]


  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
hej bas :)

Ik heb inmiddels uncgi gedownload.
http://www.midwinter.com/~koreth/uncgi.html

Je moet daarbij wat paden instellen:
SCRIPT_BIN=
DESTDIR=

Ik heb wat verschillende combinaties geprobeerd:
SCRIPT_BIN=/usr/lib/cgi-bin/uncgi
DESTDIR=/usr/lib/cgi-bin

SCRIPT_BIN=/usr/lib/cgi-bin
DESTDIR=/usr/lib/cgi-bin

SCRIPT_BIN=/usr/lib/cgi-bin/uncgi
DESTDIR=/usr/lib/cgi-bin/uncgi

SCRIPT_BIN=/var/www/uncgi-bin
DESTDIR=/usr/lib/cgi-bin/uncgi
Ik weet ook niet of ik apache ervoor moet herstarten na het compilen? Of iets anders.

Iig, ik had een scriptje gevonden voor de environment:
echo '<table>'
env | sort | replace '\^' '<tr><td>' '=' '</td><td>' '\$' '</td></tr>'
echo '</table>'
Met als resultaat:
CONTENT_LENGTH 0
CONTENT_TYPE application/x-www-form-urlencoded
DOCUMENT_ROOT /var/www/
GATEWAY_INTERFACE CGI/1.1
HTTP_ACCEPT application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q 0.9,text/plain;q 0.8,video/x-mng,image/png,image/jpeg,image/gif;q 0.2,text/css,*/*;q 0.1
HTTP_ACCEPT_CHARSET windows-1252, utf-8, utf-16, iso-8859-1;q 0.6, *;q 0.1
HTTP_ACCEPT_LANGUAGE en
HTTP_CONNECTION Keep-Alive
HTTP_COOKIE2 $Version 1
HTTP_COOKIE login random; wachtwoord random
HTTP_HOST 10.0.0.7
HTTP_REFERER http://10.0.0.7/cgi-bin/uncgi/login.sh
HTTP_USER_AGENT Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.54
PATH /sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin
PWD /usr/lib/cgi-bin/uncgi
QUERY_STRING user gast
REMOTE_ADDR 10.0.0.10
REMOTE_PORT 1346
REQUEST_METHOD POST
REQUEST_URI /cgi-bin/uncgi/useradd.sh?user gast
SCRIPT_FILENAME /usr/lib/cgi-bin/uncgi/useradd.sh
SCRIPT_NAME /cgi-bin/uncgi/useradd.sh
SERVER_ADDR 10.0.0.7
SERVER_ADMIN webmaster@localhost
SERVER_NAME 10.0.0.7
SERVER_PORT 80
SERVER_PROTOCOL HTTP/1.0
SERVER_SIGNATURE
Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-18 Server at 10.0.0.7 Port 80
SERVER_SOFTWARE Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-18
SHLVL 1
_ /usr/bin/env

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 01-02 22:15

SA007

Moderator Tweaking
Apache hoef je niet te restarten hoor.

Volgens mij moet je
SCRIPT_BIN=/var/www/uncgi-bin
DESTDIR=/usr/lib/cgi-bin
hebben, die staat niet in je opties, maar volgens mij klopt dat beter :P

Zoals ik al zei, uncgi was ik nooit dol op. als het goed is heb ik project 3 ook nog ergens op een schijf hier (is alleen een stukkie van semi-gaar, dus moet ik nog 's fixen)

Offtopic:
En jij bent dan, staat geen naam in je myreact? zat iig niet in onze groep :P

  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
Met die config krijg ik de volgende error:
debian:/home/edwin/uncgi# make install
rm -f /usr/lib/cgi-bin/uncgi
rm: cannot remove `/usr/lib/cgi-bin/uncgi': Is a directory
make: [install] Error 1 (ignored)
cp uncgi /usr/lib/cgi-bin/uncgi
chmod 755 /usr/lib/cgi-bin/uncgi
Hij wil dus die "exe" in cgi-bin neerzetten maar dat mag niet omdat er al een directory bestaat met dezelfde naam.

Dat komt waarschijnlijk omdat in "/usr/lib/cgi-bin/uncgi" alle .sh bestanden staan.
Maar een paar bestanden waren hardcoded (cgi-functions.sh, stylesheets) dus die heb ik in "/var/www/uncgi-bin" moeten zetten. Hierdoor had ik toen werkende pagina's.

Maar ik heb zo'n vermoeden dat alle .sh bestanden in "/var/www/uncgi-bin" moeten staan?
Iig, als ik dat doe dan werken de includes in de html niet meer.

btw: project 6, begint met een "E" (hence MisterE)
Pagina: 1