Zugriff auf bp-Datenbank mit PHP - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christian Ries (60 Beiträge) am Montag, 25.März.2002, 10:44. WWW: www.islekerart.lu
    Zugriff auf bp-Datenbank mit PHP

      Unsere Vereinigung betreibt ehrenamtlich einen grenzüberschreitenden, zweisprachigen Veranstaltungskalender, der bei anderen Vereinen auf grosses Interesse stösst.

      Manche Partner in der Region würden gerne Auszüge aus unserer Datenbank auf ihrer Internetseite darstellen.

      Das wirft die Frage der Nutzung von gemeinsamen Datenbanken durch verschiedene Nutzer und unter unterschiedlichen System-Bedingungen auf.

      Zuerst dachten wir, dass jeder dieser Nutzer wenn nicht ein eigenes Account bei bp, dann mindestens eine eigene massgeschneiderte Ausgabeseite in unserem bp-Account bräuchten. Ihr könnt Euch vorstellen, was das für Auswirkungen hätte, wenn einige Dutzend Vereine sich der Initiative anschliessen würden. Wir suchten also eine Möglichkeit, die bp und/oder das eigene bp-Account nicht überlasten würde, und gewährleisten würde, dass die Kontrolle integral beim bp-User bleibt (wer kann es nutzen und was wird ausgegeben).

      Wir haben nun einen Weg gefunden, mit PHP von aussen auf bp-Datenbanken zugreifen zu können. Das funktioniert im Prinzip so, dass die gemeinsam zu nutzende Datenbank über eine ‘Exportseite’ = Ausgabeseite bei bp zur Verfügung steht, und zwar so formatiert, dass die Struktur leicht zu erkennen ist.

      Hier ein Beispiel für eine Exportseite :

      <perl>
      out "\nfields***\n";
      out "Feld1|Feld2|Feld3|Feld4|Feld5|Feld6|Id";
      </perl>
      begin***<loop db=mydatabase sort=Feld1,Feld5 code=perl>
      out "\n", $Feld1, "|", $Feld2, "|", $Feld3, "|", $Feld4, "|", $Feld5, "|", $Feld6, "|", $_id;
      </loop>
      <perl>
      out "***end\n";
      </perl>
      

      Dies erzeugt einen code der im Browser folgendermassen …

      fields*** Feld1|Feld2|Feld3|Feld4|Feld5|Feld6|Id begin*** Sa 17.11.01|So 20.01.02|Expo|Europalia 2001 Polska|Eupen|B|156 Fr 07.12.01|So 20.01.02|Expo|Expo gemischte Techniken|Wiltz|L|0 ***end
      powered by baseportal.de


      und im Quelltext so aussieht :

      <!powered by baseportal.de>
      
      fields***
      Feld1|Feld2|Feld3|Feld4|Feld5|Feld6|Id
      begin***
      Sa 17.11.01|So 20.01.02|Expo|Europalia 2001 Polska|Eupen|B|156
      Fr 07.12.01|So 20.01.02|Expo|Expo gemischte Techniken|Wiltz|L|0
      ***end
      <br><center><font face=arial,helvetica size=1>powered by <a href="http://baseportal.de" target="_blank">baseportal.de</a></font></center><br>
      

      Anmerkung: es wurden nur 2 Datensätze gezeigt um das Prinzip zu illustrieren.

      Dieser Code ist maschinengerecht und lässt sich nun mittels PHP auslesen.
      Der Trick dabei ist, dass der gesamte Code der Ausgabeseite von einem PHP-Programm in eine array-Variable gespeichert und danach bereinigt und zerstückelt wird.

      Der Aufruf durch PHP sieht so aus :
      $filearray = file("http://baseportal.de/cgi-bin/baseportal.pl?htx=/myaccount/myexportfile");
      

      Die einzelnen Zeilen (Datensätze) werden dann gemäss dem Trennzeichen | getrennt in ein neues array $data eingelesen und das <Return> am Ende jedes Datensatzes wird gelöscht :

      $data = explode("|", chop($filearray[$line]));
      

      Das ganze hat wie gesagt den Vorteil, eine Datenbank bei baseportal zu pflegen und auch auszugeben, aber dessen Inhalt auch anderen Webauftritten zur Verfügung zu stellen. Der baseportal-User braucht nur eine relativ einfache Export-Ausgabeseite zu erstellen, der Programmierer des fremden Internetauftrittes muss den Rest mit PHP erledigen. Dies hat zudem den Vorteil, dass die Verantwortung für die eigene korrekte Ausgabe bei der Partnerorganisation (und dessen Programmierer) verbleibt. Der bp-User behält durch die Export-Ausgabeseite die Kontrolle über Inhalte und externe Nutzer.

      Konkretes Beispiel im www : sieh Dir die Original-bp-db unter http://www.islekerart.lu an (wähle Sprache, dann gehe auf Agenda im Hauptmenu).
      Eine Auswahl von Veranstaltungen des Tages werden unter http://www.naturpark-our.lu/de/index.php angezeigt (rechts unten. Dies ist noch eine Testseite, die noch nicht geschaltet ist. Das Aussehen könnte sich noch ändern).
      Diese erste Anwendung wurde in Zusammenarbeit mit dem Naturpark Our programmiert. Das PHP-Programm wurde von Pierre Obertin geschrieben.

      Wir stellen diese Lösung ins Forum, damit die gesamte bp-Gemeinschaft bei Bedarf auf einen ähnlichen Ansatz zurückgreifen kann. Die oben angegebenen Details dürften für eine selbstständige Umsetzung ausreichen. Da ich über keine PHP-Erfahrung verfüge, macht es wenig Sinn, mich anzuschreiben.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Christian Ries (60 Beiträge) am Montag, 25.März.2002, 10:44. WWW: www.islekerart.lu
    Zugriff auf bp-Datenbank mit PHP

      Unsere Vereinigung betreibt ehrenamtlich einen grenzüberschreitenden, zweisprachigen Veranstaltungskalender, der bei anderen Vereinen auf grosses Interesse stösst.

      Manche Partner in der Region würden gerne Auszüge aus unserer Datenbank auf ihrer Internetseite darstellen.

      Das wirft die Frage der Nutzung von gemeinsamen Datenbanken durch verschiedene Nutzer und unter unterschiedlichen System-Bedingungen auf.

      Zuerst dachten wir, dass jeder dieser Nutzer wenn nicht ein eigenes Account bei bp, dann mindestens eine eigene massgeschneiderte Ausgabeseite in unserem bp-Account bräuchten. Ihr könnt Euch vorstellen, was das für Auswirkungen hätte, wenn einige Dutzend Vereine sich der Initiative anschliessen würden. Wir suchten also eine Möglichkeit, die bp und/oder das eigene bp-Account nicht überlasten würde, und gewährleisten würde, dass die Kontrolle integral beim bp-User bleibt (wer kann es nutzen und was wird ausgegeben).

      Wir haben nun einen Weg gefunden, mit PHP von aussen auf bp-Datenbanken zugreifen zu können. Das funktioniert im Prinzip so, dass die gemeinsam zu nutzende Datenbank über eine ‘Exportseite’ = Ausgabeseite bei bp zur Verfügung steht, und zwar so formatiert, dass die Struktur leicht zu erkennen ist.

      Hier ein Beispiel für eine Exportseite :

      <perl>
      out "\nfields***\n";
      out "Feld1|Feld2|Feld3|Feld4|Feld5|Feld6|Id";
      </perl>
      begin***<loop db=mydatabase sort=Feld1,Feld5 code=perl>
      out "\n", $Feld1, "|", $Feld2, "|", $Feld3, "|", $Feld4, "|", $Feld5, "|", $Feld6, "|", $_id;
      </loop>
      <perl>
      out "***end\n";
      </perl>
      

      Dies erzeugt einen code der im Browser folgendermassen …

      fields*** Feld1|Feld2|Feld3|Feld4|Feld5|Feld6|Id begin*** Sa 17.11.01|So 20.01.02|Expo|Europalia 2001 Polska|Eupen|B|156 Fr 07.12.01|So 20.01.02|Expo|Expo gemischte Techniken|Wiltz|L|0 ***end
      powered by baseportal.de


      und im Quelltext so aussieht :

      <!powered by baseportal.de>
      
      fields***
      Feld1|Feld2|Feld3|Feld4|Feld5|Feld6|Id
      begin***
      Sa 17.11.01|So 20.01.02|Expo|Europalia 2001 Polska|Eupen|B|156
      Fr 07.12.01|So 20.01.02|Expo|Expo gemischte Techniken|Wiltz|L|0
      ***end
      <br><center><font face=arial,helvetica size=1>powered by <a href="http://baseportal.de" target="_blank">baseportal.de</a></font></center><br>
      

      Anmerkung: es wurden nur 2 Datensätze gezeigt um das Prinzip zu illustrieren.

      Dieser Code ist maschinengerecht und lässt sich nun mittels PHP auslesen.
      Der Trick dabei ist, dass der gesamte Code der Ausgabeseite von einem PHP-Programm in eine array-Variable gespeichert und danach bereinigt und zerstückelt wird.

      Der Aufruf durch PHP sieht so aus :
      $filearray = file("http://baseportal.de/cgi-bin/baseportal.pl?htx=/myaccount/myexportfile");
      

      Die einzelnen Zeilen (Datensätze) werden dann gemäss dem Trennzeichen | getrennt in ein neues array $data eingelesen und das <Return> am Ende jedes Datensatzes wird gelöscht :

      $data = explode("|", chop($filearray[$line]));
      

      Das ganze hat wie gesagt den Vorteil, eine Datenbank bei baseportal zu pflegen und auch auszugeben, aber dessen Inhalt auch anderen Webauftritten zur Verfügung zu stellen. Der baseportal-User braucht nur eine relativ einfache Export-Ausgabeseite zu erstellen, der Programmierer des fremden Internetauftrittes muss den Rest mit PHP erledigen. Dies hat zudem den Vorteil, dass die Verantwortung für die eigene korrekte Ausgabe bei der Partnerorganisation (und dessen Programmierer) verbleibt. Der bp-User behält durch die Export-Ausgabeseite die Kontrolle über Inhalte und externe Nutzer.

      Konkretes Beispiel im www : sieh Dir die Original-bp-db unter http://www.islekerart.lu an (wähle Sprache, dann gehe auf Agenda im Hauptmenu).
      Eine Auswahl von Veranstaltungen des Tages werden unter http://www.naturpark-our.lu/de/index.php angezeigt (rechts unten. Dies ist noch eine Testseite, die noch nicht geschaltet ist. Das Aussehen könnte sich noch ändern).
      Diese erste Anwendung wurde in Zusammenarbeit mit dem Naturpark Our programmiert. Das PHP-Programm wurde von Pierre Obertin geschrieben.

      Wir stellen diese Lösung ins Forum, damit die gesamte bp-Gemeinschaft bei Bedarf auf einen ähnlichen Ansatz zurückgreifen kann. Die oben angegebenen Details dürften für eine selbstständige Umsetzung ausreichen. Da ich über keine PHP-Erfahrung verfüge, macht es wenig Sinn, mich anzuschreiben.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 25.März.2002, 16:18.
    Re: Zugriff auf bp-Datenbank mit PHP - Gute Idee und...

      ...gehört meiner Meinung nach in die Bib, denn hier im Forum rutscht es alsbald unten raus... ;-)

      PS: Das Ganze ist übrigens genau das, was sich hinter dem aktuellen Hype "Web Services" verbirgt, u.a. ein Bestandteil von Microsofts .Net, nur dass da alles viel aufgeblasener via XML etc. daherkommt (dafür zugegebenermassen flexibler ;-) ). Ich hatte vor kurzem dasselbe Problem, nämlich die Bib immer vom baseportal.de-Server zu holen und will in Zukunft entsprechende Sachen einbauen, also z.b. dass mit einem "...baseportal.pl?dbr=/name/datenbank" eine Datenbank in exakt dem obigen Format (also "|" als Spalten- und "\n" als Zeilentrenner) geliefert wird... Und dass man das dann von jedem beliebigen Server mit z.b.

      get "http://baseportal.de/cgi-bin/baeportal.pl?dbr=/name/datenbank";
      

      holen kann ;-)

      Ja, wenn der Tag doch nur mehr Stunden hätte ;-))

     Antworten

    Beitrag von Christian Ries (60 Beiträge) am Montag, 25.März.2002, 17:26. WWW: www.islekerart.lu
    Re: Zugriff auf bp-Datenbank mit PHP - Gute Idee und...

      Ok, ich setze es in die Bib. Schön, dass du es ohnehin als Service einbauen möchtest ;-)

      Für ganz Eilige reicht ja die hier aufgezeigte Lösung.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 25.März.2002, 23:41.
    Re: Zugriff auf bp-Datenbank mit PHP - Gute Idee und...

      Na, wer weiss wann ich dazu komme... Ausserdem ist die PHP-Lösung zur Abfrage sicherlich auch dann noch interessant ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 26.März.2002, 00:10.
    Re: Zugriff auf bp-Datenbank mit PHP - Gute Idee und...

      achso! Als ich damals meine Lösung in die Bib stellen wollte waren deine Worte "Ne lass das mal, wegen der mietaccounts" ;-)

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 26.März.2002, 15:56.
    Re: Zugriff auf bp-Datenbank mit PHP - Gute Idee und...

      Oh, uh, äh... ,-)) Na, da sieht man mal wie dusslig programmieren machen kann ;-) Aber: War das nich was anderes? Irgendwie is mir so als wie wenn da noch ein (kleiner) Unterschied war/is....!? ;-))

     Antworten


     
 Liste der Einträge von 48750 bis 48900:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!