chatähnl. fluxus-prog - bleibt stehen nach reload

liebe ich-weiß-wassler!

das hier könnte auch in javascript oder programmieren allgemein stehen, da wahrscheinlich es html cgi javascript (?) und perl betrifft

bitte keinen quelltext und keine lösung schicken, sondern nur mir sagen, in welche richtung ich weiter lernen muß, was ich überhaupt brauche für mein „fluxus“ … und ob das überhaupt geht, was ich vorhab’ … bzw wie nich’

… noch in der planung häng’ ich schon ganz übel:
hier ersma’, wie weit ich erst bin:
is’ - weiß’ ich - noch falsch, aber …
… vielleicht kann man schon sehen, was ich machen will …

hier ‚reintippen … (und „enter“ hauen - logo)
bleibt für folgende besucher bisses überschrieben wird …
(funkst noch nich‘ … muß erst perl lernen :open_mouth:| )

oder ;

oder print $flux_dat $flux_in;

close(DATA);

onunload.pl
#/usr/cgi-bin/perl
use strict;
open (DATA, " $flux_dat;
close(DATA);

… es geht nun nich’ darum was im einzelnen (alles) falsch gecodet is’, sondern, ob das überhaupt geht, aus 'ner textarea mit vereinten kräften von perl und javascript als zu lesen beim verlassen von html-seite und zu schreiben (nach value="") beim laden der seite?

es soll fluxus … (ähnlich, wie ein ‚langsamer dauerhafter chat‘)

  • was vom besucher in die textarea eingetippt wird stehen bleiben bis der nächste besucher es überschreibt
    außerdem wär’ - wenn’s dann mal überhaupt funktioniert - beabsichtigt …
  • wenn textarea vollgeschrieben is’, am anfang zeichen gelöscht werden für jedes am ende neu eingetippte zeichen (oder wort)
  • wenn möglich (?) das ganze - wie gesagt - ohne abschicken-submit-button und ohne input „Text“-zeile mit abschicken-button, nur alles aus der textarea …

es muß also - damit’s überhaupt schonmal funktioniert - der inhalt der textarea von perl in flux.dat eingelesen und beim nächsten laden als value="" wieder hergegeben werden (ggf per javascript?).
hilfreich könnte noch sein, daß textarea im iframe liegt, also mit erreicht werden kann …

was ich nun wissen will, is’, ob das überhaupt geht, ob es mit javascript oder sogar ohne geht ( an textarea ausgegeben werden kann mit perl allein’ zB mit method=post) ?
… oder mit BEGIN und END zur laufzeit (während der besucher-eingabe) eingegriffen werden kann ?
… dann, ob überhaupt bzw wieder mit javascript oder mit perl die länge des besucher-eingabetextes auf die größe der textarea begrenzt werden kann … ob mit perl oder javascript-hilfe während der besucher am ende der textarea weiter eintippt, am anfang zeichen oder wörter gelöscht werden können ?
… dann ob es ohne button geht zB mit onLoad und onUnload ?

ihr seht, ich bin völlig durcheinander … soll ich mit dem oben ‚rumprobieren, bisses geht, soll ich mich auf javascript konzentrieren oder genügt perl? wo soll ich weiter lernen?
muß ich mir das aus dem kopf schlagen, zwischen textarea und zu kommunizieren?
oder wo soll ich anfangen, um irgendein funktionierendes uploadbares ergebnis zu kriegen, überhaupt mal eine besucher-eingabe, die stehen bleibt bis zum nächsten besucher, zum nächsten laden ?
habt ihr irgendein Schlüsselwort entdeckt, mit dem alles funktionieren würde (, onLoad/-onUnload, target, value …) ?
… soll ich ein perl chat-programm studieren ?
… wenn ich nur schon weiß‘, daß es geht, dann lern’ ich nich’ umsonst …
wo fang’ ich am besten an ?

danke schomma’
rohundertneunzig

nochmal kurz
nochmal was kürzer:

standardmäßig schickt offenbar den inhalt des gesamten formulars an dies wiederum an …

diesen ablauf will ich irgendwie unterwandern, so daß statt mit ‚nem button irgendwie zB mit javascript onUnload () der inhalt der textarea an *.pl geschickt wird.
… das wär‘ dann schonmal 'ne besucher-eingabe, die stehen bleibt bis zum nächsten laden.

… dann soll aber vor allem der vom besucher eingegebene text (in die textarea) nich’ größer werden, als die textarea selbst, also begrenzt werden …

geht das alles alleine mit html und perl, oder muß da javascript mithelfen?

liebe ich-weiß-wassler!

das hier könnte auch in javascript oder programmieren
allgemein stehen, da wahrscheinlich es html cgi javascript (?)
und perl betrifft

bitte keinen quelltext und keine lösung schicken, sondern nur
mir sagen, in welche richtung ich weiter lernen muß, was ich
überhaupt brauche für mein „fluxus“ … und ob das überhaupt
geht, was ich vorhab’ … bzw wie nich’

Ist klar

… noch in der planung häng’ ich schon ganz übel:
hier ersma’, wie weit ich erst bin:
is’ - weiß’ ich - noch falsch, aber …
… vielleicht kann man schon sehen, was ich machen will …

Also ein Browser gesteuertes system

hier ‚reintippen … (und „enter“ hauen - logo)
bleibt für folgende besucher bisses überschrieben wird …
(funkst noch nich‘ … muß erst perl lernen :open_mouth:| )

oder ;

oder print $flux_dat $flux_in;

close(DATA);

onunload.pl
#/usr/cgi-bin/perl
use strict;
open (DATA, " $flux_dat;
close(DATA);

Da frag ich mich schon wie das wird wenn 2 gleichzeitig die Seite öffnen und nun schreiben und dann die seite verlassen.
Welcher Text bleibt dann wo ??

… es geht nun nich’ darum was im einzelnen (alles) falsch
gecodet is’, sondern, ob das überhaupt geht, aus 'ner textarea
mit vereinten kräften von perl und javascript als
zu lesen beim verlassen von html-seite und zu
schreiben (nach value="") beim laden der seite?

es soll fluxus … (ähnlich, wie ein ‚langsamer dauerhafter
chat‘)

  • was vom besucher in die textarea eingetippt wird stehen
    bleiben bis der nächste besucher es überschreibt
    außerdem wär’ - wenn’s dann mal überhaupt funktioniert -
    beabsichtigt …
  • wenn textarea vollgeschrieben is’, am anfang zeichen
    gelöscht werden für jedes am ende neu eingetippte zeichen
    (oder wort)
  • wenn möglich (?) das ganze - wie gesagt - ohne
    abschicken-submit-button und ohne input „Text“-zeile mit
    abschicken-button, nur alles aus der textarea …

es muß also - damit’s überhaupt schonmal funktioniert - der
inhalt der textarea von perl in flux.dat eingelesen und beim
nächsten laden als value="" wieder hergegeben werden (ggf per
javascript?).
hilfreich könnte noch sein, daß textarea im iframe liegt, also
mit erreicht werden kann …

was ich nun wissen will, is’, ob das überhaupt geht, ob es mit
javascript oder sogar ohne geht ( an textarea
ausgegeben werden kann mit perl allein’ zB mit method=post)
?
… oder mit BEGIN und END zur laufzeit (während der
besucher-eingabe) eingegriffen werden kann ?
… dann, ob überhaupt bzw wieder mit javascript oder mit perl
die länge des besucher-eingabetextes auf die größe der
textarea begrenzt werden kann … ob mit perl oder
javascript-hilfe während der besucher am ende der textarea
weiter eintippt, am anfang zeichen oder wörter gelöscht werden
können ?
… dann ob es ohne button geht zB mit onLoad und onUnload ?

ihr seht, ich bin völlig durcheinander … soll ich mit dem
oben ‚rumprobieren, bisses geht, soll ich mich auf javascript
konzentrieren oder genügt perl? wo soll ich weiter lernen?
muß ich mir das aus dem kopf schlagen, zwischen textarea und
zu kommunizieren?
oder wo soll ich anfangen, um irgendein funktionierendes
uploadbares ergebnis zu kriegen, überhaupt mal eine
besucher-eingabe, die stehen bleibt bis zum nächsten besucher,
zum nächsten laden ?
habt ihr irgendein Schlüsselwort entdeckt, mit dem alles
funktionieren würde (, onLoad/-onUnload, target,
value …) ?
… soll ich ein perl chat-programm studieren ?
… wenn ich nur schon weiß‘, daß es geht, dann lern’ ich nich’
umsonst …
wo fang’ ich am besten an ?

Jo schau Dir unbedingt an wie ein Chat cgi abläuft, und dann noch wer wann wo wie was schreiben bzw sehen tut.

Ich denke mal nicht das OnDemand nach jedem tastenklick die Daten an alle anderen user geschickt werden können (mit einer unmerklichen zeitverzögerung), das geht eher im IRC modus.

Und bei einer Datei, müsste die Datei gesperrt werden bis der aktuelle Bearbeiter seine Infos geschickt hat, wie oben überschreiben sie sich sonst alle .

Das problem sehe ich eher in der Statless problematik des http protokolls.
Wie gesgt besser ist ein IRC , das tut so ungefär das was du willst :smile:

Also ein Browser gesteuertes system

… äh …ja.

Da frag ich mich schon wie das wird wenn 2 gleichzeitig die
Seite öffnen und nun schreiben und dann die seite verlassen.
Welcher Text bleibt dann wo ??

soll der, der zuletzt die seite verläßt, . euh … , daß sein eingetippter text ausgelesen und in flux.dat gesüpeichert wird.
… müßte sowieso, wenn flux.pl bzw onunload.pl nur einmal der perl-interpreter gestartet werden, oder? - oder halt’, der text von dem besucher, der zuerst perl-interpreter anruft, also der erste, der die seite wieder verläßt … wer danach tippt kriegt ers’ gar kein cgi kontakt … ?
hauptsache, es tippt irgendwie was von den besuchern, ersma’ …

Jo schau Dir unbedingt an wie ein Chat cgi abläuft, und dann
noch wer wann wo wie was schreiben bzw sehen tut.

ok, muß wohl sein … (weiß auch schon, wo … perl.com oder so, hab’ ich schon tutSe und beispiele available gesehen zu dem thema)

Ich denke mal nicht das OnDemand nach jedem tastenklick die
Daten an alle anderen user geschickt werden können (mit einer
unmerklichen zeitverzögerung), das geht eher im IRC modus.

… muß gar nich’ in echtzeit sein … is’ eher ‚ne - bis jetzt - wenig besuchte seite http://www.zedoor.de , und soviele werden da nich‘ gleichzeitig um die wette tippen, … is’ nur als 'n neckisches feature gedacht, … 'ne rubrik neben vieln anderen …

Und bei einer Datei, müsste die Datei gesperrt werden bis der
aktuelle Bearbeiter seine Infos geschickt hat, wie oben
überschreiben sie sich sonst alle .

dito.

Das problem sehe ich eher in der Statless problematik des http
protokolls.
Wie gesgt besser ist ein IRC , das tut so ungefär das was du
willst :smile:

*uirgks* … wieder was neues, jetz’ noch - kaum kann ich perl grundbegriffe - IRC - kram lernen? … muß das sein? … geht das nich’ ohne, nach dem oben geschilderten?

Hallo,

Da frag ich mich schon wie das wird wenn 2 gleichzeitig die
Seite öffnen und nun schreiben und dann die seite verlassen.
Welcher Text bleibt dann wo ??

soll der, der zuletzt die seite verläßt, . euh … , daß sein
eingetippter text ausgelesen und in flux.dat gesüpeichert
wird.

Hä? Probier doch mal, dich in etwas verständlicherem Deutsch auszudrücken.

… müßte sowieso, wenn flux.pl bzw onunload.pl nur einmal der
perl-interpreter gestartet werden, oder? - oder halt’, der
text von dem besucher, der zuerst perl-interpreter anruft,
also der erste, der die seite wieder verläßt … wer danach
tippt kriegt ers’ gar kein cgi kontakt … ?

Nein, der Webserver startet so viele Skripte, wie benötigt.
Das Problem ist folgendes:

User1 ruft die Seite auf
User2 ruft die Seite auf
User1 und User2 schreiben gleichzeitig etwas in die Textbox
User1 verlässt die Seite, sein neuer Inhalt wird auf dem Server gespeichert
User2 verlässt die Seite, sein neuer Inhalt überschreibt auf dem Server die Änderungen von User1
User1 kommt zurück, und fühlt sich verarscht, dass seine Änderungen verschwunden sind.

Das problem sehe ich eher in der Statless problematik des http
protokolls.
Wie gesgt besser ist ein IRC , das tut so ungefär das was du
willst :smile:

*uirgks* … wieder was neues, jetz’ noch - kaum kann ich perl
grundbegriffe - IRC - kram lernen? … muß das sein? … geht
das nich’ ohne, nach dem oben geschilderten?

Dich zwingt keiner :wink:.
HTTP hat das Problem, dass es keine dauerhafte Verbindung zwischen Server und Client gibt, deswegen ist es so schwer, einen guten Chat im Webbrowser ohne Java zu schreiben.

IRC auf der anderen Seite ist ein ganz anderes Protokoll und für Chats geeignet (weil dafür geschrieben).

Grüße,
Moritz

Hallo

standardmäßig schickt offenbar
den inhalt des gesamten formulars an dies wiederum an …

diesen ablauf will ich irgendwie unterwandern, so daß statt
mit ‚nem button irgendwie zB mit javascript onUnload ()
der inhalt der textarea an *.pl geschickt wird.
… das wär‘ dann schonmal 'ne besucher-eingabe, die stehen
bleibt bis zum nächsten laden.

… dann soll aber vor allem der vom besucher eingegebene text
(in die textarea) nich’ größer werden, als die textarea
selbst, also begrenzt werden …

geht das alles alleine mit html und perl, oder muß da
javascript mithelfen?

Geht nur mit Javascript, da ohne „komplett reload“ der
Seite.

  1. Seite/Formular lädt
  2. Javascript wird aktiviert und erhält die Kontrolle
  3. Benutzer schreibt was
  4. Javascript sendet Inhalt Textfeld an //server/empfaenger.pl
  5. //server/empfaenger.pl antwortet mit einem schlauen Spruch
  6. Javascript blendet Spruch auf der Webseite „ohne Reload“ ein

google: „asynchronous http request“
(http://www.linuxjournal.com/article/9295)

Grüße

CMБ

Hä? Probier doch mal, dich in etwas verständlicherem Deutsch
auszudrücken.

&

User1 kommt zurück, und fühlt sich verarscht, dass seine
Änderungen verschwunden sind.

dasja grad der sinn von "fluxus … wer zuletzt oder frisch 'reinschreibt, dessen text bleibt stehe bis zum nächsten laden un sogar bis zum nächsten überschreiben.
man schreibt was 'rein und es bleibt stehen unter der bedingung, daß keiner es überschreibt, bleibt es stehen, sonst ist es eben „fluxus“ … gone with the wind … wenn’s wirklich sooooooo wichtig war und - was unwahrscheinlich ist - es gleichzeitig überschrieben wurde, muß er’s eben niochmal ‚reinschreiben …
was aber quatsch is‘, weil, wenn’s wirklich was wichtiges war , geht’s an meine email oder er sucht sich 'n forum zu seinem theme, wo alles sowieso stehen bleibt.

Dich zwingt keiner :wink:.
HTTP hat das Problem, dass es keine dauerhafte Verbindung
zwischen Server und Client gibt, deswegen ist es so schwer,
einen guten Chat im Webbrowser ohne Java zu schreiben.

IRC auf der anderen Seite ist ein ganz anderes Protokoll und
für Chats geeignet (weil dafür geschrieben).

komm ich wohl nich’ drumrum.

Grüße,
Moritz

Hallo,

dasja grad der sinn von "fluxus … wer zuletzt oder frisch
'reinschreibt, dessen text bleibt stehe bis zum nächsten laden
un sogar bis zum nächsten überschreiben.

Also ein Wiki, kein Chat. Sag das doch gleich :wink:

Moritz

ok … WIKI! [sonst kein text]
[kein text]

endlich ‚ne brauchbare antwort!
… kommt mir zwar ziemlich antarktisch vor … aber genauso werd‘ ich weiterlernen …
(ahne ungefähr, worum’s geht -> javascript (wohl onLoad() und onUnload() )in irgend’n tag - wahrscheinlich , egal … das krieg ich ‚raus -> dann … damit perl oder *.pl aufrufen und … naja, mal sehn‘ … muß ich mir morgen näher angucken und ausprobieren … )

danke auf jeden fall schonmal!

wie geht’s weiter?
hi,
was der letzte besucher in eine html-textarea tippt, soll darin stehenbleiben (auch nach neuladen) bisses wieder überschrieben wird.
soweit hab’ ich mich jetz’ durchgebissen:

zum schreiben:
javascript schickt dazu per
…javascript… function AbGehts() { document.forms[0].submit(); }
den inhalt des formulars (den inhalt des einzigen elements textarea) an perl onunload.pl
…html…

perl schreibt den übermittelten inhalt der textarea in datei flux.dat
…perl… #!usr/cgi-bin/perl
… use strict;
… my $writeflux = $ENV{‚QUERY_STRING‘};
… . my $filename = ‚flux.dat‘;
… . open my $outh, ‚>‘, $filename;
… … print $outh $writeflux;
… … close $outh;
diese konstruktion krieg ich nich’ durch … error: premature end of script.
auch
…html… method=post
…+perl… read(STDIN, my $writeflux, $ENV{‚CONTENT_LENGTH‘});
ändern daran nix.
die 3 beteiligten dateien sind fluxus.html, cgi-bin/onunload.pl und (nur daten) cgi-bin/flux.dat
selbstverständlich sind alle dateirechte 755 im ordner cgi-bin.

was issn’ daran falsch? … könnt ihr den/die fehler entdecken? wieso krieg ich error?

soviel zum schreiben …
dann tauchen beim lesen von flux.dat beim laden einige probleme auf:

  • bzw … funksen schomma gar nich’.
  • … geht nich’ weil’s als string in der textarea erscheint
    bin dann dazu übergegangen, die textarea, dann das ganze formular von perl schreiben zu lassen und $readflux (ausflux.dat nunmehr gelesen)
    einzubauen …
    …perl… print „$readflux“;
    bzw dito mit … usw., sogar javascript-bereiche mitge’perlt’, und den entsprechenden code in fluxus.html wegzulassen.
    das jedoch liefert javascript fehlermeldungen, weil document.forms nich’ mehr gefunden wird.
    hier is’ (statt onunload.pl oben) onload.pl zum einlesen aus flux.dat beteiligt.
    hier das ganze perl für’s schreiben in die textarea beim laden:

#!/usr/cgi-bin/perl
use strict;
my $filename = ‚flux.dat‘;
open my $inh, ';
close $inh;
print „Content-type: text/html\n\n“;
print „$readflux“;

  • wie gesagt - ähnlich mit form und ganzem body-inhalt versucht …
    und document.forms.elements.value hilft auch nich’ weiter, weil value immer als string gelesen wird und nich’ als quelle, url, src, location, pfad von cgi-bin/flux.txt
    (statt flux.dat dann halt) abgeholt werden kann.

muß ich nun die komplette html-datei perlen?
oder onload.pl mit 'ner javascript function aufrufen und nur $readflux abholen?
oder muß ich $readflux irgendwie ins javascript-objekt document.forms.elements.value einlesen?

wie geht’s weiter?
ich weiß überhaupt nich’, ob ich knapp an der lösung dran bin, oder der ganze ansatz falsch is’ …

Hallo,

diese konstruktion krieg ich nich’ durch … error: premature
end of script.

Das deutet darauf hin, dass entweder

  1. du keinen Content-Type-Header gesendet hast oder
  2. ein Fehler beim ausführen aufgetreten ist.

Gegen 1) kannst du dich mit

print "Content-Type: text/html; charset=utf-8\n\n"

absichern. Bzgl. 2) empfehle ich, am Anfang die Zeile

use CGI::Carp qw(fatalsToBrowser);

einzufügen.

Grüße,
Moritz

das war’s nich’
… ah! … danke!

… aber ich glaub’, das war’s nich’ …
den content-type hab’ ich 'drin … zwar ohne utf-8, aber mein counter funkst auch ohne … und auch ohne die andere zeile pw(dings).

im augenblick - hab’ zuletzt nur noch die textarea von perl printen lassen mit meinem $readflux drin, entsprechend im html-form-tag

-im augenblick isses so, daß kein error kommt, aber kein dokument geladen wird (fluxus.html in seinem iframe) aber der vorige hintergrund verschwindet noch, dann bleibt’s einfach stehen und zeigt in der statusleiste ‚fertig‘ an.
erst beim verlassen der seite (beim anklicken eines links - nich’ beim browser-fenster schließen) kommt windows-javascript-error-popup mit zeile soundso document.forms kann nicht gefunden werden oder is’ kein objekt.
wegen meiner konstruktion eben, mein forms „fluxform“ wird eben erst von perl geprinted, wie beschrieben …
und wenn ich’s anders mach’ geht gar nix …

drei kleine korrekturen
…perl… print „$readflux“;
heißt
…perl… print „$readflux“;

der html-code steht natürlich in fluxus. s html (wg SSI #exec )

und im perl-debugger ham auch onload.pl und onunload.pl beide „ok“