• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Textdatei beschreiben

MaxG

Neues Mitglied
Guten Abend zusammen :)

Ich habe ein Problem und ich habe schon viel versucht, bekomme es aber nicht hin. Ich habe 6 Buttons in meiner HTML Datei. Der Code von einem der Buttons sieht so aus:

HTML:
<a class="link-button" href="LINK ZU MEINER PHP DATEI/answer.php?w=Computer wird neu gestarten"> <img src="http://www.html.de/images/icon_message.png" alt="Neustarten" width="39" height="38"    /> </a>

Auf dem Server habe ich zusätzlich noch eine Textdatei (stream.txt) und eine PHP Datei, welche im Code angesprochen wird. Der PHP Code sieht wie folgt aus:

PHP:
<?php
leeren("stream.txt"); // Datei die geleert werden soll.
function leeren($file) {     $datei = fopen($file,"w");     fputs($datei,"");     fclose($datei);}

$msg = $_GET['w']; // Aufgerufen wird das Script über die URL welche zur PHP Datei führt - an die URL wird folgendes angehangen: ?w=$logfile= 'stream.txt'; // Speicherort im Root Verzeichnis bzw auf dem Server der PHP datei$fp = fopen($logfile, "a");fwrite($fp, '');fwrite($fp, $msg);fclose($fp);?>

Bei jedem Button ändere ich den Code an folgender Stelle: answer.php?w=Computer wird neu gestarten
http://www.backdoorserver.kilu.de/Smart Computer Control/answer.php?w=Computer wird neu gestarten
Alles was ich hinter dem ?w= eingebe, wird bei einem Klick auf den Button in mein Textdokument geschrieben. Genau so soll es auch sein. Das Problem ist das sich jedes mal eine weisse Seite öffnet! Die PHP Seite. Genau das möchte ich verhindern! Könnt Ihr mir sagen wie ich mit dieser einen PHP Datei und meinen 6 Buttons den Code so umschreiben kann das bei einem Klick auf den Button sich das PHP Script im Hintergrund ausführt, den Text ändert und der User davon nix mitbekommt? Wichtig ist nur das jeder Button einen bestimmten vordefinierten Text einschreiben soll...

Es wäre echt super wenn mir jemand die Antwort geben könnte :)
 
Du hast mehrere Möglichkeiten:
Binde den o.g. PHP-Code in die Datei ein in der auch die Buttons stehen. Das erfordert natürlich die Dateiendung .php bei dieser Datei. Verlinke dann auf die Datei selbst - fertig.

Du könntest auch von der jetzigen PHP-Datei aus eine Weiterleitung zurück zur anderen Datei vornehmen.
PHP:
header("Location: vorherigedateiMitDenButtons.php");

Oder Du bindest alles was dargestellt werden soll auch in die jetzige PHP-Datei ein.
 
Vielleicht wäre der andere weg doch besser :)
Kannst du mir sagen wie ich in meinem HTML Code auf einen Link klicke, und ohne das sich die Seite neu läd o.ä. sich der Text in meinem Textdokument ändert?
 
PHP ist ja eine Serverseitige Sprache. Somit muss in jedem Fall ein Request an die Seite gesendet werden. Das kannst du so wie bisher machen, sodass eine Weiterleitung passiert oder du machst das ganze über Ajax (Dafür muss dann aber Javascript aktiviert sein)
Aber was ist denn an der bisherigen Lösung schlecht?
 
Allgemein ist alles super :) Ich drücke auf den Button und es öffnet sich die PHP und ich werde zurück an meine HTML geleitet. Dadurch verspringt die Seite aber... Die Buttons sind weiter unten auf der Seite.... Zudem flackert dann alles einmal kurz und in solchen Dingen bin ich perfektionist :)
 
Allgemein ist alles super :) Ich drücke auf den Button und es öffnet sich die PHP und ich werde zurück an meine HTML geleitet. Dadurch verspringt die Seite aber... Die Buttons sind weiter unten auf der Seite.... Zudem flackert dann alles einmal kurz und in solchen Dingen bin ich perfektionist :)

Dann würde ich dir raten, dass du die Seite noch zusätzlich per Ajax aufrufen kannst. Würde an deiner Stelle ein Framework, wie jQuery: The Write Less, Do More, JavaScript Library dafür nehmen.
Du kannst dann so etwas machen wie:
Code:
// Erst Ausführen wenn Seite geladen wurde
$(document).ready(function(){
  $(".link-button").click(function() {
      $.ajax({
         "url" : $(this).attr("href"),
         "success" : function(antwort) {
            alert(antwort);
         }
      });
    // Link nicht folgen
    return false;
  });

});

Das würde all deine Links per Ajax aufrufen und deine Ausgabe rausschreiben. Musst da bestimmt noch was abändern. Aber das sollte dir schon gut helfen ;) (Mein Script benötigt jQuery)
 
Hört sich gut an... wo baue ich das jetzt ein? Ich blick nicht ganz durch in wie fern der Code funktioniert!
 
Packst du dir am besten in den head Bereich deiner Html Seite. Dort natürlich in ein script Tag. Also so

HTML:
<html>
  <head>
    <script type="text/javascript" src="pfad/zu/jquery.js"></script>
    <script type="text/javascript">
       // Erst Ausführen wenn Seite geladen wurde
      $(document).ready(function(){
        $(".link-button").click(function() {
            $.ajax({
               "url" : $(this).attr("href"),
               "success" : function(antwort) {
                  alert(antwort);
               }
            });
          // Link nicht folgen
          return false;
        });

      });
    </script>
  </head>
   ....

Was macht das ganze? Alsooo...
Zunächst wird gewartet bis das dokument zu ende geladen wurde. Dann wird auf jedes Element, dass die css-Klasse .link-Button hat ein Event-handler gesetzt.
Diese Event-Handler prüfen, ob ein Link geklickt wird. Wenn dies passiert wird ein Request an die Url gesendet, die in dem Link steht. Sobald eine Antwort kommt wird diese ausgegeben. (Alles was du per echo ausgibst oder so auf der Seite zu sehen wäre gilt als echo). Hoffe das hilft dir ein wenig :) Und wenn du den oben stehenden Text nicht verstehst, solltest du dich mit CSS und mit Javascript beschäftigen =)
 
Zurück
Oben