Ik heb een computer a die stuurt gegevens naar database a en dan kan ik webpagina a bekijken
Ik heb een computer b die stuurt gegevens naar database b en dan kan ik webpagina b bekijken
Ik heb een computer c die stuurt gegevens naar database c en dan kan ik webpagina c bekijken
maar is het mogelijk om info van database a b en c naar database d te kopieren om zo webpagina d te bekijken. Hoe pak ik dit best aan??
- 3 database in 1 database opvragen.
-
12-12-2008, 10:47 #1
- Berichten
- 5
- Lid sinds
- 16 Jaar
3 database in 1 database opvragen.
-
-
12-12-2008, 15:44 #2
- Berichten
- 93
- Lid sinds
- 17 Jaar
Even simpel gezegd adhv een voorbeeld heb je nu 3 thema nieuwssites en je wilt alle berichten van je thema sites op 1 grote site zetten.
Nieuwssites is even als voorbeeld.
Ik zou zelf een XML feed aanmaken op de thema sites die de grote site inleest en in de database plaats.
-
13-12-2008, 10:47 #3
- Berichten
- 5
- Lid sinds
- 16 Jaar
Kan jij zoiets eventueel verder uitwerken?
Hoeveel zou ons dit kosten??
Graag per PM
-
14-12-2008, 19:09 #4
- Berichten
- 395
- Lid sinds
- 17 Jaar
Alles kan. Hoe het moet hangt echt van de praktijk af. Bij een nieuws site zou ik het ook via rss/xml doen.
Kun je meer van de praktijk situatie schetsen?
-
17-12-2008, 19:22 #5
- Berichten
- 5
- Lid sinds
- 16 Jaar
Computer A staat in Zeebrugge (kennen persoon niet) en tegen betaling stuurt deze persoon info naar database firma in Antwerpen.
Computer B staat in Terneuzen (kennen persoon niet) en tegen betaling stuurt deze persoon info naar database firma in Antwerpen
Computer C staat in Antwerpen (is van firma) en stuurt info naar database firma in Antwerpen.
Computer D staat ook in Antwerpen (is van firma) en stuurt info naar database firma in Antwerpen.
Voor computer C en D is database gemakkelijk omdat deze elkaars info mogen lezen (wie schrijft naar database, leest automatisch database)
Computer A moet info naar een aparte database sturen (zodanig dat deze schrijft naar database, maar niet leest wat C en D schrijven) -> Deze info gaat ook naar pagina A
Computer B moet info naar een aparte database sturen (zodanig dat deze schrijft naar database, maar niet leest wat C en D schrijven) -> Deze info gaat ook naar pagina B
Dus info van A en B moet samengevoegd worden in database van C en D.
Met als gevolg dat A en B enkel eigen info kunnen zien en dat C en D info zien van A-B-C en D
-
17-12-2008, 19:30 #6
- Berichten
- 395
- Lid sinds
- 17 Jaar
Klinkt erg ingewikkeld zeg. Gaat het puur om dat wat uitgewisseld moet worden? Dus jullie doel is data uitwisseling als ik het goed begrijp?
Ik weet niet of een database zo ingericht kan worden dat het beveiligd word op zo'n manier als jij wilt. Maar wat bijvoorbeeld wel mogelijk is dat er een database tussen gezet word die als buffer dient. Daar komt dus alleen info van A en B op en de database waar het om gaat die leest het uit bij die tussen database. Daardoor staat er op die tussen database geen gevoelige informatie.
Zo dus:
A > X > C/D
B > X > C/D
Is het niet mogelijk dat A en B niet sturen, maar jullie het ophalen? Daardoor is er ook geen info wat uit kan lekken.
-
17-12-2008, 19:39 #7
- Berichten
- 5
- Lid sinds
- 16 Jaar
Origineel gepost door Akif
Klinkt erg ingewikkeld zeg. Gaat het puur om dat wat uitgewisseld moet worden? Dus jullie doel is data uitwisseling als ik het goed begrijp?
Zo moeten we maar gebruik maken van 1 database, kunnen we zelf kiezen wie kan schrijven/ontvangen en wie enkel kan schrijven naar database.
Graag jullie gedachte.
Dit is script shipinfo.php
Code:<? // 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(); ?>
-
23-12-2008, 12:52 #8
- Berichten
- 31
- Lid sinds
- 16 Jaar
kunnen we zelf kiezen wie kan schrijven/ontvangen en wie enkel kan schrijven naar database.
Graag jullie gedachte.
Gedetailleerder: alle databases hebben gebruikers die inloggen (daar komt dus ook username/password vandaan).
Maak een gebruiker aan op je database met schrijf rechten. zonder lees rechten (e.g. INSERT == toegestaan, SELECT != toegestaan).
Groot nadeel hieraan is.
stel ik upload bestand test.jpg. test.jpg bestaat al. normaliter controleer je dit voor het uploaden, athans, ik doe dat of sta ik hier alleen in.
dit is dus niet meer mogelijk, omdat je hiervoor de database moet uitlezen.
--
een andere oplossing is het gebruik maken van een login systeem. iemand die is ingelogd is ergens in je sessie opgeslagen. zorg ervoor dat hier ook de rechten van die persoon in komt te staan mbt. mysql.
--
Ik hoop dat je een beetje begrijpt wat ik bedoel. Nogmaals, het simpele antwoord was Ja ;)
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