Also, ich hab auf meiner HP im Admin-Bereich ein kleines Script gebastelt welches es mir ermöglicht den Inhalt einer TXT-Datei in einem Textfeld anzeigen zu lassen und ihn auch gleich zu editíeren und zu speichern.
Das Script sieht so aus:
Ich brauch das so wiel meine zB meine News in eine TXT-Datei geschrieben werden und dann auf der Hauptsite via php include dort eingefügt werden.
Jetzt ist es aber so, dass ich dieses Prinzip auch bei meinem Gästebuch und diversen anderen Scripten verwende.
Also hab ich mir gedacht bevor ich jetzt dieses Editor Script 10mal kopiere und dabei immer nur 2 Einträge im Script abändere, würde ich das ganze gern als PHP Script so basteln, dass ich mir aussuchen kann welches Script ich editieren will.
Das ganze soll so aussehen: Zuerst erschein ein Textfeld wo man via Scroll-Down-Menu auswählen kann was man jetzt editieren will (zB News, Guestbook, etc.). Dieser Text ("News" od. "Guestbook") wird dann als Variabel in den 2 editer-notwendigen Stellen eingefügt und schon öffnet sich die Textdatei aus einem anderen Ordner.
Ich will das ganze nochmal näher erklären.
Die Textdateien mit dem HTML Inhalt befinden sich alle im "Scripts" und dann in einem gleichnamigen Unterordner.
zB. die Guestbook Datei befindet sich in
"scripts/guestbook/index_guestbook.txt"
die News Datei befindet sich in
"scripts/news/index_news.txt"
usw.
Das einzige was diese beiden Pfade also unterscheidet ist der Unterordnername und der Namer der TXT-Datei... na, klingelts?
Wenn ich jetzt diese beiden namen als Variablen einfügen lasse, kann ich auf einen Streich zwischen allen Ordnern und Dateien wählen und das mit nur einem Script.
Jetzt aber zu meinem Problem: Ich hab keine Ahnung wie ich das alles anstellen soll
Da ich mit der Übergabe von Variablen keine Ahnung habe, bettel ich also mal wieder um die Hilfer der Community.
Wäre toll wenn ihr mir da ein paar Umsetzungsvorschläge machen könntet
Thx alot,
A2k
EDIT:
So, hab mich jetzt noch ein bisschen gespielt und mal eine kleine methaphorische Skizze angefertigt.
--
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.
Du machst ein Formular mit einem Dropdownfeld.
Wenn du dieses Formular absendest wird die Adresse um bearbeitung.php?auswahl=(value des ausgewählten <option>) erweitert.
Diese Variable ist innerhalb von PHP als $_GET['auswahl'] verfügbar.
Damit passt du die Pfade an:
Warum hast du in deiner Bearbeitung \" geschrieben, obwohl sich der Text nicht innerhalb eines PHP Blockes befindet?
Tja, schaut irgendwie schöner aus
nein, hab mal wieder Suchen und Ersetzen sich austoben lassen.... hab grad mal nicht geschaut was abgeht da ich langsam müde werd.
Tja, so liebend gern ich auch mit Mysql arbeiten würde, ich hab leider nur eine Datenbank frei und die is momentan belegt.
Ausserdem "muss" dieses Script leider so funktionieren bzw. aufgebaut sein wie ich das vorher geschildert hab.
Ob ich jetzt die Auswahlzeile via DropDown oder Texteingabe mache ist komplett egal, einzig und allein die Variablen-Übergabe ist mir ein Dorn im Auge.
--
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.
Schlaf dich bitte auf und fang das ganze nochmal neu an. Das ist ein großes Chaos in deinem Skript und wenn du übermüdet daran rumwerkelst hilft dir das nicht.
So lange du etwas entwickelst solltest du die Fehleranzeige bei E_ALL belassen!
Warum machst du auch immer $variable_xyz = $_POST['sowieso'];? Das ist doch unnötig und führt bei deinem schlechten Stil zu Fehlern.
Lerne, deine Quelltexte einzurücken, ich kann dir nicht helfen, wenn ich erst zig if/else Verschachtelungen zuordnen muss.
Vermeide Redundante Angaben. <body> und </body> müssen nicht mehrfach vorkommen.
kannst du auch weglassen, da es nur bei Dateiuploads relevant ist, nicht bei Texteingaben.
Warum machst du es auch nicht wie ich es dir sage?
Innerhalb von ' und ' werden Variablen nicht durch ihren Inhalt ersetzt, daher verbindet man sie mit Punkten:
Anders ist es schlechter Stil.
Nachdem das gesagt wurde hier ein unüberprüfter, aber gut korrigierter Quelltext.
Wie war das mit dem "schlechten Stil"? Ausserdem sind die Dateien im "scripts" Ordner. Also:Ausserdem funzt das ganze so überhaupt nicht.
Erstmal ist da eine else Verzweigung drin, die sich auf gar kein if bezieht, den blockKönnen wir also erstmal ganz rausschmeissen.
Ausserdem hat die Datei-Auswahl-Form ein seeehr merkwürdigen action tag. Warum willst du den da was mit Get dranhängen? Die schickst die variablen doch per submit button ab! Dazu muss aber auch das select Feld den richtigen Namen haben. Auch solltest du drauf achten, wann du welches Tag schließt. Wenn du erst das Formular öffnest, und dann eine Tabelle machst, solltest du auch erst die Tabelle beenden, und dann das Formular. Des weiteren beendet die else schleife die ausgabe bevor die
Tabelle geschlossen ist.. Alles etwas durcheinander. Insgesamt also:Befolge Mitaki's Rat und benutz Einrückungen, sonst blivkste da garnicht mehr durch!
Ein letztes ist, das wenn man den geänderten text speichern will, er wieder zur Auswahl springt, da die $script_name Variable nicht wieder mit übergeben wird. Das habe ich durch ein hidden Feld gelöst.
Nun der funzende Code: (mitaki hat sicher noch ein paar verbesserungsvorschläge! *XD*)
Geändert von Lucleonhart (27.10.2006 um 13:51 Uhr)
Wie war das mit dem "schlechten Stil"? Ausserdem sind die Dateien im "scripts" Ordner.
...
Errare Humanum Est. Wie ich sagte, eine unüberprüfte, gute, wenn auch fehlerhafte Korrektur. Es sieht besser aus als vorher.
Bevor du aber mit mir über schlecten Stil diskutierst, beende deinen AJAX Test
Zitat
Erstmal ist da eine else Verzweigung drin, die sich auf gar kein if bezieht, den block
...
Da hast du ausnahmsweise recht.
Zitat
Ausserdem hat die Datei-Auswahl-Form ein seeehr merkwürdigen action tag.
...
Zur information: URI Parameter im Action Tag sind bei der post-Methode erlaubt. Nur bei der get-Methode werden die nativen Angaben überschrieben. Dann ist ein hidden-Feld sinnvoll.
Zitat
Wenn du erst das Formular öffnest, und dann eine Tabelle machst, solltest du auch erst die Tabelle beenden, und dann das Formular. Des weiteren beendet die else schleife die ausgabe bevor die
...
Ich hoffe das geht eher in Richtung Armitage, auch wenn ich zugene, fad erste <form> aus der Tabelle herausgenommen zu haben.
Zitat
mitaki hat sicher noch ein paar verbesserungsvorschläge!
...
Naja, ich muss Armitage ans Herz legen, sich genauer mit PHP zu beschäftigen. Dieses halbwissen, das man immer wieder in Foren dieser Art antrifft ist eine furchtbare Sache.
Ich habe hier ja auch meinen Thread mit zahlreichen Verweise, die wirklich sinnvoll sind. Aber leider nehmen sich die wenigsten Zeit dazu.
Sollte 1. aus konformitätsgründen ebenfalls innerhalb einer Tabellenzelle vorkommen.
2. so aussehen:
type="button", da man es ja nicht nochmal abschicken möchte. onclick kleingeschrieben, weil wir XHTML verwenden (auch wenn es Tagsoup ist).
Und das javascript: dazu.
Da Inlinescripte verwendet werden ist auch eine <meta /> Angabe notwendig:
Geändert von mitaki (27.10.2006 um 13:18 Uhr)
Grund: Neubearbeitung
@ Samogas: Ach ja.. *räusper* php4 auf meinem Webspace.. Vergessen wir das ganz schnell! ^^
@ Mitaki: Des Close Buttonschen hab ich wohl übersehen. *g* Als es mit dem bearbeiten geklappt hat, hab ich dem Button keine Beachtung mehr geschenkt.
Das man beim action tag etwas per GET anhängen kann iss klar, nur hat es in diesem fall nichts gebracht, weil die Formular Variable selbst angehängt werden sollte.. daher..
Und wieso ist das Halbwissen furchtbar?! Bist du etwa von 0% auf 100% gesprungen in deinem Wissen?
"Das glaub ich nicht, Tim".
Wenn wir kein Halbwissen hätten, wäre dieses Forum wohl nutzlos.
Nein, vielleicht sollte ich es auch eher als halbgares Wissen bezeichnen.
Und sowas einfaches wie die Variablenverkettung (auch wenn der Begriff anderes implizieren mag) findet man doch in jedem Tutorial, allem voran im Handbuch auf den ersten Seiten.
Ich meine es ja nicht böse, falls das so rüberkommen sollte. Aber ich bin eben der Meinung, dass man die Grundlagen kennen sollte, damit man auch mit Lösungsvorschlägen umgehen kann, anstatt erklären zu müssen wo jeder Punkt und jedes Komma gesetzt werden muss.
so schwer ich mirs auch eingestehen kann, aber du hast leider vollkommen recht. ich bin nun mal ein niete in sachen php und ich hab nun mal leider nicht die zeit mich da jetzt in jedes kapitel reinzuknien. Mein HTML-Wissen is ja nicht schlecht, da kann ich mir bei so ziemlich jeden problem helfen, aber wenns dann an sachen wie PHP geht, wo jedes komma und semikolon wichtig ist, da hab ich einerseits nicht die geduld und vorallem nicht die zeit jetzt stunden mit debuggen zu verbringen damit ein dummes kleines script funktioniert.
sicher, ohne ein handbuch gelesen zu haben und sich eine zeitlang mit der materie zu beschäftigen ist es verdammt schwer in PHP was auf die beine zu stellen, aber da dieses ganze websiten-ding sowieso bei mir nur die wichtigkeit eines hobbys hat, beschäftige ich mich mit den simpleren dingen die man realtiv leicht selber lernen kann.
und nur nebenbei, ich wachse mit jedem beispiel dass ihr mir erklärt, denn glaubt es oder nicht, aber ich versuch eure ratschläge zu kapieren und sie dann in meinen schädel zu bekommen
Trotzdem, vielen lieben dank an alle die mir (mal wieder) geholfen haben so ein kleines PHP-Wunder zum laufen zu bringen.
Greets,
A2k
--
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.
Ich weiß, die Grenzen zwischen Hobby und Arbeit sind in diesem Bereich sehr fließend.
Das Manual mag dazu etwas zu groß sein, aber wenn du mal Zeit hast sieh dir doch eines der Tutorials in meinem Thread an. Die meisten sind in Kapitel eingeteilt, von daher kannst du mal Blättern
Zitat
und nur nebenbei, ich wachse mit jedem beispiel dass ihr mir erklärt, denn glaubt es oder nicht, aber ich versuch eure ratschläge zu kapieren und sie dann in meinen schädel zu bekommen
...
Gut zu wissen
Zitat
Trotzdem, vielen lieben dank an alle die mir (mal wieder) geholfen haben so ein kleines PHP-Wunder zum laufen zu bringen.
Ich hab grad probiert das ganze Script auf die .php Dateien in meinem /pub/ Ordner anzuwenden. Die .php Dateien können auch ohne Probleme geöffnet werden, aber ich kann sie leider nicht bearbeiten. Zuerst hab ich gedacht es liegt daran dass die Dateien keine Schreibrechte haben (CHMOD 777), aber als ich dann noch die Fehlermeldung
bekommen hab, wurde ich doch ein bisschen verwirrt.
Hab das dann mal im PHP Manual nachgeschlagen, doch darauch werd ich auch nicht schlau.
Ich tippe einfach mal dass sich der Befehl file_put_contents() ganz einfach nur auf .txt Dateien anwenden lässt.
Merci again,
A2k
--
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.