php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.07.2005, 16:23  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 47
schnurzli
Standard bildupload - namensänderung

hi - ich habe ein textfeld für den upload + code als testobjekt erstellt

die datei erscheint am webspace dort wo es gewünscht ist...
jetzt kommt mein problem:

ich habe in der selben datei auch ein formular, in welchem man den namen des textfeldes eingeben muss...

dieser wert wird auch in der db gespeichert.
kann den wert auch wieder auslesen nur weiss ich nicht wie ich den dateinamen richtig zusammensetze, dass die datei dann so abgespeichert wird wie das formularfeld...

PHP-Code:
<?php
include ("db.php");
mysql_query("INSERT INTO table(name)VALUES('$name')");
$query "SELECT name FROM table WHERE name = '".$_POST['name']."'";
$result mysql_query($query);
while (
$line mysql_fetch_array($result)) { 
$dateiname$HTTP_POST_FILES['userfile']['name'];
copy($datei"dateien/$dateiname");
echo 
"Das Bild wurde upgeloaded";
}
mysql_free_result($result);
mysql_close();
?>
so wie ich es verstanden habe, wird aus $HTTP_POST_FILES['userfile']['name'] der name + endung erstellt.

nurwie kann ich den ursprungsnamen durch den datenbankeintrag ersetzen? das wäre mein ziel: $line[name].jpg

gibt es da eine einfache lösung?

mfg schnurzli
schnurzli ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.07.2005, 16:25  
Gast
 
Beiträge: n/a
Standard

1) Superglobale $_FILES verwenden
2) Echem, du hast oben $_POST['name']. Klingelts ?
 
Alt 27.07.2005, 16:26  
Gast
 
Beiträge: n/a
Standard

Dein Upload-Script ist total veraltet und sollte dringends überarbeitet werden. Siehe http://www.php.net/manual/de/features.file-upload.php

Gruß
phpfan
 
Alt 27.07.2005, 22:56  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 47
schnurzli
Standard

hi - danke für eure hilfe - hab es jetzt mal versucht - leider ohne erfolg:

Code:
<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="text" name="name">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
</body>
</html>
PHP-Code:
<?php
include ("db.php");
mysql_query("INSERT INTO perti_pflanzen(name)VALUES('$name')");
$query "SELECT name FROM perti_pflanzen WHERE name = '".$_POST['name']."'";
$result mysql_query($query);
while (
$line mysql_fetch_array($result)) {
$uploaddir './www/test/dateien/';
$array explode("."$_FILES['userfile']['name']);
$extension array_pop($array); 
$file $line[name] . $extension;
print 
"<pre>";
if (
move_uploaded_file($file$uploaddir $file)) {
   print 
"Erfolg auf der ganzen Linie...";
} else {
   print 
"NJET- funkt nicht\n";
   
print_r($_FILES);
}
print 
"</pre>";
}
mysql_free_result($result);
mysql_close();
 
?>
irgendwie hab ich das wohl falsch gemacht...
ist es jetzt normal dass man nicht mehr echo sondern nur noch print verwendet?

lg schnuzli
schnurzli ist offline  
Alt 27.07.2005, 23:07  
Erfahrener Benutzer
 
Registriert seit: 20.08.2007
Beiträge: 347
CHRIS befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
ist es jetzt normal dass man nicht mehr echo sondern nur noch print verwendet?
Ich nutze weiterhin echo
CHRIS ist offline  
Alt 28.07.2005, 01:04  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von schnurzli
ist es jetzt normal dass man nicht mehr echo sondern nur noch print verwendet?
Ein Blick ins Handbuch hätte Dir das erklärt.

Print ist einen Zacken schneller als echo, weil print sich nur um einen Wert kümmern muß, während man bei echo mehrere, durch Komma getrennte Werte angeben kann.

PHP-Code:
<?php
print 'string';
echo 
'string1''string2''string3';
?>
 
Alt 28.07.2005, 09:29  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 47
schnurzli
Standard

hi - danke - jetzt verstehe ich, warum ihr manchmal print und manchmal echo nehmt...

leider passt mein code noch nicht.
ich glaube, dass ich noch irgendwo einen fehler bei der zusammenstellung des dateinamens habe...

der code ist im oberen post
schnurzli ist offline  
Alt 28.07.2005, 12:55  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 47
schnurzli
Standard

hi again,

habe jetzt versucht, die fehler-ursache einzugrenzen...

hab jetzt folgendes kleine script laufen:

PHP-Code:
<?php
$uploaddir 
'/dateien/';
print 
"<pre>";
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir $_FILES['userfile']['name'])) {
   print 
"JA:\n";
      
print_r($_FILES);
} else {
   print 
"NEIN\n";
      
print_r($_FILES);
}
print 
"</pre>";
?>
folgende ausgabe erscheint nach dem klick auf upload:

Code:
Possible file upload attack!  Here's some debugging info:
Array
(
    [userfile] => Array
        (
            [name] => 523194_BB_00_FB.EPS.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/uploads/php6dr5dy
            [error] => 0
            [size] => 21494
        )

)
meiner meinung nach funktioniert der upload in den temp-ordner nur der move nicht...
ich weiss nicht- aber kann es daran liegen, dass das script das uploaddir nicht findet? hab schon verschiedene probiert. gibt es eine möglichkeit herauszufinden, welchen struktur die ordner bis zum richtigen ordner haben?

lg schnurzli
schnurzli ist offline  
Alt 28.07.2005, 14:46  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

ich weiß ja net, in welchem ordner die datei landen soll, aber wenn du den Unterordner "dateien" vom aktuellen verzeichnis aus ansprechen willst, musst du
PHP-Code:
<?php
$uploaddir 
'/dateien/';
?>
in
PHP-Code:
<?php
$uploaddir 
'dateien/';
?>
ändern
Buhmann ist offline  
Alt 28.07.2005, 15:22  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 47
schnurzli
Standard

wahnsinn

ich hab alle möglichkeiten probiert - direkter pfad indirekter pfad...

nur das ich vorne das / weglasse, daran hab ich nicht gedacht...

hab mich wohl als neuling in der phpwelt zu sehr an die manuals versteift...
dort steht es mit führenem: /

lg shcnurzli
schnurzli ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bildupload spinnt jovi PHP Tipps 2008 1 13.03.2008 11:26
Bildupload mit Bildeditiermöglichkeit clemens Scriptbörse 3 03.12.2007 10:31
Problem mit Bildupload 2wuck PHP Tipps 2006 2 03.07.2006 07:05
Suche JS Script für Bildupload fuhrmara Trash 2 26.06.2006 13:21
Bildupload bzw auslesen klappt nicht mehr! Broadcast PHP Tipps 2006 5 29.05.2006 14:44
Bildupload d4rki PHP Tipps 2006 14 16.05.2006 08:30
Bildupload per PHP --> Verständnis-Problem PHP Tipps 2006 2 20.04.2006 07:06
Problem beim Bildupload/ Thumbnailerstellen imported_FlasH PHP Tipps 2006 2 02.03.2006 08:12
bildupload ohne reload des bildes seejay PHP Tipps 2006 6 18.02.2006 12:53
bildupload Beitragsarchiv 3 08.08.2005 12:22
Bildupload PHP Tipps 2005-2 3 02.07.2005 18:10
Problem bei Bildupload PHP Tipps 2004-2 4 26.12.2004 00:04
Bildupload & Wasserzeichen Beitragsarchiv 2 07.12.2004 13:07
Webshop für Software / Bildupload Off-Topic Diskussionen 1 18.06.2004 22:54
[Erledigt] Bildupload in Graustufen PHP-Fortgeschrittene 1 15.06.2004 18:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
form input text namensänderung, namensänderung php

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.