Anfrage: Eingabfeld + automatisch neue Seite

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Papzt
Mitglied
Beiträge: 4
Registriert: 08.03.2008 16:08

Anfrage: Eingabfeld + automatisch neue Seite

Beitrag von Papzt »

Guten Tag,

ich möchte ein Eingabefeld haben in das ich html-code kopieren kann und beim absenden automatisch auf meinem ftp eine neue seite (name+fortlaufende zahl brauch nur in der .php selber einstellbar sein) erstellt mit dem vorher eingegebenen html-code.

Außerdem soll es mir dann den link zu der neuen seite anzeigen.

Hört sich für mich natürlich extrem kompliziert an da ich nicht viel ahnung von php und html habe. Reicht nur aus um mein Forum zu administrieren.

Hoffe das ist möglich und es gibt jemanden der den code für mich erstellen kann.

Schöne Grüße Papzt
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Also eigentlich ist das hier ein Forum zum selber machen (mit Hilfe).

So ganz verstehe ich auch nicht was du willst... Was hat das HTML Feld mit der FTP Seite zu tun? Was für eine fortlaufende Nummer? Wo soll welcher Link wie hin verweisen?

Wie sehen deine bisherigen Ansätze aus?

Ohne genaue Informationen wird dir niemand helfen können, aber wie gesagt soll das hier auch eher eine Hilfe zur Selbsthilfe sein, und nicht "ich gebe was in Auftrag, jemand anders wird das kostenlos für mich erledigen". Dafür gäbe es dann nämlich die Jobbörse.

Anlaufstellen zum Lernen:
http://de.selfhtml.org
http://de.php.net
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Papzt
Mitglied
Beiträge: 4
Registriert: 08.03.2008 16:08

Beitrag von Papzt »

Sorry versuche es nochmal zu erklären:

Ich möchte eine eingabebox, in die ich dann quellcode kopieren kann.
Beim Abschicken soll er eine .php oder .html datei auf dem server anlegen. (weiss nicht was davon geeignet/besser geeignet ist.)
Diese soll jedoch nicht jedesmal überschrieben werden sondern mit angehängten zahlen abgeändert werden sodass wenn z.B test1.php bereits in dem zielordner vorhanden ist sie als test2.php abgespeichert wird.

Mein bisheriger Ansatz ist ein bisschen veränderter Gästebuch-Code aus einem Tutorial.

Code: Alles auswählen

<html>
<head>
KB-Saver
</head>
<br />
<body bgcolor="#FFFFFF">
<?php
if ($action == "add"){

if ($text == ""){
echo "<b>Du hast nichts eingef&uuml;gt!</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
} 
else{

{
<a href=\"$www\">$www</a>$text<hr><br><br>";
}

$datei =  fopen("kb.php","w+");
 fputs($datei,$eintrag);
 fclose($datei); 
}
 
}
 
else {
?>
<font face="Verdana" size="1">
<b>Hier den KB-Quellcode einf&uuml;gen</b><br />
<form action="eintragen.php?action=add" method="get">
<textarea name="text" cols="35" rows="5"></textarea><br>
</form></font>
<?php
}
?>
</body>

</html>
Jedoch komme ich nun überhaupt nicht mehr weiter. Und weiss auch z.B nicht wie der Button zum Absenden eingebunden wird da der in dem Tutorial schlichtweg vergessen wurde.
Und ich auch leider über google etc. nichts weiteres finde.

Hoffe es ist besser zu verstehen jetzt :oops:
Hatte auch nicht erwartet das mir da einfach einer fertigen code hinklatscht sondern mir ansätze und tips zum erarbeiten gibt. War wohl sehr leicht falsch zu verstehen.

Schöne Grüße
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Der Code dürfte wohl so nicht lauffähig sein, sondern einen Parse-Error liefern.

Generell hast du da mehrere Probleme drin:
  • Direkte Quellcodeveränderungen über ein Skript zu machen ist immer mit einem gewissen Risiko verbunden, man muss in dem Fall das Formular immer sehr gut absichern denn sonst kann jemand das ganze evtl. ausnutzen und dann beliebigen Code auf dem Server ausführen (und den z.b. als Spamschleuder benutzen, Private Daten aus irgendwelchen Tabellen auslesen oder sonstige Dinge tun). Aus dem Grund solltest du eigentlich möglichst ganz darauf verzichten auf diese Weise ausführbare Quellcodedateien auf dem Server zu erstellen. Reines HTML mag da vielleicht nicht ganz so kritisch sein da dann zwar jemand evtl. seine Seite als deine ausgeben könnte (weil sie auf deinem Server liegt), aber zumindest kommt er an die restlichen Dinge auf dem Server nicht heran. Um das aber zu forcieren musst du dann mindestens die Dateiendung fest vorgeben (besser eigentlich gleich den ganzen Namen).
  • Du verwendest die inzwischen völlig verpönte, weil unsichere Methode, per register_globals deine Variablen zu füllen. Das mag jetzt in dem Skript vielleicht noch einigermaßen unkritisch sein, aber führt in zahlreichen anderen Skripten zu Sicherheitslücken, weil man darüber im Prinzip beliebige Variablen in PHP mit beliebigem Inhalt füllen kann. Wenn die Variablen dann nicht abgesichert sind kann es u.U. auch möglich sein, beliebigen Code auf dem Server auszuführen oder unzulässige Datenbankzugriffe durchzuführen. Besser wäre die Verwendung von $_GET['varname'] und $_POST['varname'] (je nach dem, wie die Daten verschickt werden, per Adresszeile (GET) oder Formular (i.d.R. POST). Es kann übrigens auch sein, dass das Skript ohne die Verwendung dieser Variablen nicht läuft, weil der Hoster u.U. register_globals deaktiviert hat und dein Skript somit die Daten nicht mehr findet (zumindest sobald du den Parse-Fehler beseitigt hast).
  • Der Parse-Error dürfte aus diesem Bereich stammen:

    Code: Alles auswählen

    {
    <a href=\"$www\">$www</a>$text<hr><br><br>";
    } 
    da hast du wohl das echo und das beginnende Anführungszeichen vergessen, die geschweiften Klammern sind auch überflüssig.
  • Wenn du prüfen willst ob eine Datei existiert dann benutze [php:file_exists]
  • Wenn du die nächste freie Datei 'testX.html' mit X einer beliebigen Zahl herausfinden willst, dann nimm [php:file_exists] in einer while Schleife in der du den Zählindex der Datei bei jedem Treffer um 1 erhöhst.
  • Ein bisschen Einrückung an den passenden Stellen (bei jeder geöffneten geschweiften Klammer um einen Tab rein, bei jeder geschlossenen wieder raus) würde den Code deutlich übersichtlicher machen und so bei der Fehlersuche helfen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“