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 2 von 4     12 34      
Benutzerbild von Luckie
Luckie

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

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 00:40
Also, ich habe es jetzt so:
Code:
  <?php
    if ($_POST['sent'] == '1')
    {
      $file = fopen($_FILES['uploadfile']['tmp_name'], 'r');
      upload_file($newpath, $file, FTP_BINARY);
      $_POST['sent'] = '0';
    }
  ?>
  <form ENCTYPE="multipart/form-data" ACTION="<?=$_SERVER['PHP_SELF'].'?newpath='.$newpath ?>" METHOD=POST>
    <input type="hidden" name="sent" value="1">
    <input NAME="uploadfile" SIZE=75 TYPE="file">
    <input TYPE="submit" VALUE="Send File">
  </form>
Als Fehlermeldung kommt:
Zitat:
Warning: ftp_put() expects parameter 3 to be string, resource given in /var/www/l3s11195/html/Ablage/Privat/WebFTP.php on line 83
Zeile 83 wäre:
Code:
$result = ftp_put($conn, $dest, $source, $mode);
ist ja auch logisch, fopen gibt ja ein Dateihandle zurück, da müsste aber der Pfad und der Name der lokalen Datei stehen. Wie bekomm eich den aus dem Formular raus?

Hardgecodet:
Code:
upload_file($newpath.'\style.css', 'H:\Downloads\style.css', FTP_BINARY);
kommt die Meldung:
Zitat:
Warning: ftp_put(): Unable to access H:\Downloads\style.css in /var/www/l3s11195/html/Ablage/Privat/WebFTP.php on line 83
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 00:47


Sorry. Hab gerade ftp_fput() mit ftp_put() verwechselt. DU hast natürlcih recht, dass 1. die Argumente richtig waren und 2. kein Dateizeiger sondern ein String mit dem Pfad erwartet wird.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 00:53
Roter Kasten.

Woran kann es jetzt liegen, dass er auf die Datei keinen Zugriff hat? Und wie komme ich an den Text aus dem Edit des Formulares?

Puh, das wird eine schwere Geburt. Aber dann ist für heute auch schluss. Versprochen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 01:00
Zitat von Luckie:
Hardgecodet:
Code:
upload_file($newpath.'\style.css', 'H:\Downloads\style.css', FTP_BINARY);
kommt die Meldung:
Zitat:
Warning: ftp_put(): Unable to access H:\Downloads\style.css in /var/www/l3s11195/html/Ablage/Privat/WebFTP.php on line 83
Wieso H:\? Das ist doch ein Windows-Verzeichnis, wies aussieht, (/var/www/l3s11195/...) hast du aber einen LINUX-Server...

Probiere mal so:
upload_file($_FILES['uploadfile']['tmp_name'], '/style.css', FTP_BINARY);

Dann müsste die Datei direkt aus dem Temp-Verzeichnis auf den FTP geladen werden, und zwar mit dem Namen style.css. (Wieso gerade style.css, dann wird ja immer die Datei überschrieben).
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 01:05
Logisch, ich will ja eine Datei von meinem lokalen Rechner auf meinen Webspace laden. Und den Dateinamen habe ich nur erstmal hardgecodet, um zu probieren, ob es überhaupt funktioniert. Das soll natürlich nicht so bleiben.

Zitat:
Dann müsste die Datei direkt aus dem Temp-Verzeichnis auf den FTP geladen werden
Und wie kommt die dort hin? Also wenn man über das Temp-Verzeichnis geht, dann würde ich mir das so vorstellen: mit ftp_put lade ich sie in das Temp-Verzeichnis und mit move_uploaded_file würde ich sie dann in das eigentliche Zielverzeichnis verschieben.

Aber egal wie, später irgendwann muss ich ja auf den Text aus dem Eingabefeld zugreifen, wie komme ich da dran?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 01:07
Zitat von Luckie:
Aber egal wie, später irgendwann muss ich ja auf den Text aus dem Eingabefeld zugreifen, wie komme ich da dran?
Asooo... Du meinst das FILE-Feld? Das erreichst du wie gesagt über $_FILES. Oder meinst du ein anderes Feld?
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

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

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 08:14
Zitat von Luckie:
Logisch, ich will ja eine Datei von meinem lokalen Rechner auf meinen Webspace laden. Und den Dateinamen habe ich nur erstmal hardgecodet, um zu probieren, ob es überhaupt funktioniert. Das soll natürlich nicht so bleiben.
Luckie
PHP wird auf dem Server ausgeführt - der weiß nichts von deinen lokalen Verzeichnissen. Wenn du die Datei in einer form als Upload-Feld definiert hast, dann ist deren Inhalt zusammen mit der Anfrage schon auf den Rechner übertragen worden und steht jetzt eben in der angesprochenen temporären Datei.

Du machst jetzt also einen FTP-Upload vom Server auf den Server (derselbe Rechner), um die Save-Mode-Restriktionen zu umgehen.
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
 
#18

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 10:28
Jetzt verstehe ich gar nichts mehr. Wie kann eine 5 MB Datei, die ich mit "Durchsuchen" ausgewählt habe, nach Schließen des Dialoges schon auf dem Server sein? Das PHP auf dem Server ausgeführt wird ist mir klar, aber wenn da steht, dass man mit dftp_put eine Datei hochladen kann, dann verstehe ich darunter vom lokalen Rechner auf den Server. Die anderen FP-Scripte haben auch mit FTP-put gearbeitet:

Code:
switch ($action) {
case 'upload':
$r = $ftp->put(
$dir.$_upload['uploadfile']['name'],
$_upload['uploadfile']['tmp_name']);
if ($r) {
echo 'Fileupload erfolgreich';
 } else {
echo 'Fileupload leider fehlgeschlagen';
}
Code:
function put ( $file, $sourcefile ) {
return ftp_put(
$this->conn,
$file,
$sourcefile,
FTP_BINARY);
}
das mal der Code aus einem Script, aber ich habe das nicht zusammengebracht, deswegen habe ich hier gefragt. Das ganze Script mal im Anhang.

Gerade habe ich das hier gefunden:
HTML-Datei:
Code:
<html>
<head>
<title>Datei Upload</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
   <h1>Schicken Sie uns ihre Texte</h1>
   <form action="ftpbeispiel.php" enctype="multipart/form-data" method="POST">
      

 W&auml;hlen Sie eine Textdatei (txt, html usw.)
      von Ihrem Rechner aus:


      <input name="lokale_datei" type="file"
      size="50" maxlength="1024" accept="text/*">
      </p>
      

Verzeichnis/Zieldatei


      <input type="text" name="zieldatei">
      </p>
      



      <input type="submit" name="Abschicken"
      value="Abschicken">
      </p>
   </form>
</body>
</html>
PHP-Datei:
Code:
<?php
// Diese Variablen bitte aendern
$ftp_server = "luckie-online.de";
$benutzername = "foo";
$passwort = "bar";

// Die Verbindung herstellen
$connection_id = ftp_connect("$ftp_server");

// Mit Benutzername und Kennwort anmelden
$login_result = ftp_login($connection_id, "$benutzername", "$passwort");

// überprüfen ob alles gutgegangen ist
if ((!$connection_id) || (!$login_result)) {
   echo "<H1>Ftp-Verbindung nicht hergestellt!<H1>";
   echo "

Verbindung mit ftp_server
   als Benutzer $benutzername nicht möglich!</p>";

   die;
} else {
   echo "

Verbunden mit ftp_server als Benutzer $benutzername </p>";
}
// Hochladen der datei
$upload = ftp_put($connection_id, $zieldatei, $lokale_datei, FTP_ASCII);

// Upload-Status überprüfen
if (!$upload) {
   echo "

Ftp upload war fehlerhaft!</p>";
} else {
   echo "

Datei $slokale_datei auf $host als $zieldatei geschrieben </p>";
}

// Schließen der Verbindung
ftp_quit($connection_id);
?>
Das funktioniert wunderbar, aber was anderes mache ich doch auch nicht.
Angehängte Dateien
Dateityp: rar ftp_client_100.rar (6,8 KB, 0x aufgerufen)
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
 
#19

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 11:57
So, ich habe es jetzt geschaft.

Code:
  <?php
    if ($_POST['sent'] == '1')
    {
      echo '<pre>';
      $destfile = 'test.xyz';
      echo $uploadfile;
      upload_file('/'.$newpath.'/'.$destfile, $uploadfile, FTP_BINARY);
      echo '</pre>';
    }
  ?>
  <form ENCTYPE="multipart/form-data" ACTION="<?=$_SERVER['PHP_SELF'].'?newpath='.$newpath ?>" METHOD=POST>
    <input type="hidden" name="sent" value="1">
    <input NAME="uploadfile" SIZE=75 TYPE="file">
    <input TYPE="submit" VALUE="Send File">
  </form>
Nur einen Haken hat es. echo $uploadfile ergibt:
Zitat:
/var/www/l3s11195/phptmp/phpZb1pCQ
Aber wie komme ich an den Dateinamen dran, wie er lokal lautet?

Habs:
Code:
  <?php
    if ($_POST['sent'] == '1')
    {
      echo '<pre>';
      upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY);
      echo '</pre>';
    }
  ?>
  <form ENCTYPE="multipart/form-data" ACTION="<?=$_SERVER['PHP_SELF'].'?newpath='.$newpath ?>" METHOD=POST>
    <input type="hidden" name="sent" value="1">
    <input NAME="uploadfile" SIZE=75 TYPE="file">
    <input TYPE="submit" VALUE="Send File">
  </form>
Nur noch eins, wenn ich die Seite aktualisiere mit F5, dann will er wieder was hochladen, kann ich das $_POST['sent'] == '1' irgendwie wieder zurücksetzen?

Und wenn ich ein zweites Formular habe, kann ich dann dies machen:
Code:
  <?php
    if ($_POST['sent'] == '1')
    {
      echo '<pre>';
      upload_file('/'.$newpath.'/'.$_FILES['uploadfile']['name'], $uploadfile, FTP_BINARY);
      echo '</pre>';
    }
    else if ($_POST['sent'] == '2')
    {
       deletefile(...);
    }
  ?>
Nur noch diese Kleinigkeit und ich bin super glücklich.
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
 
#20

Re: [PHP] PHP Funktion aus Formular aufrufen

  Alt 26. Okt 2005, 12:16
Zitat von Luckie:
Wie kann eine 5 MB Datei, die ich mit "Durchsuchen" ausgewählt habe, nach Schließen des Dialoges schon auf dem Server sein?
Die Datei wird erst übertragen wenn du das Formular abschickst.

Zitat von Luckie:
Nur einen Haken hat es. echo $uploadfile ergibt:
Zitat:
/var/www/l3s11195/phptmp/phpZb1pCQ
Aber wie komme ich an den Dateinamen dran, wie er lokal lautet?
Wie oben geschrieben - das ist die übertragene Datei - die liegt schon auf deinem Server.

Jetzt überleg' noch mal
1. wie soll der Webserver denn auf eine Datei auf deiner Platte kommen
2. wie soll ein FTP-Kommando, dass auf dem Server abgesetzt wird, eine Datei von deiner Platte übertragen?
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 23:28 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