Beste lezer,
Wij zijn op zoek naar mensen die enige ervaring hebben met het schrijven van AIS of die dit een kans willen geven.
Momenteel gebruiken wij volgende pagina http://www.newahv.be/index.php?page=ais maar er zitten nog een aantal foutjes in dit programma die we er graag uit willen.
Misschien is er iemand die voor ons een volledige nieuwe AIS-systeem wilt schrijven, dat volledig voldoet aan onze wensen. Daarvoor hebben we eventueel wel wat websites die als voorbeeld kunnen dienen.
Hoop hier wat positieve reacties te verkrijgen en eventueel een idee hoeveel dit ons kan kosten
Aanvullend bericht:
Nieuwe vraag ivm AIS en database.
Mensen versturen vanuit hun computer naar mijn database via volgende script.
In mijn database heb ik enkel 2 mappen staan. En info wordt verwerkt in map shipinfo. Vanuit deze database kan ik dus info opvragen en krijg ik volgende paginaCode:<? // process the post message from ShipPlotter share // this script is an example of how you might deal with the post from ShipPlotter // Most settings are located in shipinfo.inc.php. include 'shipinfo.inc.php'; if ($filterwindow) { $LatN=$_POST['LatN']; $LatS=$_POST['LatS']; $LonE=$_POST['LonE']; $LonW=$_POST['LonW']; // used to window the data sent back // plus a 50% margin around the window $LatN += 0.5*($LatN-$LatS); $LatS -= 0.333*($LatN-$LatS); // 0.333 because we already scaled up LatN $LonE += 0.5*($LonE-$LonW); $LonW -= 0.333*($LonE-$LonW); // ditto if ($LatN > 90) $LatN = 90; if ($LatS < -90) $LatS = -90; if ($LonE > 180) $LonE = 180; if ($LonW < -180) $LonW = -180; $windowcond = "lat > '$LatS' AND lat < '$LatN' AND lon > '$LonW' AND lon < '$LonE'"; } $Lines = 0; $Lines=$_POST['Lines']; $Reg=$_POST['Reg']; $Uponly = 0; $Uponly = $_POST['Uponly']; $Extracode=chr($_POST['Extracode']); $lastconn = 0; // echo "Connecting..."; @mysql_connect($dbserver,$username,$password) or die('Could not connect to database: ' . mysql_error()); @mysql_select_db($database) or die( "Could not select database: ".mysql_error()); // Access control if ($accesscontrol) { include 'access_db.php'; $access = allow_access($emailadr); // echo 'Access = ' . $access . ' Lastconn = ' . $lastconn; if ($access < 1) { die("Access denied"); } } // Setting up output buffering ob_start("ob_gzhandler"); // read in the given number of lines for ($i = 1; $i <= $Lines; ++$i) { $lhead = "line".sprintf("%04d",$i); // the line header of the ith line $ldata = $_POST[$lhead]; // the content $search = array ('/\$/','/\\\\/','/{/','/}/','/"/','/\'/'); $replace= array ('-' ,'/' ,'(' ,')' ,' ' ,' ' ); $ldata = preg_replace($search, $replace, $ldata); if (preg_match("/^[\040-\172\300-\377]+$/", $ldata)) //A more restricted version: //if (preg_match("/^[-*:&)(\.\w\[\] 0-9]+$/", $ldata)) { // unpack the variables $r_mmsi = (int)0; $r_mtime = (int)0; $r_status = (int)0; $r_type = (int)0; $r_lat = (float)0; $r_lon = (float)0; $r_speed = (float)0; $r_course = (float)0; $r_heading = (int)0; $r_draft = (float)0; $r_length = (int)0; $r_width = (int)0; $r_imo = (int)0; $r_l1 = (int)0; $r_w1 = (int)0; sscanf($ldata,"%d %d %d %d %f %f %f %f %d %f %d %d",$r_mmsi,$r_mtime,$r_status,$r_type,$r_lat,$r_lon,$r_speed,$r_course,$r_heading,$r_draft,$r_length,$r_width); if (($r_mmsi < 999999999) && ($r_mmsi > 0) && ($r_lat > -90) && ($r_lon > -180) && ($r_lat < 90) && ($r_lon < 180)) // ignore obviously false data { $nameoffset = 78; // this is a kludge to fix a shift problem with navaids (type no is 3 digits instead of 2) if ($r_type > 99) $nameoffset = 79; $r_name = substr($ldata,$nameoffset,20); // need to defend against leading spaces in the name $r_name = trim($r_name); $r_name = substr($r_name." ",0,20); $r_call = substr($ldata,$nameoffset+21,7); // +21 $r_dest = substr($ldata,$nameoffset+29,20); // +29 $r_eta = substr($ldata,$nameoffset+50,11); // +50 // the imo number and the extra dimension terms are after all the strings for upward compatibility $ldata2 = substr($ldata,$nameoffset+62); sscanf($ldata2,"%d %d %d",$r_imo,$r_l1,$r_w1); if($r_imo > 9999999) { $r_imo /= 100; // deal with incorrectly entered IMO numbers } // now look for that ship in our database indexed by mmsi $query="SELECT * FROM shipinfo WHERE mmsi='$r_mmsi'"; $result=mysql_query($query); $num = 0; if (!$result) { //mysql_close(); die("DB query failed."); } else { $num=mysql_num_rows($result); } if ($num == 0) { // this is a new ship to us $sql = "INSERT INTO `shipinfo` (`mmsi`,`mtime`,`status`,`type`,`lat`,`lon`,`speed`,`course`,`heading`,`draft`,`length`,`width`,`name`,`call`,`dest`,`eta`,`reg`,`imo`,`l1`,`w1`,`extracode`) VALUES ('$r_mmsi','$r_mtime','$r_status','$r_type','$r_lat','$r_lon','$r_speed','$r_course','$r_heading','$r_draft','$r_length','$r_width','$r_name','$r_call','$r_dest','$r_eta','$Reg','$r_imo','$r_l1','$r_w1','$Extracode');"; $result=mysql_query($sql); } if ($num > 0) { // we know this ship. How do the times compare? $mtime=mysql_result($result,0,"mtime"); if ($mtime > $r_mtime) { // ours is more recent than theirs } else { // theirs is more recent than ours $sql = "UPDATE shipinfo SET mmsi = '$r_mmsi', mtime = '$r_mtime', status = '$r_status', type = '$r_type', lat = '$r_lat', lon = '$r_lon', speed = '$r_speed', course = '$r_course', heading = '$r_heading', draft = '$r_draft', length = '$r_length', width = '$r_width', name = '$r_name', call = '$r_call', dest = '$r_dest', eta = '$r_eta', reg = '$Reg', imo = '$r_imo' , l1 = '$r_l1' , w1 = '$r_w1', extracode = '$Extracode' WHERE mmsi = '$r_mmsi'"; $result=mysql_query($sql); } } } } } // now we have read all the arguments and updated the database // now we must delete any stale ships $mintime = 300; $maxtime = 300; $sql="DELETE FROM `shipinfo` WHERE mtime < (UNIX_TIMESTAMP()-$mintime) OR mtime > (UNIX_TIMESTAMP()+$maxtime)"; $result=mysql_query($sql); // now we must output the database if not Uponly $query="SELECT * FROM shipinfo WHERE reg != '$Reg'"; if ($filterwindow) $query=$query . " AND " . $windowcond; if ($filterlastconn) $query=$query . " AND timestamp >= '$lastconn'"; $num = 0; if (($Uponly == 0) && ($Reg != 0) && ($Reg != -1)) { $result=mysql_query($query); if (!$result) { //mysql_close(); die("DB query failed."); } else { $num=mysql_num_rows($result); } } //echo "Variables = $num\n"; for ($i = 0 ; $i < $num ; $i++) { $r_mmsi=mysql_result($result,$i,"mmsi"); $r_mtime=mysql_result($result,$i,"mtime"); $r_status=mysql_result($result,$i,"status"); $r_type=mysql_result($result,$i,"type"); $r_lat=mysql_result($result,$i,"lat"); $r_lon=mysql_result($result,$i,"lon"); $r_speed=mysql_result($result,$i,"speed"); $r_course=mysql_result($result,$i,"course"); $r_heading=mysql_result($result,$i,"heading"); $r_draft=mysql_result($result,$i,"draft"); $r_length=mysql_result($result,$i,"length"); $r_width=mysql_result($result,$i,"width"); $r_name=mysql_result($result,$i,"name"); $r_call=mysql_result($result,$i,"call"); $r_dest=mysql_result($result,$i,"dest"); $r_eta=mysql_result($result,$i,"eta"); $r_reg=mysql_result($result,$i,"reg"); $r_imo=mysql_result($result,$i,"imo"); $r_l1=mysql_result($result,$i,"l1"); $r_w1=mysql_result($result,$i,"w1"); $r_extracode=mysql_result($result,$i,"extracode"); // to identify the sharing source, we will hash the reg number into a letter and put it at the end of the destination $hash = 0; $t = $r_reg % 16; $hash ^= $t; $r_reg /= 16; $t = $r_reg % 16; $hash ^= $t; $r_reg /= 16; $t = $r_reg % 16; $hash ^= $t; $r_reg /= 16; $t = $r_reg % 16; $hash ^= $t; $hash += 97; // to make a lower case letter starting with a if ($hash > 122) $hash = 122; // just in case //You need this in somewhere to avoid a null character in the response string if ($r_extracode == "\0") $r_extracode = " "; if (phpversion() < "4.3.10.10") { // For elder PHP versions printf("%09d %010d %02d %02d %3.6lf %4.6lf %03.1lf %03.1lf %03d %02.1lf %03d %02d %-20s %-7s %-20s %-11s %-1s %07d %03d %02d %-1s\n",$r_mmsi,$r_mtime,$r_status,$r_type,$r_lat,$r_lon,$r_speed,$r_course,$r_heading,$r_draft,$r_length,$r_width,$r_name,$r_call,$r_dest,$r_eta,chr($hash),$r_imo,$r_l1,$r_w1,$r_extracode); // Important note: // Some versions of PHP treat the double field specifiers differently. // As shown above, %3.6lf means 3 digits before and 6 digits after the decimal point. // This is contrary to the PHP spec but conforms to the way earlier versions of PHP behave. // The version below (commented out) uses %10.6 to mean the same thing // that is 10 digits altogether and six after the decimal point. // If the version above fails, try the version below. } else { // For recent PHP versions printf("%09d %010d %02d %02d %10.6lf %11.6lf %05.1lf %05.1lf %03d %04.1lf %03d %02d %-20s %-7s %-20s %-11s %-1s %07d %03d %02d %-1s\n",$r_mmsi,$r_mtime,$r_status,$r_type,$r_lat,$r_lon,$r_speed,$r_course,$r_heading,$r_draft,$r_length,$r_width,$r_name,$r_call,$r_dest,$r_eta,chr($hash),$r_imo,$r_l1,$r_w1,$r_extracode); } } // Updating user statistics if ($accesscontrol) { update_user_stats($Reg, $Extracode, $Lines, $num); //update_user_stats($Reg, $Lines, $num); } ob_end_flush(); // Some diagnostics when viewed from a browser (access control disabled) if (!strstr($_SERVER['HTTP_USER_AGENT'], 'ShipPlotter')) { echo "The information can not be viewed with a browser.<p>"; $query="SELECT COUNT(*) FROM `shipinfo` WHERE 1"; $result=mysql_query($query); if (!$result) { $error = mysql_error(); echo "The shipinfo table can not be accessed: $error<p>"; } else { $total=mysql_result($result,0,"COUNT(*)"); echo "There are $total entries in the shipinfo table.<p> The script seems to be working.<p>"; } } mysql_close(); ?>
http://www.newahv.be/index.php?page=ais
Nu zou ik graag volgende setup maken (als dit lukt)
van computer a naar database a naar webpagina a
van computer b naar database b naar webpagina b
van computer c naar database c naar webpagina c
maar ik wil achteraf ook database a, b en c linken naar database abc die data doorstuurt naar webpagina abc
Iemand die me hierbij kan zeggen of dit mogelijk is of niet, welke info je nodig hebt om dit even uit te zoeken en wat ik precies allemaal moet doen.
-
28-11-2008, 14:35 #1
- Berichten
- 5
- Lid sinds
- 16 Jaar
Ais
Laatst aangepast door Steven Oppeel : 11-12-2008 om 12:43 Reden: Automatisch samengevoegd.
-
In de schijnwerper
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic