Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » value bei input type=file Antworten
value bei input type=file

pizzataxi
Quasselstrippe


Beiträge: 248


Wie kann ich Werte bei Formularfeldern vom Typ File ausgeben? Folgende Kombi scheint nicht zu funzen:

<input type="file" name="bildurl" value="<?php echo $bildurl; ?>


  Profil   E-Mail   Editieren   Zitieren

Ehemaliges Mitglied (#644)
Forenheld


Beiträge: 835


wo wird in diesem fall $bildurl definiert ?
$bildurl ist in deinem fall leer, wenn mich nich alles taeuscht
Paul


  Profil   Editieren   Zitieren

pizzataxi
Quasselstrippe


Beiträge: 248


Sollte mich eigentlich wundern, denn die Variable $bildurl wird vorher aus einer DB ausgelesen. Ich kann sie mir auch per echo $bildurl; anzeigen lassen. Vielleicht kann man einfach mal ein Stück Beispielquelltext oder so ähnlich posten.

Bei mir siehts so aus:

$tabellenname="bonbons";
$sql1="SELECT bildurl FROM $tabellenname WHERE ID='$ID' ";
$link1=mysql_connect("localhost", "user", "pw");
mysql_select_db("db",$link1);
$result1=mysql_query($sql1,$link1);

for($x=0;$x<mysql_num_rows($result1);$x++)
{
$bildurl=mysql_result($result1,$x,"bildurl");
}
?>
<?php echo "<form name=change method=post
action=chadetails.php?ID=$ID enctype=multipart/form-data>";?>
<table>
<tr>
<td>Vorschaubild f&uuml;r den Artikel:</td>
<td><input type="file" name="bildurl" value="<?php echo $bildurl; ?>"></td>
</tr>
<tr>
<td>nbsp;</td>
<td>
<input type="submit" name="Abschicken" value="Abschicken">
<input type="reset" name="L&ouml;schen" value="L&ouml;schen">
</td>
</tr>
</table>
</form>


Nice Greetz 2 all

  Profil   E-Mail   Editieren   Zitieren

Ehemaliges Mitglied (#644)
Forenheld


Beiträge: 835


sorry, von myaql verstehe ich leider noch sogut wir garnix.

da kann ich dir nicht helfen. gruss, paul


  Profil   Editieren   Zitieren

Andreas S
Otto-Normal-Poster


Beiträge: 81


Nimm besser while() und mysql_fetch_array()

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26:
$tabellenname="bonbons";
$sql1="SELECT bildurl FROM $tabellenname WHERE ID='$ID' ";
$link1=mysql_connect("localhost", "user", "pw");
mysql_select_db("db",$link1);
$result1=mysql_query($sql1,$link1);

while($row = mysql_fetch_array($result1)){
$bildurl=$row['bildurl']; 
} 
?>
<?php echo "<form name=change method=post 
action=chadetails.php?ID=$ID enctype=multipart/form-data>";?>
<table>
<tr> 
<td>Vorschaubild f&uuml;r den Artikel:</td>
<td><input type="file" name="bildurl" value="<?php echo $bildurl; ?>"></td>
</tr>
<tr> 
<td>nbsp;</td>
<td> 
<input type="submit" name="Abschicken" value="Abschicken">
<input type="reset" name="L&ouml;schen" value="L&ouml;schen">
</td>
</tr>
</table>
</form>


Ob es jetzt geht weiß ich nicht, aber versuch es einfach und wenn es immer noch Probleme gibt, einfach nochmal posten.

  Profil   Editieren   Zitieren

pizzataxi
Quasselstrippe


Beiträge: 248


Danke für den Tipp, ich habe eben nochmal konrolliert: Die variable $bildurl ist mit dem korrekten Wert gefüllt, wie schaffe ich es nun, dass ich diese Variable innerhalb "input type=file" ausgegeben kriege? *indieschreibtischplattebeiß*

@ Paul: so schwer zu verstehen ist mysql nu auch wieder nicht ;o)

Die Sache ist folgende:

ich bastel gerade für einen Süßwarenhändler einen Katalog, den er dann selber Verwalten soll über nen Adminbereich. Dazu gehört auch, dass Daten verändert werden sollen. Hierzu sollen im Änderungsformular alle Daten die zu diesem Datensatz gehören eingetragen werden, bei allen Formularfeldern bis auf das Uploadfeld funzt es...
kann man eigentlich per value auch in einem <select> tag eine Voreinstellung realisieren?


Diese Nachricht wurde geändert von: pizzataxi
  Profil   E-Mail   Editieren   Zitieren

HG
Posting-Schinder


Beiträge: 520


Mir erscheint es irgendwie sinnlos, einem File-Uploader eine Voreinstellung zu geben. Du solltest das besser über ein select, in dem alle Bilder verzeichnet sind realisieren.

ein type=file ist wirklich nur für den Upload von dateien gedacht, und an sich nicht für bereits auf dem Server liegende Dateien.

---
www.kuminatano.de

  Profil   E-Mail   Website   Editieren   Zitieren

pizzataxi
Quasselstrippe


Beiträge: 248


*heul*

ich habe gerade bei selfhtml das hier entdeckt:

Das Attribut value= in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von moderneren Browsern aus Sicherheitsgründen nicht mehr unterstützt.

Da werd ich mir wohl etwas anderes auskaspern müssen um die Katalogverwaltung idiotensicher zu kriegen...




  Profil   E-Mail   Editieren   Zitieren

pizzataxi
Quasselstrippe


Beiträge: 248


Mir erscheint es irgendwie sinnlos, einem File-Uploader eine Voreinstellung zu geben. Du solltest das besser über ein select, in dem alle Bilder verzeichnet sind realisieren.

ein type=file ist wirklich nur für den Upload von dateien gedacht, und an sich nicht für bereits auf dem Server liegende Dateien.


Nur mal zur Erklärung:

Es handelt sich um eine Verwaltung für nen Süßwarenkatalog im Web. Zu den Artikeln kann ein Bild hochgeladen werden. Nun kann ja es z.B. sein, dass sich der Preis für den Artikel ändert. Dafür ist ein Formular vorgesehen in dem alle Daten dieses Datensatzes in die entsprechenden Formularfelder als Voreintrag eingelesen werden. Das Feld für die Dateiauswahl bleibt in diesem Fall leer.

Schickt er nun die geänderten Daten (ohne die zugehörige Bilddatei wieder auszuwählen)ab wird nun die unter Umständen vorher in der DB gespeicherte Url zum Bild und das Bild selber gelöscht, weil ja keine Datei im Uploadfeld eingetragen war.

Mein Auftrag lautete, dass der Katalog so einfach wie möglich zu bedienen sein soll, quasi Idiotensicher.

Inzwischen habe ich das Problem anderweitig lösen können. ;o)


  Profil   E-Mail   Editieren   Zitieren

hamsta
Pixelschubser


Beiträge: 1


mit dem jupload java applet ist das komfortabel möglich, mehrere dateien im batch-betrieb upzuloaden.

laut rfc1867 müssten die browser eigentlich eine mehrfachauswahl im "input type=file" tag unterstützten, aber meines wissens tut das bis heute noch keiner richtig (anscheinend konnte es mal der opera 6)

also bleibt nur mehrere file-tags oder eben das genannte java applet.
ist übrigens zu finden unter http://www.haller-systemservice.net/jupload/

Diese Nachricht wurde geändert von: hamsta
  Profil   Editieren   Zitieren

goalkeeper
Otto-Normal-Poster


Beiträge: 69


wenn du ne möglichkeit gefunden hast wie man was im stile von <input type file value=""> realisieren kann sag bescheid ich knobel da nämlich auch grad

  Profil   Editieren   Zitieren

Philipp Gérard
Foren-Team


Beiträge: 1508


pizzataxi schrieb am 28.03.2003 00:57
Schickt er nun die geänderten Daten (ohne die zugehörige Bilddatei wieder auszuwählen)ab wird nun die unter Umständen vorher in der DB gespeicherte Url zum Bild und das Bild selber gelöscht, weil ja keine Datei im Uploadfeld eingetragen war.


1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
if($_POST['bild']){

 $sql = "img='$_POST[bild]";

}

else {

$sql = "";

}

mysql_query("UPDATE table SET foo='$foo', ..., $sql");


---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


hiho....

also mir wäre mit einer lösung des problems auch geholfen (sicherheitsgründe)
so ein mist

ich will keine vorauswahl oder sowas haben....nein
ich will lediglich, wenn einer daten absendet und darin fehler sind,
sprich ein feld ist nicht ausgefüllt oder egal was,
das beim zurückgehen, die schon ausgefüllten felder nicht nochmal ausgefüllt werden
müssen, so auch das input-feld für die datei

... ich weis, das ich auch mit js überprüfen könnte, ob die felder korekt ausgefüllt
sind und erst dann das absenden der daten möglich machen....
,aber ich mag js einfach NICHT!

Grüße Raiserle

---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

Diese Nachricht wurde geändert von: raiserle
  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Ja, um JS wirst du bei dem Problem aber definitiv nicht drum rum kommen, das wäre nämlich das einzige was in der Lage wäre nach dem Laden der Seite noch das Feld mit Inhalt zu füllen. Und ich bin mir nicht mal sicher, ob das geht.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Es geht nicht. Man kann einem Dateiupload-Feld keine Vorauswahl geben. Nicht per HTML und auch nicht per JS. Eine solche Zuweisung wäre ein großes Sicherheitsproblem. Man könnte ja beliebige Werte eintragen und dann das Formular absenden lassen. Dann könnte eine Webseite einfach so Daten vom Rechner des Besuchers hochladen lassen.

Die einzige Möglichkeit Formulare, die ein solches Feld enthalten, zu prüfen ist JS. Eine solche Prüfung darf natürlich nur zusätzlich zu einer Serverseitigen drin sein. Aber sie kann an dieser Stelle ein großes Plus in der Usablity sein.



---
Weaverslave

  Profil   Website   Editieren   Zitieren
Seite 1 | 2  

Antworten
Nach oben