PgAdmin3 wordt niet langer ondersteund. PgAdmin4 kan worden geïnstalleerd via het software menu. Het grote voordeel van PgAdmin4 is dat het als mod onder Apache kan worden geïnstalleerd zodat cliënten enkel een browser nodig hebben om in de database te kunnen wroeten. Dit biedt veel veiligheidsvoordelen. Nadeel is de ingewikkelde installatie.
- Update PgAdmin 4
|
Reeds een week nadat PgAdmin4 was geïnstalleerd kreeg ik tijdens het opstarten een melding dat de geïnstalleerde versie 4.1 niet meer actueel was en dat 4.2 moest worden geïnstalleerd. En nog 3 weken later zelfs 4.3. Kennelijk moesten er nog enkele bugs worden weggepoetst. Met een beetje hulp van Mark:
- Download het installatiebestand
Het installatie bestand (Phyton wheel) kan worden gedownload van pgadmin.org. Kies de meest recente versie en open de directory. Download daar de pgadmin4-4.22-py3-none-any.whl of iets dergelijks naar de map downloads o.i.d.
- cd /home/richard
Open een terminal naar je persoonlijke home directory.
- virtualenv -p python3 pgadmin4.22
Maak in de terminal een virtuele werkomgeving voor de nieuwe versie. Let op dat de versienummers kloppen in het commando.
- cd pgadmin4.22
Ga deze virtuele werkomgeving binnen.
- source bin/activate
En activeer de virtuele werkomgeving. Verplaats vervolgens het zojuist gedownloade installatie bestand naar de geactiveerde directory.
- pip3 install ./pgadmin4-4.22-py3-none-any.whl
Voert de update uit
-
sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
Nu kunt lokaal op de server in uw browser pgAdmin4 gebruiken. Sudo is nodig om later in de gebruikers database te kunnen komen. Werkte bij de installatie van 22 niet correct maar werd pas uitgevoerd va de deactivate. Probeer het nu dus ervoor.
- deactivate
Zet de virtuele omgeving uit.
- sudo chown -R www-data:www-data /var/lib/pgadmin4/
Nu kan straks het programma bij de data komen.
- sudo python3 /home/richard/pgadmin4.22/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
Start de nieuwe versie van PgAdmin.
|
- Voordat de installatie begint
|
Daar waar ik tot eind 2018 phppgadmin gebruikte moet dat nu worden vervangen omdat het niet meer wordt onderhouden sinds 2013. Toentertijd is er voor gekozen omdat dit aan de cliënt kant vanuit een browser kon worden bekeken en dus platform onafhankelijk was. Tegelijkertijd gebruikten we ook PgAdminIII. Dit was echter een applicatie die op iedere cliënt opnieuw moest worden geïnstalleerd. PgAdmin3 kan worden geïnstalleerd via het software menu. Deze versie (3) loopt echter flink achter bij dat wat wordt geadviseerd door PgSql(4). Wij volgen deze handleiding van DigitalOcean. Onderstaand specifiek voor onze situatie samengevat. Er wordt verondersteld dat de volgende onderdelen al zijn geïnstalleerd:
- Ubuntu
Er wordt verondersteld dat de installatie van Ubuntu is uitgevoerd. Zie ook LAMP. Voor de geïnstalleerde release kijk met:
lsb_release -a
Deze handleiding is enkel geschikt voor 18.04.
- Firewall ufw
Er wordt verondersteld dat als firewall ufw wordt gebruikt. Voor de geïnstalleerde release kijk met:
ufw version
ufw 0.35 Copyright 2008-2015 Canonical Ltd.
- Apache
Er wordt verondersteld dat de installatie van Apache2 is uitgevoerd. Zie ook LAMP Voor de geïnstalleerde release kijk met:
apache2 -V
Server version: Apache/2.4.29 (Ubuntu) Server built: 2018-10-10T18:59:25 (meest actuele in februari 2019: 2.4.37)
- PostgreSQL
Er wordt verondersteld dat de installatie van PostgreSQL is uitgevoerd. Kijk op de homepage van PgSQL voor de laatste release. Zie ook LAMP Voor de geïnstalleerde release kijk met:
psql -V
(PostgreSQL) 11.1 (Ubuntu 11.1-3.pgdg18.04+1) feb 2019
- Python
Er wordt verondersteld dat de installatie van python is uitgevoerd. Zie ook python. Voor de geïnstalleerde release kijk met:
python3 -V
Let op want dit zal een ander resultaat geven dan: python -V
|
- Installatie
|
Dit is de installatie volgens askUbuntu. Nadat ik diverse andere handleidingen had gevolgd bleek deze beschrijving het gewenste resultaat te geven (nou ja: min of meer: Moet wel bijv ook de setup.py invoegen etc). De onderstaande handleiding voor een installatie is een uitgebreidere versie.
- sudo apt update
Voor de zekerheid. Indien nodig doe een: sudo apt upgrade.
- sudo apt-get install build-essential libssl-dev libffi-dev python-dev libgmp3-dev libpq-dev libapache2-mod-wsgi-py3
Installeer algemene pgadmin4 ondersteunende pakketten.
- sudo mkdir -p /var/lib/pgadmin4/sessions
Directory aanmaken, wordt later tijdens installatie gebruikt.
- sudo mkdir /var/lib/pgadmin4/storage
Directory aanmaken, wordt later tijdens installatie gebruikt.
- sudo mkdir /var/log/pgadmin4
Directory aanmaken, wordt later tijdens installatie gebruikt.
- sudo chown -R richard:staff /var/lib/pgadmin4
Zet de rechten voor tijdens de installatie op jezelf omdat je onder je eigennaam de installatie gaat uitvoeren.
- sudo chown -R richard:staff /var/log/pgadmin4
Zet de rechten voor tijdens de installatie op jezelf omdat je onder je eigennaam de installatie gaat uitvoeren.
- pip3 install --user --upgrade pip
Eerst wat systeem onderhoud.
- cd ~
Een virtual environment moet worden aangemaakt op de plek waar je hem wilt hebben.
- python3 -m venv pgadmin
Dit creëert een nieuwe virtual environment met de naam pgadmin.
- cd pgadmin
Een virtual environment is aangemaakt en ga er nu in.
- source bin/activate
De virtual environment moet worden geactiveerd. Let op je cursor in de monitor.
- pip3 install --user cryptography pyopenssl ndg-httpsclient pyasn1
Installeer pakketten nodig om wheel te kunnen installeren.
- python3 -m pip install wheel
Installeer wheel in de virtuele omgeving (Successfully installed wheel-0.32.3).
- wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.1/pip/pgadmin4-4.1-py2.py3-none-any.whl
Download het pakket.
- python3 -m pip install pgadmin4-4.1-py2.py3-none-any.whl
Installeer het pakket.
- deactivate
Zet de virtuele omgeving uit.
- sudo chown -R www-data:www-data /var/lib/pgadmin4/
Nu kan starks het programma bij de data komen.
- sudo chown -R www-data:www-data /var/log/pgadmin4/
Nu kan starks het programma bij de data komen.
- sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
Nu kunt lokaal op de server in uw browser pgAdmin4 gebruiken. Sudo is nodig om later in de gebruikers database te kunnen komen.
|
- Configuratie Apache
|
- sudo gedit /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config.py
Systeem is niet te bereiken via: http://192.186.2.1:5050/, maar wel via localhost of 127.0.0.1?
# This option allows the user to host the application on a LAN
# Default hosting is on localhost (DEFAULT_SERVER=`localhost`).
# To host pgAdmin4 over LAN set DEFAULT_SERVER=`0.0.0.0` (or a specific
# adaptor address.
#
# NOTE: This is NOT recommended for production use, only for debugging
# or testing. Production installations should be run as a WSGI application
# behind Apache HTTPD.
DEFAULT_SERVER = `192.168.2.1`
Nu kunt lokaal op uw gehele netwerk in uw browser pgAdmin4 gebruiken.
- apachectl -?
Een handige tool om te onderzoeken op welke manier Apache geconfigureerd is. Het blijkt met apachectl -M dat de wsgi_module (shared) gestart is.
En dan enkel als ik handmatig eerst het programma pgadmin4.py start in een terminal. Het lijkt er op dat Apache nog niets serveert of dat er een firewall aan de gang is. Op Postgress alles open gezet. Wij beginnen met de Quick start om te controleren of onze mod correct werkt. WSGI is a specification of a generic API for mapping between an underlying web server and a Python web application.
- sudo gedit /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config.py
How to run Python Scripts with Apache and mod_wsgi on Ubuntu 18.04 Howtoforge. 145.132.86.92 is ons eigen adres van buitenaf. sudo service postgresql restart en sudo systemctl restart apache2. Ik ben bang dat ik nu last heb van een firewall. Maar sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py start niet en eindigt met de foutmelding: (, OSError(99, `Cannot assign requested address`).
- Router firewall
Port Mapping
You can configure the router as a virtual server so that remote users accessing services such as the Web or FTP at your
local site via public IP addresses can be automatically redirected to local devices configured with private IP addresses.
In other words, depending on the requested service (TCP/UDP port number), the router redirects the external service
request to the appropriate devices (located at another internal IP address). This tool can support both port ranges,
multiple ports, and combinations of the two.
For example:
Port Ranges: ex. 100-150
Multiple Ports: ex. 25,110,80
Combination: ex. 25-100,80
No. LAN IP Protocol Type LAN Port Public Port Enable Configure
1 192.168.2.1 TCP 80 80 Edit Delete
2 192.168.2.1 TCP 21 21 Edit Delete
3 192.168.2.1 TCP 5050 5050 Edit Delete
Add
|
- Configuratie
|
Nu kunt lokaal op de server in uw browser pgAdmin4 gebruiken. Wij willen bereiken dat dit als Apache module wordt geserveerd en dat dit overal ter wereld met een browser kan worden gebruikt. Het moet vanzelf opstarten als de server start.
Dit is ingewikkeld en wordt nergens helder uitgelegd. We hebben de officiële handleiding maar ook 1 van DigitalOcean. Dit is de installatie volgens askUbuntu die ons tot nu toe nog het beste heeft geholpen.
- cd /home/richard/pgadmin
Stap in de root van de virtual environment.
- source bin/activate
De virtual environment moet worden geactiveerd. Let op je cursor in de monitor.
- sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/setup.py
Maak eerst de directories aan en de rechten omzetten naar de gebruiker. Dan de setup draaien en vervolgens de rechten naar www-data zetten. Dit maakt de 4 bestanden aan. ?
- cp /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config.py /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config_local.py
De config_local.py mag worden weggelaten indien hij hetzelfde is als het config.py bestand. Anders heeft u met dit commando een leuk beginnetje.
- sudo gedit /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config_local.py
De inhoud moet worden gewijzigd. Let op de verkeerde aanhalingstekens.LOG_FILE = `/var/log/pgadmin4/pgadmin4.log`
SQLITE_PATH = `/var/lib/pgadmin4/pgadmin4.db`
SESSION_DB_PATH = `/var/lib/pgadmin4/sessions`
STORAGE_DIR = `/var/lib/pgadmin4/storage`
SERVER_MODE = True
- sudo gedit /etc/apache2/sites-available/pgadmin4.conf
Let op: deze inhoud wordt niet juiste weergegeven.VirtualHost *>
ServerName 127.0.0.1
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/richard/pgadmin
WSGIScriptAlias / /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi
Directory "/home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/">
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
Require all granted
/Directory>
/VirtualHost>
- sudo a2dissite 000-default.conf
Wijzig de basis configuratie van Apache.
- sudo a2ensite pgadmin4.conf
Wijzig de basis configuratie van Apache.
- apachectl configtest
Wijzig de basis configuratie van Apache.
- sudo systemctl restart apache2
Activeer nieuwe virtual host file,
|
- Installatie
|
- Maak een backup
Maak een backup van de PostgreSQL database. Dit is niet noodzakelijk maar altijd verstandig. PgAdmin4 kan worden geïnstalleerd met deze how-to site. De originele how-to bevat direct ook een update van PostgreSQL.
sudo -u postgres pg_dumpall -p 5432 > /var/www/html/login/backup/pgsqldatabu
- Voorbereiding
Voordat een upgrade wordt uitgevoerd moet de database tijdelijk worden stopgezet.
sudo service apache2 stop
sudo apt update
sudo apt install libgmp3-dev libpq-dev libapache2-mod-wsgi-py3
sudo apt-get install pgadmin4
sudo service apache2 start
- Installatie
Ga in terminal naar: cd /var/www/html/venvs
source richard/bin/activate
Let op het scherm. Vanuit deze geactiveerde directory (cd richard):
Installeer vanuit deze directory.
deactivate en alles is weer normaal.
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.1/pip/pgadmin4-4.1-py2.py3-none-any.whl
python -m pip install wheel
python -m pip install pgadmin4-4.1-py2.py3-none-any.whl
configuratie:
python /home/richard/pgadmin4.15/lib/python3.6/site-packages/pgadmin4/setup.py
sudo gedit /etc/apache2/sites-available/pgadmin4.conf
|
- PgAdmin3
|
Het blijkt voor mij bepaald ingewikkeld om PgAdmin4 lopend te krijgen. Omdat PgAdmin3 ook loopt op de server eerst deze ook maar geïnstalleerd op een cliënt om dan toch in ieder geval zeker te weten dat de rechten kloppen.
- Installatie
De installatie kan vanuit het Ubuntu softwarecentrum gebeuren.
|
//This is an include, so no parsing needed
$qry2 = ("SELECT onderdelen.*,
soortonderdeel.id
FROM onderdelen
JOIN soortonderdeel ON onderdelen.idsrtodd = soortonderdeel.id
WHERE onderdelen.partid = $idpart
;");
$result2 = pg_query($con1, $qry2);
$row4 = pg_fetch_array($result2); //Make the fields accesible
foreach( $row4 AS $key => $val ){
$$key = stripslashes( $val );
}
$jaar = substr($changeddate,0,4);
$maand = substr($changeddate,5,2);
$dag = substr($changeddate,8,2);
$lastupdate = ("$jaar $maand $dag");
$prtsrttxt = get_txt($con1, 26, 1, $idsrtodd);
$jaar = substr($createddate,0,4);
$maand = substr($createddate,5,2);
$dag = substr($createddate,8,2);
$create_stamp = ("$dag $maand $jaar");
//GENERAL INFO FOR EVERY USER **************************************************
echo (" ");
echo (""); //Header
$tmp = get_txt($con1, 9, $koekje[2], 3923); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //If desired
}else{ echo ("$tmp"); } //Else just show if no need to translate
if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates
echo (" (edit)");
}
echo ("Algemene informatie test | ");
if ($codetext) { //Code like KY-026 or NA-41
echo ("");
$tmp = get_txt($con1, 9, $koekje[2], 3739); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //Class for colour
}else{ //So you are not allowed to translate
echo $tmp; //Show screenname of this field in user language
} //End of If you want to translate this fieldname at screen
echo ("  | ");
if ($codelink) {
echo ("$codetext");
}else{
echo ("$codetext");
} //End of if ($pinoutlink)
echo (" | ");
} //End of if ($codetext)
$tmp = get_txt($con1, 9, $koekje[2], 3741); //Fieldname at screen
if ($prijseurinclbtw > 0){ //Show price indication
$prijs_formatted = number_format($prijseurinclbtw / 100, 2, ',', '.');
echo ("$tmp   | ");
echo ("");
if ($urlprijs){
echo ("€  $prijs_formatted");
}else{
echo ("€  $prijs_formatted");
} //End of if ($urlprijs > "")
echo (" | ");
} //End of if ($prijseurinclbtw > 0)
if ($sketchtext) { //Link to OWN SOFTWARE
$tmp = get_txt($con1, 9, $koekje[2], 3738); //Fieldname at screen
echo ("$tmp   | ");
if ($sketchlink) {
echo ("$sketchtext");
}else{
echo ("$sketchtext");
} //End of if ($sketchlink)
echo (" | ");
} //End of if ($sketchtext)
$tmp = get_txt($con1, 9, $koekje[2], 3744); //Fieldname at screen
if ($pinouttext) { //Pinout
echo ("$tmp   | ");
if ($pinoutlink) {
echo ("$pinouttext");
}else{
echo ("$pinouttext");
} //End of if ($pinoutlink)
echo (" | ");
}
$tmp = get_txt($con1, 9, 1, 3735); //Fieldname at screen
$tmp2 = get_txt($con1, 26, 1, $row4[16]); //Group name in its language
echo ("$tmp   | "); //MENU GROUP
echo ("");
echo ("$tmp2 | ");
if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates
$tmp = get_txt($con1, 9, $koekje[2], 3918); //Fieldname at screen LANGUAGE
if ($row4[26] == 1) {$imgname = "nederland.png";}
if ($row4[26] == 2) {$imgname = "deutschland.png";}
if ($row4[26] == 3) {$imgname = "uk.png";}
if ($row4[26] == 4) {$imgname = "france.png";}
echo ("$tmp | ");
echo ("");
echo (" | ");
$tmp = get_txt($con1, 9, $row4[27], 3919); //Fieldname at screen
$statuskey = get_status_key($con1, $status);
$tmp2 = get_txt($con1, 61, $koekje[2], $statuskey); //Fieldname at screen
echo ("$tmp   | "); //STATUS
echo ("$status $tmp2 | ");
}
$tmp = get_txt($con1, 9, 1, 3966); //Fieldname at screen
echo ("$tmp   | "); //LAST CHANGED
$tmp = substr($changeddate, 0, 10);
echo ("$tmp | ");
echo (" ");
return;
////////////////////////////////////////////////////////////////////////////////
function get_status_key($con, $num){
$qry = ("SELECT id FROM status WHERE nr = $num ;");
$result = pg_query($con, $qry);
$row = pg_fetch_array($result);
return ("$row[0]");
}
// LIST ALL SOFTWARE THAT WILL RUN OM THIS PART *****************************
// INCLUDED IN ALL ROBOTS TO CHECK THEIR DIRECTORY
$qry2=("SELECT tblsystext.txtname
, software.urlmain
, software.sftname
, software.sftid
, software.controller
FROM software
LEFT JOIN tblsystext ON software.controller = tblsystext.recordid
WHERE position(' $idpart ' in software.prtlst) > 0
AND software.rstid = 2
AND tblsystext.lanid = $koekje[2]
AND tblsystext.txlid = 19
ORDER BY sftname ASC
, controller ASC
;");
$result = pg_query($con1, $qry2);
if (pg_num_rows($result)>0) { //Only if at least 1 program exists
echo (' ');
echo (""); //Header
$tmp = get_txt($con1, 9, $koekje[2], 3922); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //If desired
}else{ echo ("$tmp"); } //Else just show if no need to translate
echo (" |
---|
");
while($col = pg_fetch_array($result)){
$col[0] = ("$col[0]");
echo (" ");
echo ("$col[2]   | ");
echo ("$col[0] | ");
if ($koekje[0] > 0 and $koekje[3]>0){ //User is logged in and translates
echo ("");
echo ("(Edit) | ");
}
echo (' ');
}
echo (' ');
}
?>
// LIST ALL ROBOTS THAT INCLUDE THIS PART ***********************************
// $idpart
// INCLUDED IN ALL ROBOTS TO CHECK THEIR DIRECTORY
$qry_bpp=("SELECT farmbotversie.id
, farmbotversie.part_list
, tblsystext.txtname
FROM farmbotversie
LEFT JOIN tblsystext ON farmbotversie.id = tblsystext.recordid
WHERE tblsystext.txlid = 27
AND tblsystext.lanid = $koekje[2]
ORDER BY tblsystext.txtname ASC
;");
$result_bpp = pg_query($con1, $qry_bpp);
$header = 0;
while($colbpp = pg_fetch_array($result_bpp)){ //Only if at least 1 robot exists
if(substr_count($colbpp[1], " $idpart ") > 0){
if ($header == 0) {
echo ("");
echo (""); //Header
$tmp = get_txt($con1, 9, $koekje[2], 3879); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //If desired
}else{ echo ("$tmp"); } //Else just show if no need to translate
echo (" | ");
$header++;
} //End of if ($header == 0)
echo ("");
echo ("$colbpp[2]");
//Show software van deze bot
$qry=("SELECT software_basedir
FROM farmbotversie
WHERE id = $colbpp[0];");
$result = pg_query($con1, $qry);
$col = pg_fetch_array ($result ,0);
$dir1 = "/var/www/html/robotigs/software/$col[0]";
$arr1 = glob($dir1, GLOB_ONLYDIR);
if (isset($arr1[0])){
$folder = $arr1[0];
$countertmp = 0;
echo ("");
foreach (scandir($folder, 1) as $filename) {
if ($filename<>"." AND $filename <>".."){
if ($countertmp == 0){
$countertmp++;
} //End of if ($countertmp == 0)
$tmp = "/";
$dir = substr($folder, 14) ."/";
$link = $tmp .$dir .$filename;
$showname = substr($filename, 0 ,-4);
echo ("- ");
echo "$showname";
echo ("
");
} //End of if ($filename<>"." AND $filename <>".."){
} //End of foreach (scandir($folder, 1) as $filename)
echo ("");
} //End of if (isset($arr1[0]))
echo (" | ");
}
}
if ($header > 0){
echo (" ");
}
?>
Warning: include(/var/www/html/robotigs/includes/wishlistperpart.php): Failed to open stream: No such file or directory in /var/www/html/robotigs/includes/parts_header.php on line 128
Warning: include(): Failed opening '/var/www/html/robotigs/includes/wishlistperpart.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/robotigs/includes/parts_header.php on line 128
| //Location:/robotigs/includes/ picts_show.php
// Requieres: $pict_list and several picture handling javascript routines
//*** FROM HERE ON THE PICTURE CORNER STARTS -----------------------------------
if ($pict_list){ //There are 1 or more pictures to be printed
echo ("");
$counter = 0;
$aantal = str_word_count($pict_list, 0, "0123456789");
$lijst = str_word_count($pict_list, 1, "0123456789");
while($counter < $aantal){
$pictkey = $lijst[$counter];
$qryy1 = ("SELECT *
FROM illustrations
WHERE ill_id = $pictkey
;");
$resulty1 = pg_query($con1, $qryy1);
while($row = pg_fetch_array($resulty1)){ //Fields accesible by their name
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
}
$image = ("/robotigs/documentatie/plaatjes/$ill_name");
$pictfull = str_replace('_small', '', $image); //Pictfull=biggest version
$alt = ("Just wait till your 57....");
$txtname = get_txt($con1, 18, $koekje[2], $ill_id); //Robot illustrations subtitles
echo ("");
echo (' ');
$nummer = $counter + 1;
$txtAfb = get_txt($con1, 9, $koekje[2], 3865); //Pic Afb
if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates
echo ("$txtAfb $nummer: ");
echo ("$txtname");
echo (" ");
echo ("Ontkoppelen ");
if ($counter==0){
echo ("Up ");
}else{
echo ("Up ");
}
if ($nummer == $aantal){
echo ("Down");
}else{
echo ("Down");
}
}else{ //Else of if Meaning the current useer is logged in
echo ("$txtAfb $nummer: $txtname");
}
echo (''); //End of this picture
$counter++; //Prepair for next picture
}
echo (' | '); //All pictures are printed
} //End of if there are 1 or more pictures to be printed ----------------------
?>