amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Perlelemente in PHP includen. [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

09.01.2006, 18:16 Uhr

Cj-Stroker
Posts: 1343
Nutzer
Hallo Zusammen,


Ich hätte da eine Frage, die mich schon eine Weile beschäftigt.

Ich hätte gerne auf meiner Hauptseite, daß die User im Forum und im Chat
angezeigt werden.

Ersteres war recht leicht zu realisieren, da das Forum ja auch in PHP ist.

Letzteres stellt ein Problem dar, weil der Chat in Perl geschrieben ist und diese Scripte nur im CGI-BIN Ordner ausführbar sind.

Gibt es hier vielleicht trotzdem eine Möglichkeit die Online-Anzeige einzubinden?

MFG

Cj-Stroker
--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

09.01.2006, 18:40 Uhr

Mad_Dog
Posts: 1944
Nutzer
@Cj-Stroker:

Du könntest z.B. eine Enviroment-Variable zum Datentausch benutzen, falls Dein Webhoster das zulässt. Dort schreibt dann das eine Skript rein, wieviel user online (oder im Chat) sind und das andere Skript kann die Daten dann bequem auslesen.
--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

09.01.2006, 18:56 Uhr

Cj-Stroker
Posts: 1343
Nutzer
Hi Mad_Dog,

Wie finde ich das raus, ob der Provider sowas zuläßt?

Ich kenne eben nur die Globalvars über die man ja auch bequem das Datum, den Browser usw. auslesen kann.

Ehrlich gesagt bin ich auch nicht so firm in diesen Sachen.

MFG

Cj-Stroker
--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 10:12 Uhr

Mad_Dog
Posts: 1944
Nutzer
@Cj-Stroker:

Wie so oft ist auch hier die Antwort "Self-HTML":

http://de.selfhtml.org/servercgi/cgi/umgebungsvariablen.htm

Umgebungsvariablen solltest Du auch vom Amiga kennen...
--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 15:50 Uhr

_PAB_
Posts: 3016
Nutzer
Soweit ich weiß, kann man in PHP ein include bzw. require auch aus einer URL holen, wo Du dann (indirekt) aus der PHP-Seite ein CGI aufrufen kannst. Müßte man aber erst noch genauer nachlesen: http://www.php.net
Siehe: "include" => Beispiel 16-5. include() über HTTP

[ Dieser Beitrag wurde von _PAB_ am 10.01.2006 um 15:51 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 16:32 Uhr

Cj-Stroker
Posts: 1343
Nutzer
@Mad_Dog

Mit Globalcars meinte ich genau das. ;)
Hab mich wohl sehr dumm ausgedrückt.

Natürlich habe ich Zugriff auf alle Variablen und nutze diese auch sowohl in PHP, als auch CGI.
Das habe ich oben aber geschrieben, als ich das mit dem Datum erwähnte.
Hab mich nur etwas dümmlich ausgedrückt.

Interessant finde ich in der Einleitung die Passage, daß man Variablen selbst mit Inhalten füllen kann.

Würde man also die User als String ablegen, könnte man ja vielleicht diese von anderer Stelle aus auslesen.

Ehrlich gesagt bin ich da etwas überfordert, wie ich da vozugehen hätte.

@_PAB_

Du kannst natürlich auch per URL in PHP includen.
Dummerweise wird das Script aber auf der Stelle ausgeführt, wo das Hauptdokument liegt in welches includet wird.

Perlscripte können zumindest bei den meisten Providern aber nur in CGI-Bin ausgeführt werden.

Von ausen kommste da also nicht dran.

Ich hoffe, daß ich mich nicht gar zu dämlich ausgedrückt habe.

MFG

Cj-Stroker


--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 16:50 Uhr

bruZard
Posts: 307
Nutzer
Es gibt drei Möglichkeiten dass zu machen:

1. Du bindest das externe Script an eine HTML datei welche Du als Quelle in einem Inline Frame angibts. Aber ich könnte mir vorstellen dass das auf keinem Amiga Browser angezeigt wird ;)

2. verwende die PHP Funktion "require_once" um einen externen Inhalt auszugeben. Auch hier wirst Du kein Glück mit der direkten Angabe eines Perl-Scripts haben, dieses muss widerum an eine HTML Datei gebunden sein.

3. schreibe den Chat in PHP/Java/ASP whatever und vergiss diesen Perl-Kram ... es ist nur noch eine Frage der Zeit bis niemand mehr in Perl was macht :D

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 16:58 Uhr

Cj-Stroker
Posts: 1343
Nutzer
@bruZard

Zitat:
Original von bruZard:
Es gibt drei Möglichkeiten dass zu machen:

1. Du bindest das externe Script an eine HTML datei welche Du als Quelle in einem Inline Frame angibts. Aber ich könnte mir vorstellen dass das auf keinem Amiga Browser angezeigt wird ;)

Wie du richtig erkannt hast können Amiga-Browser mit IFrames wenig anfangen.
Zitat:
2. verwende die PHP Funktion "require_once" um einen externen Inhalt auszugeben. Auch hier wirst Du kein Glück mit der direkten Angabe eines Perl-Scripts haben, dieses muss widerum an eine HTML Datei gebunden sein.
Auch hier hast du dir die Antwort schon gegeben, da du von ausen nicht dran kommst. Sowas geht nur bei Providern, die das Ausführen von Perl auch auserhalb von CGI-Bin zulassen.

Zitat:
3. schreibe den Chat in PHP/Java/ASP whatever und vergiss diesen Perl-Kram ... es ist nur noch eine Frage der Zeit bis niemand mehr in Perl was macht :D
Dummerweise gibt es in PHP keinen Chat, der mit diesem vergleichbar wäre. Hier wird wieder wert auf Amiga-Browser gelegt.
Vor allem kenne ich keinen, der auf Amiga-Browsern nach unten Scrollen kann.

MFG

Cj-Stroker

--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 17:03 Uhr

bruZard
Posts: 307
Nutzer
Soll ich Dir einen basteln? Sage mir welchen Du einbinden willst damit ich weiß wie er aussehen soll, gib mir 5 Tage Zeit und die Sache ist gegessen ... natürlich würde ich mich an AMIGA "Standards" halten.

[ - Antworten - Zitieren - Direktlink - ]

10.01.2006, 18:27 Uhr

Cj-Stroker
Posts: 1343
Nutzer
Hi bruZard,

Guck ihn dir doch einfach mal an.
Nur kurz reggen und einloggen.

Keine Angst. Die Daten werden nicht groß hinterlegt.
Ist nur eine Textdatei für mich.

mehr nicht.

Also das sollte er schon können. Wichtig ist eben, daß er auf Amiga-Browsern scrollen kann, wenn der Text unten angekommen ist.

Da gibt es nicht viele, die das können.


MFG

Cj-Stroker
--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 10:43 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von Cj-Stroker:
@Mad_Dog

Interessant finde ich in der Einleitung die Passage, daß man Variablen selbst mit Inhalten füllen kann.

Würde man also die User als String ablegen, könnte man ja vielleicht diese von anderer Stelle aus auslesen.


Genau das war ja meine Idee... probier mal etwas in der Art:

code:
$ENV{NAME_DER_ENV_VARIABLEN} = 'String mit dem Wert';


Übrigens: So ein Perl-Skript zum auslesen der Env-Variablen funktioniert auch prima offline auf dem heimischen Amiga...


--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 10:46 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von bruZard:

3. schreibe den Chat in PHP/Java/ASP whatever und vergiss diesen Perl-Kram ... es ist nur noch eine Frage der Zeit bis niemand mehr in Perl was macht :D


Das würde aber sein Problem (Austausch von Variablen zwischen verschiedenen Programmen) auch nicht lösen.

--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 12:25 Uhr

bruZard
Posts: 307
Nutzer
Doch, würde es lösen.

Der Chat schreibt alle derzeit anwesenden User in die Datenbank, das Script welches diese Userliste anzeigen soll liest die Daten einfach wieder aus.

code:
$result = MYSQL_QUERY("SELECT id,user FROM userliste ORDER BY id DESC");
while($row = MYSQL_FETCH_OBJECT($result))
{
  echo "$row->user<br>";
}

Nicht sooo wahnsinnig kompliziert, oder? :D

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 12:36 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von bruZard:
Der Chat schreibt alle derzeit anwesenden User in die Datenbank, das Script welches diese Userliste anzeigen soll liest die Daten einfach wieder aus.


Das wäre die elegantere Methode.

Allerdings kannst Du das in jeder x-beliebigen Sprache (z.B. auch Perl) machen. Es spricht ja nichts dagegen, daß er für den Chat ein Perl Skript und für den Rest php verwendet.

Wenn er aber nur wissen will, wieviele User im Chat sind, reicht eine einfache ENV-Variable.
--

http://www.norman-interactive.com

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 16:04 Uhr

Cj-Stroker
Posts: 1343
Nutzer
@bruZard

Ich muß dich leider enttäuschen. Die User werden nicht in der Datenbank hinterlegt, da der Chat sowas garnicht unterstützt.

Die User sind nur temporär da und werden da auch angezeigt.

Du kannst also nix auslesen, wo nix ist.

@Mad_Dog

Die User werden im Loginscript angezeigt.

http://www.cj-stroker.de/cgi-bin/chat/chat.cgi

Sie werden unter "Zur Zeit im Chat" aufgelistet.

Der einzigste Weg von ausen an irgendwas dranzukommen wäre der Weg über die ENV Variablen.

Nur weis ich nicht, wie ich das da reinbekommen soll.

Der Aufruf sieht übrigens so aus:

# show usernames
if ($show_users_on_login) {
print << "[END]";
<P>Zur Zeit im Chat:<BR>
[END]
&usernames;
}

print << "[END]";



MFG

Cj-Stroker
--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ Dieser Beitrag wurde von Cj-Stroker am 11.01.2006 um 16:09 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 16:59 Uhr

bruZard
Posts: 307
Nutzer
@Cj-Stroker:
AHA!

Dann machst Du folgendes nach
code:
if($show_users_on_login){


-->

code:
$ENV("usercount") =  &usernames;


Auf Deiner Seite (in PHP) machst Du dann das:
code:
echo getenv("usercount");


Habe das jetzt nicht getestet weil mir ein "schneller" Test in Perl zu zeitaufwändig ist, müsste aber so gehen.

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 18:16 Uhr

Cj-Stroker
Posts: 1343
Nutzer
Hi bruZard,

Nee du, das geht nicht.


MFG

Cj-Stroker

--
Webmaster of Amiforce and Abakus-Design
http://www.Amiforce.de
    (Fight For Amiga)

http://www.cj-stroker.de/Abakus/
(World of AMHuhn and more)

Forum:
http://amiforce-forum.cj-stroker.de

[ - Antworten - Zitieren - Direktlink - ]

11.01.2006, 18:33 Uhr

Mad_Dog
Posts: 1944
Nutzer
Zitat:
Original von bruZard:
@Cj-Stroker:
code:
$ENV("usercount") =  &usernames;



@bruZard:

So wie's aussieht, ist &usernames hier eine Funktion und kein String.
Da muß man sich erstmal anschauen, was die Funktion macht - eventuell gibt sie ja noch HTML-Tags aus, die man aber in einer ENV-Variablen nicht brauchen kann.

@Cj-Stroker:

Wenn Du nur die Zahl der User übergeben willst, suche nach der Variablen, in der dies gespeichert ist und mach eine entsprechende ENV-Variable draus.

z.B.

code:
$ENV{USERIMCHAT} = "$ZAHLDERUSER"


Falls Du die Namen der User übergeben willst, dann bastelst Du am besten erst einen gaaaanz langen String zusammen, der alle Namen der User im Chat enthält und machst dann einen String daraus, den Du in einer ENV-Variablen abspeicherst...

Also sowas wie:

code:
$ENV{USERIMCHAT} = "$User1 $User2 $User3 $User4"


Aber in der Praxis werden die Namen wahrscheinlich in einem Array oder ähnlichem gespeichert sein, dann mußt Du eben entsprechend umdenken...

--

http://www.norman-interactive.com

[ Dieser Beitrag wurde von Mad_Dog am 11.01.2006 um 18:42 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Perlelemente in PHP includen. [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.