Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Ein Problem mit php

  1. #1
    Avatar von deniz1
    Registriert seit
    21.11.2007
    Ort
    Kassel

    Terminal 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...
    Spoiler:
    Der Aktuelle Code (HTML & php getrennt)


    Spoiler:
    Der ganze Code


    Ich hoffe ihr könnt mir Helfen...

  2. #2
    Avatar von xan
    Registriert seit
    03.02.2008
    Ort
    Niedersachsen

    Standard AW: Ein Problem mit php

    PHP-Code:
    <?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.
    Geändert von xan (14.10.2008 um 11:39 Uhr)

  3. Folgender Benutzer sagt Danke zu xan für den nützlichen Beitrag:


  4. #3

    Standard AW: Ein Problem mit php

    PHP-Code:
    <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
    PHP-Code:
    $_POST['name'
    zu und wenn du als method get hast mit
    PHP-Code:
    $_GET['name'
    zu.

    Die action kann man einfach leer lassen, wenn man nicht auf eine andere Datei verweist.
    Geändert von SMILIE (14.10.2008 um 12:12 Uhr)

  5. Folgender Benutzer sagt Danke zu SMILIE für den nützlichen Beitrag:


  6. #4
    Avatar von xan
    Registriert seit
    03.02.2008
    Ort
    Niedersachsen

    Standard AW: Ein Problem mit php

    Zitat Zitat von SMILIE Beitrag anzeigen
    PHP-Code:

    <?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
    PHP-Code:
    $_POST['name'
    zu und wenn du als method get hast mit
    PHP-Code:
    $_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.

  7. Folgender Benutzer sagt Danke zu xan für den nützlichen Beitrag:


  8. #5

    Standard AW: Ein Problem mit php

    Zitat Zitat von xan1 Beitrag anzeigen
    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).

    PHP-Code:
    <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.

  9. Folgender Benutzer sagt Danke zu SMILIE für den nützlichen Beitrag:


  10. #6
    Avatar von deniz1
    Registriert seit
    21.11.2007
    Ort
    Kassel

    Standard AW: Ein Problem mit php

    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...
    Geändert von deniz1 (14.10.2008 um 15:05 Uhr)

  11. #7

    Standard AW: Ein Problem mit php

    Das liegt daran das zuerst die Datei ausgegeben wird und dann erst geschrieben.
    PHP-Code:
    <?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!

  12. Folgender Benutzer sagt Danke zu SMILIE für den nützlichen Beitrag:


  13. #8
    Avatar von deniz1
    Registriert seit
    21.11.2007
    Ort
    Kassel

    Standard AW: Ein Problem mit php

    -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?
    Geändert von deniz1 (14.10.2008 um 15:23 Uhr)

  14. #9
    Avatar von xan
    Registriert seit
    03.02.2008
    Ort
    Niedersachsen

    Standard AW: Ein Problem mit php

    Zitat Zitat von deniz1 Beitrag anzeigen
    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

  15. #10
    Avatar von deniz1
    Registriert seit
    21.11.2007
    Ort
    Kassel

    Standard AW: Ein Problem mit php

    Das verstehe ich irgendwie nicht.

    Ich will von einem Ordner auf einen zurückliegenden Ordner zugreifen können.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •