123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514 |
- <?php
- require('include/glob.php');
- require('include/muoribene.php');
- require('include/sessionstart.php');
- require('include/myconn.php');
- require('include/getadmacc.php');
- if ($account['Level']!='guest') {
- require('include/menu.php');
- $menu['istanze']['href']=null;
- $menu['istanze']['selected']=true;
- $menu['istanze']['submenu']['modifica']['href']=null;
- $menu['istanze']['submenu']['modifica']['selected']=true;
- buildmenu($menu);
- } else {
- $menuout='';
- }
- $dbg='';
- use function mysqli_real_escape_string as myesc;
- // praticamente una macro
- function hspech($str) {
- return(htmlspecialchars($str,ENT_QUOTES|ENT_HTML5,'UTF-8'));
- }
- $dbg.=$dlang.'<br>'.N;
- $dbg.='<pre>'.print_r($_GET,1).'</pre>';
- if (array_key_exists('id',$_GET) && preg_match('/^[0-9]+$/',$_GET['id'])===1) {
- $_GET['id']+=0;
- if ($account['Level']=='guest' && !in_array($_GET['id'],$account['Insts']))
- muoribene('You can’t edit data for an instance you don’t own.',true);
- $res=mysqli_query($link,'SELECT * FROM Instances WHERE ID='.$_GET['id'])
- or muoribene(__LINE__.': '.mysqli_error($link),true);
- if (mysqli_num_rows($res)!=1)
- muoribene(__LINE__.': There is no instance with ID='.$_GET['ID'].'.',true);
- $inst=mysqli_fetch_assoc($res);
- } else {
- muoribene('Malformed input.',true);
- }
- $dbg.='<pre>'.print_r($inst,1).'</pre>'.N;
- function check($row,$col) {
- if ($row[$col]>0)
- return(' checked');
- else
- return('');
- }
- ?>
- <!DOCTYPE HTML>
- <html lang="en">
- <head>
- <title>Mastodon Startpage Admin - Editing «<?php echo($inst['URI']); ?>» form</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="description" content="Admin pages for Mastodon Startpage">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <link rel="icon" type="image/png" href="imgs/icona-32.png" sizes="32x32">
- <link rel="icon" type="image/png" href="imgs/icona-192.png" sizes="192x192">
- <link rel="icon" type="image/png" href="imgs/icona-512.png" sizes="512x512">
- <link rel="apple-touch-icon-precomposed" href="imgs/icona-180.png">
- <script language="JavaScript" src="js/menu.js?v=<?php echo($cjrand); ?>"></script>
- <script language="JavaScript" src="js/confirma.js?v=<?php echo($cjrand); ?>"></script>
- <script language="JavaScript" src="js/alerta.js?v=<?php echo($cjrand); ?>"></script>
- <link rel="stylesheet" type="text/css" href="theme.css?v=<?php echo($cjrand); ?>">
- <script language="JavaScript">
- <!--
- function getselarr(selid) {
- var sel=document.getElementById(selid), selc=sel.length, i, arr=[];
- for (i=0; i<selc; i++)
- arr.push([sel.options[i].text,sel.options[i].value,sel.options[i].selected]);
- return arr;
- }
- function updselarr(selid,selarr) {
- var sel=document.getElementById(selid), selc=sel.length, selarrc=selarr.length, i, ii;
- sel=sel.options;
- ii=0;
- for (i=0; i<selc; i++) {
- while (ii<selarrc) {
- if (selarr[ii][1]==sel[i].value) {
- (sel[i].selected) ? selarr[ii][2]=true : selarr[ii][2]=false;
- break;
- }
- ii++;
- }
- }
- return selarr;
- }
- function filtsel(selarr,filt,selid,recbid,inpid,ocol,ecol) {
- var sel=document.getElementById(selid), selarrc=selarr.length, i, ii, go=true;
- if (!document.getElementById(recbid).checked) {
- filt=filt.replace(/([.?*+^$[\]\\(){}|-])/g,'\\$1');
- } else {
- try { (RegExp(filt)); }
- catch(e) { go=false; }
- }
- if (go) {
- sel.length=0;
- for (i=0; i<selarrc; i++) {
- if (RegExp(filt,'i').test(selarr[i][0]))
- sel.options.add(new Option(selarr[i][0],selarr[i][1],false,selarr[i][2]));
- }
- if (ocol!=null)
- document.getElementById(inpid).style.backgroundColor=ocol;
- } else if (ecol!=null) {
- document.getElementById(inpid).style.backgroundColor=ecol;
- }
- }
- function selup(selid) {
- var sel=document.getElementById(selid), len=sel.length, i, prevopt, curopt;
- if (sel.selectedIndex>0) {
- for (i=0; i<len; i++) {
- if (sel.options[i].selected) {
- prevopt=sel.options[i-1];
- curopt=sel.options[i];
- sel.remove(i-1);
- sel.remove(i-1);
- sel.add(curopt,i-1);
- sel.add(prevopt,i);
- }
- }
- }
- }
- function seltop(selid) {
- var sel=document.getElementById(selid);
- while (sel.selectedIndex>0)
- selup(selid);
- }
- function seldown(selid) {
- var sel=document.getElementById(selid), len=sel.length, i, nextopt, curopt;
- if (!sel.options[len-1].selected) {
- for (i=len-1; i>-1; i--) {
- if (sel.options[i].selected) {
- curopt=sel.options[i];
- nextopt=sel.options[i+1];
- sel.remove(i);
- sel.remove(i);
- sel.add(curopt,i);
- sel.add(nextopt,i);
- }
- }
- }
- }
- function selbot(selid) {
- var sel=document.getElementById(selid), len=sel.length;
- if (sel.selectedIndex>=0) {
- while (!sel.options[len-1].selected)
- seldown(selid);
- }
- }
- function selonebyval(refarr,val) {
- var len=refarr.length, i;
- for (i=len-1; i>-1; i--)
- (refarr[i][1]==val) ? refarr[i][2]=true : refarr[i][2]=false;
- return refarr;
- }
- function rmelbyval(refarr,val) {
- var len=refarr.length, i;
- for (i=len-1; i>-1; i--) {
- if (refarr[i][1]==val) {
- refarr.splice(i,1);
- break;
- }
- }
- return refarr;
- }
- // usato da edinsth.php
- function cheltxtbyval(refarr,val,ntxt) {
- var len=refarr.length, i;
- for (i=len-1; i>-1; i--) {
- if (refarr[i][1]==val) {
- refarr[i][0]=ntxt;
- break;
- }
- }
- return refarr;
- }
- // usato da edinsth.php
- function chelvalbyval(refarr,val,nval) {
- var len=refarr.length, i;
- for (i=len-1; i>-1; i--) {
- if (refarr[i][1]==val) {
- refarr[i][1]=nval;
- break;
- }
- }
- return refarr;
- }
- function seladd(fromselid,toselid,refarr) {
- var fromsel=document.getElementById(fromselid), fslen=fromsel.length, tosel=document.getElementById(toselid), i;
- // farlo a scalare invece che a crescere inverte nella select di destinazione l'ordine delle opzioni scelte in quella di origine, perciò lo faccio a crescere
- for (i=0; i<fslen; i++) {
- if (fromsel.options[i].selected) {
- refarr=rmelbyval(refarr,fromsel.options[i].value);
- tosel.add(fromsel.options[i]);
- fslen--;
- i--;
- }
- }
- return refarr;
- }
- function sortByKey(array, key) {
- return array.sort(function(a, b) {
- var x = a[key].toLowerCase(); var y = b[key].toLowerCase();
- return ((x < y) ? -1 : ((x > y) ? 1 : 0));
- });
- }
- function selrem(fromselid,toselid,refarr,searchid,regexcbid) {
- var fromsel=document.getElementById(fromselid), fslen=fromsel.length, tosel=document.getElementById(toselid), i;
- for (i=fslen-1; i>-1; i--) {
- if (fromsel.options[i].selected) {
- refarr.push([fromsel.options[i].text,fromsel.options[i].value,true]);
- fromsel.remove(i);
- }
- }
- refarr=sortByKey(refarr,0);
- filtsel(refarr, document.getElementById(searchid).value, toselid, regexcbid, searchid, 'white', '#ff8080');
- return refarr;
- }
- function selordalf(selid) {
- var sel=document.getElementById(selid), len=sel.length, arr=[], i;
- for (i=0; i<len; i++)
- arr.push([sel.options[i].text,sel.options[i].value,sel.options[i].selected]);
- arr=sortByKey(arr,0);
- sel.length=0;
- for (i=0; i<len; i++)
- sel.add(new Option(arr[i][0],arr[i][1],false,arr[i][2]));
- }
- function selordinv(selid) {
- var sel=document.getElementById(selid), len=sel.length, arr=[], i;
- for (i=0; i<len; i++)
- arr.push([sel.options[i].text,sel.options[i].value,sel.options[i].selected]);
- arr=arr.reverse();
- sel.length=0;
- for (i=0; i<len; i++)
- sel.add(new Option(arr[i][0],arr[i][1],false,arr[i][2]));
- }
- function closeinpup() {
- document.getElementById('inpopup').innerHTML='<div id="popupcont">...</div>';
- document.getElementById('popup').style.display='none';
- }
- function edit(selid,what,mode) {
- var act='', id=0;
- if (mode=='edit')
- act={0:'Editing',1:'edit'};
- else if (mode=='add')
- act={0:'Adding',1:'add'};
- else if (mode=='remove')
- act={0:'Removing',1:'remove'};
- var sel=document.getElementById(selid);
- if ((mode=='edit' || mode=='remove') && sel.selectedIndex<0) {
- alerta('<p>You have to select an entry to '+act[1]+' ;-)</p>',true);
- } else {
- if (mode=='edit' || mode=='remove')
- id=sel.options[sel.selectedIndex].value;
- document.getElementById('inpopup').innerHTML='<div class="hiftit"><img src="imgs/p.png" style="float:left;width:24px;height:24px">'+act[0]+' «'+what+'» entry<img src="imgs/close.svg" class="imgbut" style="float:right;" onclick="closeinpup()"></div><iframe src="edinsth.php?w='+selid+'&i='+id+'&m='+mode+'" class="hiframe"></iframe>';
- document.getElementById('popup').style.display='table';
- }
- }
- function ckf() {
- var selids=['ChosenLangs[]','ChosenFinModes[]','ChosenPolicies[]','ChosenTags[]'], len=selids.length, i, sel, ii;
- for (i=0; i<len; i++) {
- sel=document.getElementById(selids[i]).options;
- for (ii=0; ii<sel.length; ii++)
- sel[ii].selected=true;
- }
- document.getElementById('f').submit();
- }
- //-->
- </script>
- </head>
- <body>
- <nav>
- <div id="hmenu">
- <ul>
- <?php echo($menuout); ?>
- </ul>
- <div class="mtit">Editing «<?php echo($inst['URI']); ?>»</div>
- <div id="rightdiv">
- <a href="logout.php" class="rlinks"><img src="imgs/esci.svg" title="Sign out"></a>
- </div>
- </div>
- </nav>
- <div id="popup">
- <div id="inpopup">
- <div id="popupcont">
- ...
- </div>
- </div>
- </div>
- <!-- <div id="footer">
- </div> -->
- <div id="fullscreen">
- <div id="middlerow">
- <form action="edinstres.php" method="post" id="f" onsubmit="return ckf();">
- <input type="hidden" id="id" name="id" value="<?php echo($_GET['id']+0); ?>">
- <table class="edtab">
- <tr><td class="insthead"><?php echo($inst['URI']); ?></td></tr>
- <tr><td>
- <?php
- if ($account['Level']!='guest')
- echo('<table class="cbtab">
- <tr><td><label for="Blacklisted">Blacklisted:</label></td><td> <input type="checkbox" name="Blacklisted" id="Blacklisted"'.check($inst,'Blacklisted').'></td></tr>
- <tr><td><label for="New">New:</label></td><td> <input type="checkbox" name="New" id="New"'.check($inst,'New').'></td></tr>
- <tr><td><label for="Chosen">Chosen:</label></td><td> <input type="checkbox" name="Chosen" id="Chosen"'.check($inst,'Chosen').'></td></tr>
- <tr><td><label for="Visible">Visible:</label></td><td> <input type="checkbox" name="Visible" id="Visible"'.check($inst,'Visible').'></td></tr>
- </table>
- <div class="ruler"></div>'.N);
- ?>
- <div class="tit"><label for="OurDesc">Our description (original language)</label></div>
- <textarea name="OurDesc" id="OurDesc" rows="10" class="tarea"><?php echo(hspech($inst['OurDesc'])); ?></textarea>
- <div class="ruler"></div>
- <div class="tit"><label for="OurDescEN">Our description (english)</label></div>
- <textarea name="OurDescEN" id="OurDescEN" rows="10" class="tarea"><?php echo(hspech($inst['OurDescEN'])); ?></textarea>
- <?php
- function selbox($o) {
- global $link;
- ($o['multi']) ? $seladdprops=' multiple' : $seladdprops=' name="'.$o['dispselid'].'"';
- echo('<div class="ruler"></div>
- <div class="tit"><label for="'.$o['dispselid'].'">'.$o['title'].'</label></div>
- <table class="picktab"><tr>
- <td style="width:98%"><input type="text" placeholder="Filter ..." class="search" title="'.$o['searchtit'].'" id="'.$o['searchid'].'" onkeyup="filtsel('.$o['disparr'].', this.value, \''.$o['dispselid'].'\', \''.$o['regexcbid'].'\', \''.$o['searchid'].'\', \'white\', \'#ff8080\')"></td>
- <td style="width:1%;padding-left:3px;padding-right:3px;"><label for="'.$o['regexcbid'].'" title="Use regular espression">RegEx:</label></td>
- <td style="width:1%"><input type="checkbox" id="'.$o['regexcbid'].'" style="float:right;" title="Use regular espression" onchange="filtsel('.$o['disparr'].', document.getElementById(\''.$o['searchid'].'\').value, \''.$o['dispselid'].'\', \''.$o['regexcbid'].'\', \''.$o['searchid'].'\', \'white\', \'#ff8080\')"></td>
- </tr></table>
- <table class="picktab">
- <tr>
- <td style="width:99%;">
- <select id="'.$o['dispselid'].'"'.$seladdprops.' size="8" class="mselect" onchange="'.$o['disparr'].'=updselarr(\''.$o['dispselid'].'\','.$o['disparr'].')">'.N);
- $res=mysqli_query($link,$o['dispque'])
- or muoribene(__LINE__.': '.mysqli_error($link),true);
- while ($row=mysqli_fetch_assoc($res)) {
- $selected='';
- if (!$o['multi'] && $row[$o['valcol']]==$o['instselid']) $selected=' selected';
- echo('<option value="'.$row[$o['valcol']].'"'.$selected.'>'.hspech($row[$o['txtcol']]).'</option>'.N);
- }
- echo('</select>
- <script type="text/javascript">
- <!--
- selordalf(\''.$o['dispselid'].'\');
- var '.$o['disparr'].'=getselarr(\''.$o['dispselid'].'\');
- //-->
- </script>
- </td>
- <td style="width:1%;">'.N);
- if (!array_key_exists('edavail',$o) || $o['edavail'])
- echo('<div class="butdiv"><img src="imgs/edit.svg" class="imgbut" title="Edit first selected entry" onclick="edit(\''.$o['dispselid'].'\',\''.$o['title'].'\',\'edit\')"></div>'.N);
- if (!array_key_exists('addavail',$o) || $o['addavail'])
- echo('<div class="butdiv"><img src="imgs/plus.svg" class="imgbut" title="Add an entry" onclick="edit(\''.$o['dispselid'].'\',\''.$o['title'].'\',\'add\')"></div>'.N);
- if (!array_key_exists('remavail',$o) || $o['remavail'])
- echo('<div class="butdiv"><img src="imgs/minus.svg" class="imgbut" title="Remove first selected entry" onclick="edit(\''.$o['dispselid'].'\',\''.$o['title'].'\',\'remove\')"></div>'.N);
- echo('</td>
- </tr>'.N);
- if ($o['multi']) {
- echo('<tr>
- <td style="width:99%;">
- <div class="move">'.$o['dida'].'
- <img src="imgs/fresu.svg" class="imgbut" style="float:left;" title="Move selected entries from chosen list to available list" onclick="'.$o['disparr'].'=selrem(\''.$o['chosenselid'].'\', \''.$o['dispselid'].'\', '.$o['disparr'].', \''.$o['searchid'].'\', \''.$o['regexcbid'].'\')">
- <img src="imgs/fregiu.svg" class="imgbut" style="float:right;" title="Move selected entries from available list to chosen list" onclick="'.$o['disparr'].'=seladd(\''.$o['dispselid'].'\', \''.$o['chosenselid'].'\', '.$o['disparr'].')">
- </div>
- </td>
- <td style="width:1%;">
- </td>
- </tr>
- <tr>
- <td style="width:99%;">
- <select id="'.$o['chosenselid'].'" name="'.$o['chosenselid'].'" multiple size="12" class="mselect">'.N);
- $res=mysqli_query($link,$o['chosenque'])
- or muoribene(__LINE__.': '.mysqli_error($link),true);
- while ($row=mysqli_fetch_assoc($res)) {
- echo('<option value="'.$row[$o['chosenvalcol']].'">'.hspech($row[$o['txtcol']]).'</option>'.N);
- }
- echo('</select>
- </td>
- <td style="width:1%;">
- <div class="butdiv"><img src="imgs/fresucim.svg" class="imgbut" title="Move to top" onclick="seltop(\''.$o['chosenselid'].'\')"></div>
- <div class="butdiv"><img src="imgs/fresu.svg" class="imgbut" title="Move up" onclick="selup(\''.$o['chosenselid'].'\')"></div>
- <div class="butdiv"><img src="imgs/fregiu.svg" class="imgbut" title="Move down" onclick="seldown(\''.$o['chosenselid'].'\')"></div>
- <div class="butdiv"><img src="imgs/fregiufon.svg" class="imgbut" title="Move to bottome" onclick="selbot(\''.$o['chosenselid'].'\')"></div>
- <div class="butdiv"><img src="imgs/alph.svg" class="imgbut" title="Sort alphabetically" onclick="selordalf(\''.$o['chosenselid'].'\')"></div>
- <div class="butdiv"><img src="imgs/invert.svg" class="imgbut" title="Invert sort" onclick="selordinv(\''.$o['chosenselid'].'\')"></div>
- </td>
- </tr>'.N);
- }
- echo('</table>'.N);
- }
- selbox(array(
- 'multi'=>false,
- 'dispselid'=>'LocalityID',
- 'instselid'=>$inst['LocalityID'],
- 'title'=>'Locality',
- 'searchid'=>'locsearch',
- 'searchtit'=>'Filter available localities',
- 'disparr'=>'locselarr',
- 'regexcbid'=>'locselre',
- 'dispque'=>'SELECT ID, Name'.$dlang.' FROM Localities ORDER BY NameOrig ASC',
- 'valcol'=>'ID',
- 'txtcol'=>'Name'.$dlang));
- $o=array(
- 'multi'=>true,
- 'dispselid'=>'DispLangs',
- 'title'=>'Languages',
- 'searchid'=>'langsearch',
- 'searchtit'=>'Filter available languages',
- 'disparr'=>'langselarr',
- 'regexcbid'=>'langselre',
- 'dispque'=>'SELECT ID, CONCAT(Name'.$dlang.'," [",Code,"]") AS Txt FROM Languages WHERE ID NOT IN (SELECT OurLangID FROM InstOurLangs WHERE InstID='.$inst['ID'].') ORDER BY Name'.$dlang.' ASC',
- 'valcol'=>'ID',
- 'txtcol'=>'Txt',
- 'dida'=>'Above: available languages; below: chosen languages',
- 'chosenselid'=>'ChosenLangs[]',
- 'chosenque'=>'SELECT OurLangID, CONCAT(Name'.$dlang.'," [",Code,"]") AS Txt FROM InstOurLangs LEFT JOIN Languages ON Languages.ID=OurLangID WHERE InstID='.$inst['ID'].' ORDER BY Pos ASC',
- 'chosenvalcol'=>'OurLangID');
- if ($account['Level']=='guest') {
- $o['edavail']=false;
- $o['addavail']=false;
- $o['remavail']=false;
- }
- selbox($o);
- ?>
- <table class="cbtab">
- <tr><td><label for="OurLangsLock" title="Prevent languages from being overwritten on next crawler run">Lock this list: </label></td><td><input type="checkbox" id="OurLangsLock" name="OurLangsLock" title="Prevent languages from being overwritten on next crawler run"<?php if ($account['Level']=='guest') echo(' checked'); else echo(check($inst,'OurLangsLock')); ?>></td></tr>
- </table>
- <?php
- selbox(array(
- 'multi'=>true,
- 'dispselid'=>'DispFinModes',
- 'title'=>'Financing methods',
- 'searchid'=>'finsearch',
- 'searchtit'=>'Filter available financing methods',
- 'disparr'=>'finselarr',
- 'regexcbid'=>'finselre',
- 'dispque'=>'SELECT * FROM Financing WHERE ID NOT IN (SELECT FinID FROM InstFinancing WHERE InstID='.$inst['ID'].') ORDER BY Type ASC',
- 'valcol'=>'ID',
- 'txtcol'=>'Type',
- 'dida'=>'Above: available fin. methods; below: chosen fin. methods',
- 'chosenselid'=>'ChosenFinModes[]',
- 'chosenque'=>'SELECT * FROM InstFinancing LEFT JOIN Financing ON Financing.ID=FinID WHERE InstID='.$inst['ID'].' ORDER BY Pos ASC',
- 'chosenvalcol'=>'FinID'));
- selbox(array(
- 'multi'=>true,
- 'dispselid'=>'DispPolicies',
- 'title'=>'Policies',
- 'searchid'=>'polsearch',
- 'searchtit'=>'Filter policies',
- 'disparr'=>'polselarr',
- 'regexcbid'=>'polselre',
- 'dispque'=>'SELECT * FROM Policies WHERE ID NOT IN (SELECT PolID FROM InstPolicies WHERE InstID='.$inst['ID'].') ORDER BY Name ASC',
- 'valcol'=>'ID',
- 'txtcol'=>'Name',
- 'dida'=>'Above: available policies; below: chosen policies',
- 'chosenselid'=>'ChosenPolicies[]',
- 'chosenque'=>'SELECT * FROM InstPolicies LEFT JOIN Policies ON Policies.ID=PolID WHERE InstID='.$inst['ID'].' ORDER BY Pos ASC',
- 'chosenvalcol'=>'PolID'));
- selbox(array(
- 'multi'=>true,
- 'dispselid'=>'DispTags',
- 'title'=>'Tags',
- 'searchid'=>'tagsearch',
- 'searchtit'=>'Filter tags',
- 'disparr'=>'tagselarr',
- 'regexcbid'=>'tagselre',
- 'dispque'=>'SELECT * FROM Tags WHERE ID NOT IN (SELECT TagID FROM InstTags WHERE InstID='.$inst['ID'].') ORDER BY Name ASC',
- 'valcol'=>'ID',
- 'txtcol'=>'Name',
- 'dida'=>'Above: available tags; below: chosen tags',
- 'chosenselid'=>'ChosenTags[]',
- 'chosenque'=>'SELECT * FROM InstTags LEFT JOIN Tags ON Tags.ID=TagID WHERE InstID='.$inst['ID'].' ORDER BY Pos ASC',
- 'chosenvalcol'=>'TagID'));
- ?>
- <div class="ruler"></div>
- <input type="button" value="Save" class="button" onclick="ckf()">
- </td></tr>
- </table>
- </form>
- </div>
- </div>
- <div id="debug">
- <?php echo($dbg); ?>
- </div>
- </body>
- </html>
- <?php
- mysqli_close($link);
- ?>
|