array( 'timeout'=>5 ), 'socket'=>array( 'tcp_nodelay'=>true ) ); $context=stream_context_create($contextopts); $email='pezcurrel@tiscali.it'; $langs=array('xx'=>'Local language','en'=>'English','es'=>'Español','fr'=>'Français','it'=>'Italiano'); $exvalsjsarr='null;'.N; $morejs=''; $dbg.='
GET:'.N.print_r($_GET,1).'POST:'.N.print_r($_POST,1).''; function edaddrem(&$link,&$morejs,&$id,$table,$column,$dispselarr,$lntable,$lncolumn,$searchid,$dispselid,$recbid) { if ($_POST['m']=='add') { mysqli_query($link,'INSERT INTO '.$table.' (ID, '.$column.') VALUES (NULL, \''.myesc($link,$_POST['v']).'\')') or muoribene(__LINE__.': '.mysqli_error($link),true); $newid=mysqli_insert_id($link); $morejs.='parent.'.$dispselarr.'.push(["'.jsencode($_POST['v']).'",'.$newid.',true]);'.N; $morejs.='parent.'.$dispselarr.'=parent.sortByKey(parent.'.$dispselarr.',0);'.N; } elseif ($_POST['m']=='remove') { if (!array_key_exists('subst',$_POST) || preg_match('/^[0-9]+$/',$_POST['subst'])!==1) muoribene(__LINE__.': Malformed input.',true); $newid=$_POST['subst']+0; mysqli_query($link,'DELETE FROM '.$table.' WHERE ID='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); if ($newid==0) { $res=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); mysqli_query($link,'DELETE FROM '.$lntable.' WHERE '.$lncolumn.'='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); while ($row=mysqli_fetch_assoc($res)) { $rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE InstID='.$row['InstID'].' ORDER BY Pos ASC') or muoribene(__LINE__.': '.mysqli_error($link),true); $pos=0; while ($rrow=mysqli_fetch_assoc($rres)) { $pos++; mysqli_query($link,'UPDATE '.$lntable.' SET Pos='.$pos.' WHERE InstID='.$rrow['InstID'].' AND '.$lncolumn.'='.$rrow[$lncolumn].' AND Pos='.$rrow['Pos']) or muoribene(__LINE__.': '.mysqli_error($link),true); } } } else { $res=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); while ($row=mysqli_fetch_assoc($res)) { $rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE InstID='.$row['InstID'].' AND '.$lncolumn.'='.$newid) or muoribene(__LINE__.': '.mysqli_error($link),true); if (mysqli_num_rows($rres)==0) { mysqli_query($link,'UPDATE '.$lntable.' SET '.$lncolumn.'='.$newid.' WHERE InstID='.$row['InstID'].' AND '.$lncolumn.'='.$id.' AND Pos='.$row['Pos']) or muoribene(__LINE__.': '.mysqli_error($link),true); //+++ potrebbe aver senso mettere js qui che sposti la voce agli associati se non è già lì, magari con un alerta } else { mysqli_query($link,'DELETE FROM '.$lntable.' WHERE InstID='.$row['InstID'].' AND '.$lncolumn.'='.$id.' AND Pos='.$row['Pos']) or muoribene(__LINE__.': '.mysqli_error($link),true); $rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE InstID='.$row['InstID'].' ORDER BY Pos ASC') or muoribene(__LINE__.': '.mysqli_error($link),true); $pos=0; while ($rrow=mysqli_fetch_assoc($rres)) { $pos++; mysqli_query($link,'UPDATE '.$lntable.' SET Pos='.$pos.' WHERE InstID='.$rrow['InstID'].' AND '.$lncolumn.'='.$rrow[$lncolumn].' AND Pos='.$rrow['Pos']) or muoribene(__LINE__.': '.mysqli_error($link),true); } } } } $morejs.='parent.'.$dispselarr.'=parent.rmelbyval(parent.'.$dispselarr.','.$id.');'.N; } elseif ($_POST['m']=='edit') { mysqli_query($link,'UPDATE '.$table.' SET '.$column.'=\''.myesc($link,$_POST['v']).'\' WHERE ID='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); $morejs.='parent.'.$dispselarr.'=parent.cheltxtbyval(parent.'.$dispselarr.','.$id.',"'.jsencode($_POST['v']).'");'.N; $morejs.='parent.'.$dispselarr.'=parent.sortByKey(parent.'.$dispselarr.',0);'.N; } $morejs.='parent.filtsel (parent.'.$dispselarr.', parent.document.getElementById("'.$searchid.'").value, "'.$dispselid.'", "'.$recbid.'", "'.$searchid.'", "white", "#ff8080");'.N; } if (array_key_exists('w',$_GET) && array_key_exists('i',$_GET) && preg_match('/^[0-9]+$/',$_GET['i'])===1 && array_key_exists('m',$_GET) && in_array($_GET['m'],array('edit','add','remove'))) { $id=$_GET['i']+0; switch ($_GET['w']) { case 'LocalityID': $fout=buildform($id,'Localities','Name'.$dlang,'Locality name','Instances','LocalityID'); $exvalsjsarr=setjsarr('Localities','Name'.$dlang); break; /*case 'DispLangs': $fout=buildform($id,'Languages','Name'.$dlang,'Language','InstOurLangs','OurLangID'); $exvalsjsarr=setjsarr('Languages','Name'.$dlang); break;*/ case 'DispFinModes': $fout=buildform($id,'Financing','Type','Financing method','InstFinancing','FinID'); $exvalsjsarr=setjsarr('Financing','Type'); break; case 'DispPolicies': $fout=buildform($id,'Policies','Name','Policy','InstPolicies','PolID'); $exvalsjsarr=setjsarr('Policies','Name'); break; case 'DispTags': $fout=buildform($id,'Tags','Name','Tag','InstTags','TagID'); $exvalsjsarr=setjsarr('Tags','Name'); break; default: muoribene(__LINE__.': Malformed input.',true); break; } } elseif (array_key_exists('m',$_POST) && in_array($_POST['m'],array('edit','add','remove')) && array_key_exists('t',$_POST) && in_array($_POST['t'],array('Localities','Financing','Policies','Tags')) && array_key_exists('i',$_POST) && preg_match('/^[0-9]+$/',$_POST['i'])===1) { if (array_key_exists('v',$_POST)) { $fout=''; $id=$_POST['i']+0; if ($_POST['t']=='Localities') { //https://nominatim.openstreetmap.org/search?q=bresso,+milano&format=json&accept-language=fr&email=pezcurrel@tiscali.it //https://nominatim.openstreetmap.org/lookup?osm_ids=R45266&format=json&accept-language=fr&addressdetails=1&email=pezcurrel@tiscali.it $url='https://nominatim.openstreetmap.org/search?q='.urlencode($_POST['v']).'&format=json&email='.$email; $osmd=@file_get_contents($url,false,$context); if ($osmd!==false) { $fout.=''.N; } else { $fout='
Couldn’t find localized OpenStreetMap data for «'.hspech($_POST['v']).'».
'; } } else { $fout='Couldn’t find OpenStreetMap data for «'.hspech($_POST['v']).'».
'; } } else { $fout='Couldn’t fetch OpenStreetMap search data.
'.N; } /*} elseif ($_POST['t']=='Languagues') { edaddrem($link,$morejs,$id,'Languages','Name'.$langd,'langselarr','InstOurLangs','OurLangID','langsearch','DispLangs','langselre');*/ } elseif ($_POST['t']=='Financing') { edaddrem($link,$morejs,$id,'Financing','Type','finselarr','InstFinancing','FinID','finsearch','DispFinModes','finselre'); } elseif ($_POST['t']=='Policies') { edaddrem($link,$morejs,$id,'Policies','Name','polselarr','InstPolicies','PolID','polsearch','DispPolicies','polselre'); } elseif ($_POST['t']=='Tags') { edaddrem($link,$morejs,$id,'Tags','Name','tagselarr','InstTags','TagID','tagsearch','DispTags','tagselre'); } } elseif (array_key_exists('LocEn',$_POST) && array_key_exists('LocEs',$_POST) && array_key_exists('LocFr',$_POST) && array_key_exists('LocIt',$_POST)) { $fout='CIAO!'; } else { muoribene(__LINE__.': Malformed input.',true); } } else { muoribene(__LINE__.': Malformed input.',true); } function buildform($id,$table,$column,$title,$lntable,$lncolumn) { global $account, $tables, $link; $fout=''; if ($_GET['m']=='edit' || $_GET['m']=='remove') { $res=mysqli_query($link,'SELECT * FROM '.$table.' WHERE ID='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); if (mysqli_num_rows($res)==1) { $row=mysqli_fetch_assoc($res); /*if ($account['Level']=='guest') { if ($row['AddedBy']!=$account['ID'] $rres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id.' AND InstID!='.$account['OwnInstID']) or muoribene(__LINE__.': '.mysqli_error($link),true); if ($ } $rres='SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id.' AND InstID!= if ($account['Level']!='guest' || ($row['AddedBy']==$account['ID']*/ if ($_GET['m']=='edit') { $fout.=''.N; $fout.=''.N; $fout.=''.N; } elseif ($_GET['m']=='remove') { $lnres=mysqli_query($link,'SELECT * FROM '.$lntable.' WHERE '.$lncolumn.'='.$id) or muoribene(__LINE__.': '.mysqli_error($link),true); $nlinking=mysqli_num_rows($lnres); if ($nlinking>0) { $fout.='There is no '.$title.' with ID='.$id.'
'.N; } } elseif ($_GET['m']=='add') { $fout.=''.N; $fout.=''.N; $fout.=''.N; $fout.=''.N; } $fout.=''.N; $fout.=''.N; $fout.=''.N; $fout.='