hallo ihr da draussen.
ja, ich bins mal wieder. der kleine php anfänger der keine ahnung von nichts hat und deshalb eure professionelle hilfe braucht
also, dieses mal bräuchte ich jemanden der mir bei der rohfassung eines bestimmten scripts hilft. das script ist dazu gedacht, dass user durch die eingabe von informationen in textfeldern, diese in form von TXT dateien auf dem server speichern. das wäre ja an und für sich noch kein problem für mich. allerdings ist es ein problem was mit diesen passieren soll.
aber vorher noch kurz zum hintergrund.
eine freundin von mir ist nun in der abschlussklasse und möchte gerne, dass jedes klassenmitglied infos wie name, adresse, telefonnr. und email in einem geschützen bereich auf der klassenHP speichert. jetzt kann es aber sein, dass sich die infos im laufe der zeit ändern, und daher aktualisiert werden müssen. und zwar sollen diese gleich auf der website editierbar sein.
Also, ich hab mir das ganze so vorgestellt:
auf der hauptsite stehen von allen die infos, gegliedert nach name, adresse, tel.nr. und email, wobei darunter ein link namens "ändern" stehen soll.
wenn der user jetzt also auf ändern drückt, soll er zu einer eingabe site gelangen, wo die bisherig eingegebenen infos in textfelder stehen und dort erneut eingegeben werden können. ist der user mit dem ändern fertig, braucht er lediglich auf speichern klicken und die bisherigen infos aus den TXT dateien werden mit den aktuellen überschrieben. ausserdem, sollen die infos aus der TXT datei nun aktualisiert auf der hauptsite sichtbar sein.
ich hoffe ihr könnt euch darunter was vorstellen. übrigens, jeder user kann jeden eintrag auf der hauptsite editieren, es sind also keine sicherheitssachen notwendig.
wäre toll wenn mir da jemand unter die arme greifen könnte. wie gesagt, es muss jetzt nix mega dramatisches sein, es soll lediglich den recht simplen zweck erfüllen.
greets,
[JLA]
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.
Da du sagst, der erste Teil (das einfache Abspeichern) sei für dich kein Problem, gebe ich dir einfach mal einen Tipp für das Ersetzen: preg_replace.
Angenommen, du speicherst die Daten in der Textdatei in der Form
Dann muss man davon ausgehen, dass der Name sich nicht ändern kann, sonst musst du ein weiteres Feld wie "ID" hinzufügen
Das Auslesen der Daten mit file() und explode() sollte auch kein Problem darstellen. Bleibt also noch das Schreiben der Änderungen.
Keine Garantie auf gar nichts.
also hier mal das was ich in der lage war zu machen. Das hier ist der Eintrag für Max Mustermann.
die eingabefelder:
die eingegebenen daten werden dann in das reunion_inlcude.php-script geschickt:
die daten werden jetzt in der txt datei namens "max_mustermann.txt" gespeichert.
jetzt fehlt mir aber noch ein weg wie ich den inhalt der datei auslesen bzw. auf der hauptsite anzeigen kann und wie dieser editiert werden kann...
THX
[JLA]
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.
In diesem fall würde ich zwar sagen .txt reicht aus ,
aber weil ich mich sowieso gerade mit XML und PHP befasse warum nett XML ^.-
Eine Datei für die Daten könnte wie folgt aussehn :
Der Parser würde dann in etwa so aussehn :
Das ist jetzt bis dato nur ne anregung bzw. ne idee von mir , wenn es dir gefällt kann ich gerne versuchen das ganze mit XML zu realisieren (auch wenn es woll so ist als wenn ich für ein helloworld gleich brainfuck nutzen würde xD)
Mal davon abgesehen, dass_wesentlich_ sinnvoller wäre, warum XML? Das macht nur unnötigen Overhead (In deinem Beispiel ist der Overhead fast genauso groß wie die Daten. O_o) und erschwert das parsen. Für so simple Sachen sind Flatfiles wesentlich besser geeignet.
Und wenn man unbedingt eine coole Sprache zum Datenspeichern haben will, rate ich zu YAML. Mit SPYC gibts dafür auch eine sehr nette PHP-Implementation.
Das sähe dann übrigens in etwa so aus:Wer sagt, dass die XML-Version schöner ist, ist ein Idiot. ;)
P.S.: Und sollte man doch unbedingt auf XML bestehen, warum nicht existierende Standards benutzen?
äh, ich bin ja echt dankbar für all eure vorschläge, aber irgendwie (wie üblich) bin ich mal wieder verwirrt
kann ich XML problemlos auf jedem server ausführen oder ist dafür auch wieder ein spezielle config seitens des servers notwendig?
es sind übrigens 32 leute von denen die daten gespeichert werden müssen, und ich möchte (sofern möglich) nicht unbedingt für jeden ein eigenes script haben müssen bzw. die daten aller möglichst in einer txt datei speichern...
wäre toll wenn ihr mir da auf PHP basis ein bisschen unter die arme greifen könntet.
merci,
[JLA]
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.
äh, ich bin ja echt dankbar für all eure vorschläge, aber irgendwie (wie üblich) bin ich mal wieder verwirrt
...
Passiert. Besonders im Programmiergenre häufiger.
Zitat
kann ich XML problemlos auf jedem server ausführen oder ist dafür auch wieder ein spezielle config seitens des servers notwendig?
...
XML kann man normalerweise überhaupt nicht ausführen, denn es ist keine Programmiersprache (In 99% aller Fälle. Es gibt verrückte Leute die eine XML als Programmiersprache verwenden. Die sind aber verrückt und man sollte nicht auf sie hören )*
In XML werden in den meisten Fällen Daten gespeichert. Und zwar in einfachen Text-Dateien. Jeder Server sollte mit Text-Dateien klar kommen. (Wenn nicht, wäre das ein __sehr__ merkwürdiger Server). XML ist nur die Strukturierung um die Daten herum. Diese Daten werden jedenfalls nicht ausgeführt sondern hauptsächlich durch andere Programme weiterverarbeitet. In deinem Fall würdest du die Daten der Menschen in XML speichern und mit PHP verarbeiten. (Wovon ich aber oben ja schon abgeraten hab und eher eine Flatfile ohne viel Markup oder YAML empfehlen würde. XML wäre einfach overflow für so eine Kleinigkeit)
Zitat
es sind übrigens 32 leute von denen die daten gespeichert werden müssen, und ich möchte (sofern möglich) nicht unbedingt für jeden ein eigenes script haben müssen bzw. die daten aller möglichst in einer txt datei speichern...
...
Kein Problem.
Zitat
wäre toll wenn ihr mir da auf PHP basis ein bisschen unter die arme greifen könntet.
...
Vorrausgesetzt du verwendest YAML und SPYC gestaltet sich das eigentlich ziemlich einfach. Nehmen wir an du speicherst deine Menschchen in der Datei menschen.yml. menschen.yml sieht dann in etwa so aus:Jetzt kannst du damit arbeiten:Fragt mich jetzt nicht, warum ich den Rest der Erklärungen in den PHP-Code gesteckt hab. Ich war zu faul den Editor zu wechseln...
HTH.
* Eine Ausnahme ist vielleicht XSLT. Das wird zwar ausgeführt, aber es ist nicht wirklich eine Programmiersprache. Und es ist nicht verrückt.
XML ist zwar keine Programmiersprache und muss deshalb nicht ausgeführt werden, allerdings basiert dadies Vorschlag auf einer PHP-Extension, die nicht zwangsläufig installiert ist (oder?).
@Dingsi: Betr: Spyc
Interessant, erstellt man bei dieser Klasse überhaupt Instanzen oder arbeitet man nur mit den Methoden?
Zitat von [JLA]Godkill
äh, ich bin ja echt dankbar für all eure vorschläge, aber irgendwie (wie üblich) bin ich mal wieder verwirrt
Passiert. Besonders im Programmiergenre häufiger.
...
rate mal wies mir jetzt geht
aaaalso, was mir hier jetzt noch unklar ist: alles!
kann jeder server mit YAML und SPYC umgehen?
wie bringe ich es jetzt zusammen dass die einzelnen informationen in meinen textfeldern bzw. als text auf der hauptsite angezeigt werden?
Es ist ja so gedacht dass wenn jemand seinen eintrag auf der hauptsite sieht und einen eintrag aktualisieren möchte, er auf den dortstehenden EDIT button drückt, und dann zu der site mit den textfeldern gelangt. in den textfeldern soll der einzelne wert schon angezeit werden und nun überschreibbar sein.
es ist eigentlich nur notwendig dass die leute ihre daten überschreiben können, weil ich sowieso schon eine liste mit den ganzen infos hab und die erstmal online stellen werd. danach muss nur die editierfunktion irgendwie hinhauen..
ausserdem, was bitteschön ist in der spyc.php datei die du includest?
greets + thx,
[JLA]
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.
Mit SPYC kann er umgehen, wenn PHP installiert ist. Mit YAML sollte er IMMER umgehen können, weil man es in einer verdammten Text-Datei speichert. >_<
Zitat
wie bringe ich es jetzt zusammen dass die einzelnen informationen in meinen textfeldern bzw. als text auf der hauptsite angezeigt werden?
...
Vorrausgesetzt du liest die Daten, wie in meinem Beispiel, in $menschen, dann brauchst du zum anzeigen nur ein echo $menschen[beliebige zahl][beliebiges attribut];. Und wenn dus in einem Textfeld willst machst du ein <input/> drum herum.
Die grundlegenden Ansätze von PHP/HTML beherrscht du schon, oder?
Zitat
ausserdem, was bitteschön ist in der spyc.php datei die du includest?
jetzt macht das ganze in meinem kopf gleich viel mehr sinn
sry, aber ich hab mich bisher nur mit ein paar einfachen PHP scripten beschäftigt, wenn mein kopf also mit sovielem neuen zeug konfrontiert wird, schaltet er sich irgendwann aus
gut, also die eingabe bzw. die abfrage ist mir jetzt klar. lediglich die art und weise wie die informationen aktualisiert werden sollen, ist mir nicht ganz klar.
ich möchte dass wenn der user auf der hauptsite auf EDIT klickt, er zu einer site kommt, wo nun die abfrage stattfindet bzw. die infos in form von textfelder angezeigt werden.
wenn er sich jetzt entschliesst seine adresse neu einzugeben, und auf speichern klickt, sollte das script einfach alle einträge (name, adresse,email,etc.) überschreiben, bzw. die werte die sich eh nicht geändert haben bleiben gleich, und der eine wert der sich geändert hat, soll überschrieben werden.
wie kommt das zu stande?
danke für die geduld
[JLA]
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.
Das hat Dingsi doch schon erklärt! o_O
Ich spring da jetzt einfach mal ein, selbst wenn ich gerade die Buchstaben YAML zum ersten Mal in dieser Reihenfolge gesehen habe. Wahrscheinlich hab' ich's auch in keiner anderen gesehen, wenn man daraus nichts Sinnvolleres als "Mail" falsch schreiben kann! o_O''
Zitat von Dingsi
...
Also du liest einfach die Textfelder aus und speicherst mit obenstehendem Befehl die Werte. Etwa so (hoffentlich o_O):
Korrekt. Man darf bloß nicht das bzw. das einfachere PHP5-Äquivalent (s. meinen vorherigen Post mit langem PHP-Block) vergessen, sonst wird nichts gespeichert.
Zitat von puttes Äffchen
Ich spring da jetzt einfach mal ein, selbst wenn ich gerade die Buchstaben YAML zum ersten Mal in dieser Reihenfolge gesehen habe. Wahrscheinlich hab' ich's auch in keiner anderen gesehen, wenn man daraus nichts Sinnvolleres als "Mail" falsch schreiben kann! o_O''
...
Schön, dass ich dir was neues beibringen konnte \o/
sooooo, also ich hab jetzt mal wieder ein bisschen gebastelt und das script funktioniert weitesgehen wunderbar. also an der stelle schon mal danke für die schwere geburt
ich hab das script minimalst abgewandelt bzw. es meinen bedürfnissen angepasst. trotzdem hab ich jetzt noch 2 probleme:
1. wie kann ich die einzelnen infos einer person abrufen? der befehl
verfehlt irgendwie seine wirkung.
ich hab vor die infos in einem textfeld anzeigen zu lassen, also zB
und die dann wieder durch den parser um den vorhandenen eintrag zu ersetzen.
mag aber nicht.
kurz zu erklärung, ich mittlerweile ein weiteres namensfeld geaddet damit ich es später bei der anzeige auf der hauptsite besser anordnen kann.
2. wie mach es dem script klar dass er möglichst absätze machen soll wenn er in die menschen.yml datei schreibt? wenn ich die datei mit notepad öffne erkennt er zwar die absätze, zeigt mir aber nur die absatzzeichen an und macht keinen... das ist irgendwie lästig.
thx,
[JLA]
p.s. hier mal das eingabefeld und der parser
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.
Erstens: Bitte, wenn du in alle deine <td>-Tags "padding: 2px;" reinschreibst, mach das doch einfach global. Also zwischen Header und Bodyeinfügen.
Zitat von [JLA]Godkill
1. wie kann ich die einzelnen infos einer person abrufen? der befehl
verfehlt irgendwie seine wirkung.
...
Weiß ich nicht, probier mal, es in einen String zu schreiben:
Aber wie gesagt, ich weiß es nicht.
Zitat
ich hab vor die infos in einem textfeld anzeigen zu lassen, also zB
und die dann wieder durch den parser um den vorhandenen eintrag zu ersetzen.
mag aber nicht.
...
Das sieht dann in der HTML-Ausgabe so aus:
Ergo: wenn du's einfach nur so in den <input>-Tag schreibst, kann's ja garnicht klappen. So wär's afaik richtig:
Aber bestimmt kommt gleich ohnehin jemand und sagt, dass mind. die Hälfte meines Geschreibsels Blödsinn ist. Aber probier's halt mal. Und meinen ersten Tipp kannst du auf jeden Fall umsetzten!
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Geändert von drunken monkey (13.05.2006 um 17:33 Uhr)
Aber bestimmt kommt gleich ohnehin jemand und sagt, dass mind. die Hälfte meines Geschreibsels Blödsinn ist.
...
äh, du hast dir aber schon meine post auch mal durchgelesen, oder?
also ich wette du hast noch eher nen plan was du tust
bzgl. <td>
stimmt, das müsst ich dann in mein stylesheet hauen, aber da ich noch mehrer <td>'s hab die nicht mit 2px gepaddet gehören, lass ich es lieber so stehen. ich seh halt lieber direkt was los is bevor ich mir in meiner source alles von überall zusammensuchen muss... wie heisst so schön: Chaos ist die Wonne der Fantasie
EDIT:
toll, hab grad einen größeren bug gefunden.
sobald ich mehrere personen in meiner menschen.yml datei stehen hab, und ich möchte zb person 1 etwas ändern, und speichere das, werden alle personen in der datei gelöscht und es gibt nur noch einen eintrag mit den daten die ich zuvor gespeichert hab...
ums kurz zu machen: es gibt im parser keine genaue definition davon wer welche person ist, bzw. es wird in der menschen.yml datei nicht gegliedert.
kennt da jemand abhilfe?
thx
--
The problem with America is stupidity.
I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself?
----
Arguing with the moderators is like shaking your fist at God. There's nobody there; and if there is, he's not listening. And if he's listening, all you're doing is pissing him off.