AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] PHP Funktion aus Formular aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] PHP Funktion aus Formular aufrufen

Ein Thema von Luckie · begonnen am 25. Okt 2005 · letzter Beitrag vom 26. Okt 2005
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#21

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:20
Hallo. Ich habe es doch geschafft.

Ich muss es nur irgendwie schaffen, dass dieser Post-Flag zurückgesetzt wird, sonst will er die letzte Aktion bei jedem F5 ausführen und das kann ich nicht brauchen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#22

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:30
Du setzt sie doch selbst in das Formular rein
Code:
<input type="hidden" name="sent" value="1">
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#23

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:40
Ich weiß, aber wenn ich F5 drücke will er noch mal eine Datei hochladen, weil if ($_POST['sent'] == '1') das zutrifft. Ich dachte, ich könnte nach dem Hochladen das machen:
Code:
$_POST['sent'] = '0';
damit er, wenn man F5 drückt eben nichts macht. Aber so geht es leider nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#24

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:47
Zwischen dir und dem PHP-Skript gibt es keinen Dialog!

1. Du stellst eine Anfrage (z.B. ich möchte die Datei soundso hochladen)
2. Der Server empfängt die Anfrage und führt das PHP-Skript aus.
3. Du erhälst das Ergebnis von (2)

Ganz wichtig:
Nach (2) ist das PHP-Skript beendet!
Alle zugewiesenen Variablen sind weg (ok, du könntest Sessions nehmen)!
Wenn du die Seite noch einmal anforderst, dann wird wieder das komplette Skript ausgeführt.

Deine Zuweisung an $_POST['sent'] kommt nirgendwo an.

... und jetzt in die Delphi-Welt gezogen:

Denke dir eine Delphi-Konsolen-Anwendung, die dasselbe macht wie dein PHP-Skript. Diese Anwendung wird jedesmal beendet, nachdem sie eine Anfrage behandelt hat. Für die nächste (F5, Link anklicken) wird das Programm wieder komplett neu gestartet und weiß nichts vom letzten Durchlauf.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#25

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:53
Hm. OK. Wenn ich die Seite lade, ohne eine Datei hochzuladen, dann kann ich so oft aktualisieren, wie ich will und es passiert nichts. So bald ich aber einmal eine Datei hochgeladen habe und dann aktualisiere, dann kommt erst der Dialog vom IE, dass die Daten noch mal gesendet werden müssten, dann läd er natürlich noch mal was hoch und zeigt dann die Seite an. Und genau DAS will ich nicht haben. Deswegen bin ich davon ausgegangen, dass er sich das noch irgendwo gemerkt hätten. Aber es scheint wohl noch im Cache vom Browser zu sein. Gibt es einen PHP Befehl, um das Cachen abzuschalten, damit genau das nicht passiert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#26

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:58
Ist eigentlich der falsche Weg - wie wäre es, wenn du nach dem erfolgreichen Hochladen einfach auf eine andere Seite weiterleitest? Z.B. die Übersicht über die hochgeladenen Dateien.

// Nachtrag: oder auf die Seite selbst? Dann hast du einen Puffer dazwischen und F5 richtet keinen Schaden mehr an (nur noch der Zurück-Button).

Also nach erfolgreichem Hochladen setzt du einfach
Code:
header('Location: ' . $_SERVER['REQUEST_URI']);
rein.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#27

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 13:01
Die ist ja auch auf der Seite, siehe Anhang. Deswegen will ich ja dahin zurück.
Miniaturansicht angehängter Grafiken
littlewebftp_343.png  
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#28

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 13:04
Zitat von Flocke:
Ist eigentlich der falsche Weg - wie wäre es, wenn du nach dem erfolgreichen Hochladen einfach auf eine andere Seite weiterleitest? Z.B. die Übersicht über die hochgeladenen Dateien.

// Nachtrag: oder auf die Seite selbst? Dann hast du einen Puffer dazwischen und F5 richtet keinen Schaden mehr an (nur noch der Zurück-Button).

Also nach erfolgreichem Hochladen setzt du einfach
Code:
header('Location: ' . $_SERVER['REQUEST_URI']);
rein.
Code:
  <?php
    echo '

';
    if ($_POST['sent'] == '1')
    {
      upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY);
      echo $_FILES['userfile']['error'];
    }
    else if ($_POST['sent'] == '2')
    {
      echo 'Delete: '.$deletefile;
    }
    header('Location: ' . $_SERVER['REQUEST_URI']);
    echo '</p>';
  ?>
Führt zu der folgenden Fehlermeldung:
Zitat:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/l3s11195/html/Ablage/Privat/testFTP.php:8) in /var/www/l3s11195/html/Ablage/Privat/testFTP.php on line 86
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#29

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 13:05
Ok, dann mache
Code:
{
  header('Location: ' . $_SERVER['REQUEST_URI']);
  exit;
}
nach dem erfolgreichen Hochladen.

Dann musst du natürlich *VOR* allem anderen Code auf einen Upload prüfen und diesen durchführen. Oder ganz am Anfang deines Skripts
Code:
ob_start(...);
benutzen.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#30

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 13:23
Auch das Exit bringt nichts. Der Code ist jetzt ganz am Ende der Datei:
Code:
    <?php
    echo '

';
    if ($_POST['sent'] == '1')
    {
      upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY);
      echo $_FILES['userfile']['error'];
      echo '</p>';
      header('Location: ' . $_SERVER['REQUEST_URI']);
      echo '[img]line.png[/img]';
      echo '<table class="copy">';
      echo '<tr><td class="ver">LittleWebFTP
Ver.: 1.0</td><td class="copy">Copyright &copy; 2005 Michael Puff
Homepage: [url="http://www.luckie-online.de"]http://www.luckie-online.de[/url]</td></tr>';
      echo '</table>';
      echo '</body>';
      echo '</html>';
      exit;
    }
    else if ($_POST['sent'] == '2')
    {
      echo 'Delete: '.$deletefile;
      echo '</p>';
      header('Location: ' . $_SERVER['REQUEST_URI']);
      echo '[img]line.png[/img]';
      echo '<table class="copy">';
      echo '<tr><td class="ver">LittleWebFTP
Ver.: 1.0</td><td class="copy">Copyright &copy; 2005 Michael Puff
Homepage: [url="http://www.luckie-online.de"]http://www.luckie-online.de[/url]</td></tr>';
      echo '</table>';
      echo '</body>';
      echo '</html>';
      exit;
    }
  ?>

  [img]line.png[/img]
  <table class="copy">
    <tr><td class="ver">LittleWebFTP
Ver.: 1.0</td><td class="copy">Copyright &copy; 2005 Michael Puff
Homepage: [url="http://www.luckie-online.de"]http://www.luckie-online.de[/url]</td></tr>
  </table>
</body>
</html>
Aber da ist es ja schon zu spät, weil der Header schon gesendet wurde. Und wenn ich das ganz am Anfang der Seite stelle, dann habe ich ja dann eine leere Seite im Browser wegen dem Exit oder nicht?

Dein zweiter Vorschlag mit ob_start(...); hat auch nicht geholfen:
Code:
  <?php
    echo '

';
    if ($_POST['sent'] == '1')
    {
      upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY);
      echo $_FILES['userfile']['error'];
      echo '</p>';
      ob_start();
    }
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz