Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein Problem mit php
Hallo liebe gmod.de Community,
ich bin beim aufbau eines kleinen Admin Panels.
Ich habe mit php und HTML versucht Templates bzw. .txt Dateien zu öffnen, Editieren und abzuspeichern. Doch anscheinend mache ich etwas dabei falsch.
Die .txt Datei wird geöffnet in der "textarea" und ich kann sie ändern doch nicht abspeichern...
<form action=" <? $PHP_SELF; ?>" method ="post">
<textarea name="inhalt" rows=20 cols=80 wrap="virtual">
<?php include("test.txt"); ?>
</textarea>
<input name="submit" type="submit" id="submit" value="Abschicken">
<input type="reset" name="Submit2" value="Reset">
<?php if ($submit == "Abschicken")
{
$fp = fopen("../klongb.css","w");
$data ="$inhalt";
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
$check_ok = "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
echo "$check_ok";
}
?>
</form>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method ="post">
<textarea name="inhalt" rows=20 cols=80 wrap="virtual">
<?php include("test.txt"); ?>
</textarea>
<input name="submit" type="submit" id="submit" value="Abschicken">
<input type="reset" name="Submit2" value="Reset">
<?php
if ($submit == "Abschicken")
{
$fp = fopen("test.txt","w");
$data ="$inhalt";
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
$check_ok = "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
echo "$check_ok";
}
?>
</form>
Ich hoffe ihr könnt mir Helfen...
<?php
$data = $_REQUEST['inhalt'];
if ($data)
{
$fp = fopen("test.txt","w");
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
echo "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method ="post">
<textarea name="inhalt" rows=20 cols=80 wrap="virtual">
<?php include("test.txt"); ?>
</textarea>
<input name="submit" type="submit" id="submit" value="Abschicken">
<input type="reset" name="Submit2" value="Reset">
</form>
So ist richtig.
Du hast die Variablen aus der "Form" falsch übergeben, du musst nicht überprüfen ob die Value "Submit" ist, sondern ob der Inhalt der durch "Submit" übergeben wird vorhanden ist.
<form action="" method ="post">
<textarea name="inhalt" rows=20 cols=80 wrap="virtual">
<?php include("test.txt"); ?>
</textarea>
<input name="submit" type="submit" id="submit" value="Abschicken">
<input type="reset" name="Submit2" value="Reset">
<?php
if (isset($_POST['submit']) && isset($_POST['inhalt']) && $_POST['inhalt'] != "")
{
$fp = fopen("test.txt","w");
$data ="$inhalt";
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
$check_ok = "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
echo "$check_ok";
}
?>
</form>
Die Form mit der method post ist nicht umsonst da!
Du greifst auf irgendwelche Formfelder wenn du als method post hast mit
$_POST['name']
zu und wenn du als method get hast mit
$_GET['name']
zu.
Die action kann man einfach leer lassen, wenn man nicht auf eine andere Datei verweist.
<?php
if (isset($_POST['submit']) && isset($_POST['inhalt']) && $_POST['inhalt'] != "")
{
$fp = fopen("test.txt","w");
$data ="$inhalt";
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
$check_ok = "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
echo "$check_ok";
}
?>
</form>
Die Form mit der method post ist nicht umsonst da!
Du greifst auf irgendwelche Formfelder wenn du als method post hast mit
$_POST['name']
zu und wenn du als method get hast mit
$_GET['name']
zu.
Die action kann man einfach leer lassen, wenn man nicht auf eine andere Datei verweist.
Die If-Abfrage halt ich für zu umständlich und sinnlos, es reicht doch einfach zu überprüfen ob das Textfeld vorhanden ist, vielleicht will man, wenn man etwas neues in die Textdatei schreibt auch ein leeres Feld reinschreiben.
Sicherheitstechnisch muss sowieso noch sehr viel an dem Script gemacht werden.
Außerdem funktioniert deine Variante nicht, da $data immer noch falsch zugewiesen wird.
Die If-Abfrage halt ich für zu umständlich und sinnlos, es reicht doch einfach zu überprüfen ob das Textfeld vorhanden ist, vielleicht will man, wenn man etwas neues in die Textdatei schreibt auch ein leeres Feld reinschreiben.
Sicherheitstechnisch muss sowieso noch sehr viel an dem Script gemacht werden.
Außerdem funktioniert deine Variante nicht, da $data immer noch falsch zugewiesen wird.
Ups, hab vergessen das nach dem if zu ändern (war grad in der Schule und hab das so nebenbei während dem Unterricht geschrieben).
<form action="" method ="post">
<textarea name="inhalt" rows=20 cols=80 wrap="virtual">
<?php include("test.txt"); ?>
</textarea>
<input name="submit" type="submit" id="submit" value="Abschicken">
<input type="reset" name="Submit2" value="Reset">
<?php
if (isset($_POST['inhalt']))
{
$fp = fopen("test.txt","w");
$data =$_POST['inhalt'];
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
$check_ok = "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
echo "$check_ok";
}
?>
</form>
So sollte es funktionieren.
Vielen Dank an euch Beide!
Doch jetzt ist mir aufgefallen das beim klicken von " Absenden " mal der vorherige Text angezeigt wird und mal den ich eingeschrieben habe...
Das liegt daran das zuerst die Datei ausgegeben wird und dann erst geschrieben.
<?php
if (isset($_POST['inhalt']))
{
$fp = fopen("test.txt","w");
$data =$_POST['inhalt'];
$data = str_replace("\r","",$data);
fputs($fp,$data);
fclose($fp);
$check_ok = "<font color = 'red'>Ihre Datei wurde erfolgreich geändert!</font>";
echo "$check_ok";
}
?>
<form action="" method ="post">
<textarea name="inhalt" rows=20 cols=80 wrap="virtual">
<?php include("test.txt"); ?>
</textarea>
<input name="submit" type="submit" id="submit" value="Abschicken">
<input type="reset" name="Submit2" value="Reset">
</form>
So funktioniert es!
-lol-
Es geht ab etwas Falsch übertragen...
Danke an euch Beide!
Kann man auf eine Datei zugreifen die in einem anderem Ordner ist?
zb.
ich will auf impressum.php von .../test-ordner/index.php zugreifen?
Kann man auf eine Datei zugreifen die in einem anderem Ordner ist?
zb.
ich will auf impressum.php von .../test-ordner/index.php zugreifen?
Jap,
http://de.php.net/manual/de/function.fopen.php -> Beispiel #1
Das verstehe ich irgendwie nicht.
Ich will von einem Ordner auf einen zurückliegenden Ordner zugreifen können.
Du kannst ein Verzeichnis mit "../" zurückgehen.
Also wenn jetzt deine PHP-Datei im Ordner "Hallo" liegt, und deine TXT ein Verzeichnis darüber, wäre der Link von der PHP-Datei aus:
../datei.txt
Genau so kann man auch mehrere Verzeichnisse zurückgehen:
../../../datei.txt
Scarecrow
15.10.2008, 12:34
Ich würde dir für die Zukunft eine Entwicklungsumgebung empfehlen, sowas wie Dreamweaver.
Ich würde dir für die Zukunft eine Entwicklungsumgebung empfehlen, sowas wie Dreamweaver.
Für PHP meiner Meinung nach nicht wirklich gut geeignet, außerdem ist er richtig teuer. :roll:
Wenn es rein um PHP geht, würde ich PHPEdit (http://www.phpedit.com) empfehlen. Für "Lernzwecke" bzw. Schüler ist der kostenlos.
Jo, ich werde mir so ein Programm besorgen.
Etwas stimmt anscheinend nicht, immer wenn ich zb. die index.php über das Admin CP ändern will geschied das:
Vor der änderung / Benutzung des Speichern Buttons:
<a href="index.php"><div id="header">
Nahc der Benutzung des Speichern Buttons:
<a href=\"index.php\"><div id=\"header\">
Bei jedem Klick auf den Speichern Button erscheint ein "/" mehr...
Ist was am Code falsch?
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.