$_POST bei Fileupload | Formular

S

sevY

Hi,

ich schreibe meine Scripts gerade so, das sie kein register_globals = On benötigen.

PHP:
<?php

require_once("config.php");

$db_contact="X_media"; 

if ($_POST[action] == upload)
    {
    chdir("../../media/img/logo");
    copy($X_media_navigation_new,$_FILES['X_media_navigation_new']['name']);
    chdir("../../downloads");
    copy($X_media_downloadlink_new,$_FILES['X_media_downloadlink_new']['name']);
    

    $logopfad="media/img/logo/".$_FILES['X_media_navigation_new']['name'];
    $downloadpfad="media/downloads/".$_FILES['X_media_downloadlink_new']['name'];

    
    $read = mysql_query("select X_media_shorttext from $db_contact where ID_X_media = '1'",$handler);
    $a = mysql_fetch_array($read);


    mysql_db_query($db_dbase,"insert into $db_contact (X_media_shorttext,X_media_navigation,X_media_downloadlink,X_media_downloadlink_name) VALUES ('$a[X_media_shorttext]','$logopfad','$downloadpfad','$_POST[X_media_downloadlink_name_new]')");
    }     
    

        
?>

<form enctype=multipart/form-data action=X_media_new.php method=post>

    <input type=hidden name=action value=upload>

<b>Partnerlogo:</b><br><p>

    <input type=file name=X_media_navigation_new><br>

<b>Downloadobjekt:</b><p>

    <input type=file name=X_media_downloadlink_new><br>

    
<b>Bezeichnung des Downloadlinks:</b><p>

    <input type=text name=X_media_downloadlink_name_new maxsize=60 size=55><br>

<input type=submit value=hinzuf&uuml;gen>
</form>


Meine Frage nun:


copy($X_media_downloadlink_new,$_FILES['X_media_downloadlink_new']['name']);

Dieser Befehl kopiert die Datei aus dem entsprechenden Input Field mit ihren ursprünglichen Namen in den o.a. Ordner.

Da ich register_globals = Off haben möchte, muß ich mit $_POST arbeiten.

Das müsste dann doch so sein:


copy($_POST[X_media_downloadlink_new],$_FILES['X_media_downloadlink_new']['name']);

… ich bin nicht sicher. Denn irgendwie muß doch das $_FILES['X_media_downloadlink_new']['name'] auch in das $_POST[] mit hinein oder?

Liebe Grüße

Coffee
 
Zuletzt bearbeitet von einem Moderator:
Zunächst einmal, ist die Syntax Deines "Copy-Befehls" nicht korrekt. Dieser
setzt sich wie folgt zusammen:

copy("$tempname", "$name");


Die Datei wird via Formular auf den Server geladen und bekommt erstmal
einen kryptischen Namen (z.B. TxwbWerqrS) zugewiesen. Die Variable
$name enthält den Dateinamen, den die Datei auf dem Clientrechner hatte.

Dein "Copy-Befehl" muss daher folgendermaßen lauten:

PHP:
copy("$_FILES['X_media_downloadlink_new']['tmp_name']","$_FILES['X_media_downloadlink_new']['name']);


Du brauchst also kein $_POST[], da Du mit $_FILES[] auf die ensprechenden
Variablen zugreifst.


Gruß
Delmar
 
Meine Syntax war also nicht sauber… weil funktioniert hat sie wunderbar.

move_uploaded_files(); (oder so) soll ja besser sein… ich werde daher meine Scripts mal darauf umschreiben.

Vielen Dank und liebe Grüße

Coffee
 
Könntest Du machen, jedoch kannst Du "copy()" ruhig weiter benutzen.
Dann halt nur mit der richtigen Syntax. ;)

Die Syntax kannst Du auf PHP.net mal nachschlagen, da gibt es doch die
Doku zum Thema.


Du scheinst ja richtig am rotieren zu sein bzgl. PHP und Co, was?! Machst
Du das beruflich oder nebenbei - wenn man mal so ganz indiskret fragen
darf.


Gruß
Delmar
 
Hi,

ich mache das beruflich.

Ich studiere an der FH Dortmund Grafikdesign und bin seit Februar freiberuflicher Flashworker. Mittlerweile erstelle ich Flashsites volldynamisch und bin grade dabei, ein Admintool zu erstellen, das ich dann jedem Kunden auf die von mir erstelle Webpräsenz zuschneiden kann, ohne etliche Stunden neu zu coden.

Im Moment rotiere ich soviel, das ich vorher immer nur solche Scripts brauchte und mich nie wirklich um Adminforms etc. gekümmert habe:

PHP:
<?php
require_once("_config.php");
$db_contact="X_news_presse";
$read = @mysql_query("select * from $db_contact where ID_X_news_presse='$pkx'",$handler);
while($a = @mysql_fetch_array($read))
{
    $result .= '&X_news_navigation='.$a[X_news_navigation];
    $result .= '&X_news_content='.$a[X_news_content];
    $result .= '&X_news_weblink_name='.$a[X_news_weblink_name];
    $result .= '&X_news_weblink='.$a[X_news_weblink];
    $result .= '&X_news_downloadlink_name='.$a[X_news_downloadlink_name];
    $result .= '&X_news_downloadlink='.$a[x_news_downloadlink];
}
echo $result;
?>

Damit kann man dann ganz einfach die Variablen in Flash einlesen, nachdem mit sendAndLoad(); aus Flash heraus eine Variable geschickt wurde.
Mehr als das brauchte ich nie ;)

Und dann kommen auf einmal Dinge wie Fileuploads, Chmod, tausende von Checkboxen und Includes auf mich zu, Sicherheitsabfragen, Verschlüsselung :D Da freut man sich doch, da nun wieder Wissen in Unmengen aufgesogen werden kann.

Liebe Grüße

Yves
 
Zurück
Oben Unten