php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-09-2003, 13:18
Gismo
 Junior Member
Links : Onlinestatus : Gismo ist offline
Registriert seit: Jul 2003
Beiträge: 51
Gismo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Image upload

Hallo PHP-ler!
Mit folgendem Formular und der dazugehörigen PHP-Datei lade ich insgesamt 3 Bilder auf den Server (klappt auch).
Meine Fragen:
1.Gibt es für die PHP-Datei eine elegantere Lösung als jedes Bild einzeln anzugeben?
2. Kann man den Code so abändern, dass die Namen der Bilder gleichzeitig in einer MySQL-Datenbank gespeichert werden?
Danke für Eure Hilfe!
Gruß
Gismo

FORM.HTML
.....
<input type="file" name="image" size="30">
<input type="file" name="imagea" size="30">
<input type="file" name="imageb" size="30">

<input type="submit" name="submit" value="laden">
.....


UPLOAD.PHP

<?
if ($image_name != "") {
move_uploaded_file("$image", "$upload_path$image_name")
or die("$varfile_error!");
} else {
die("$varno_file");
}
if ($imagea_name != "") {
move_uploaded_file("$imagea", "$upload_path$imagea_name")
or die("$varfile_error!");
} else {
die("$varno_file");
}
if ($imageb_name != "") {
move_uploaded_file("$imageb", "$upload_path$imageb_name")
or die("$varfile_error!");
} else {
die("$varno_file");
}
?>
Mit Zitat antworten
  #2 (permalink)  
Alt 09-09-2003, 13:42
microsoftgegner
 Newbie
Links : Onlinestatus : microsoftgegner ist offline
Registriert seit: Sep 2003
Beiträge: 43
microsoftgegner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
<?php
#Die Datei die in die DB-einträgt
#folgendes mit allen drei bildern machen

	$i_bild_name = $image;

/*Hier musst du dir unbedingt den Dateinamen aus dem kompletten Pfad ausgeben lassen... gibt ne PHP-Funktion dazu!!!*/

	$hochkomma = chr(92) . chr(39);

	$i_bild_name = strtolower($i_bild_name);
	$i_bild_name = str_replace($hochkomma , "_",$i_bild_name);
	$i_bild_name = str_replace(" ","_",$i_bild_name);
	$i_bild_name = str_replace(":","_",$i_bild_name);
	$i_bild_name = str_replace("ß","ss",$i_bild_name);
	$i_bild_name = str_replace("&","und",$i_bild_name);
	$i_bild_name = str_replace("ä","ae",$i_bild_name);
	$i_bild_name = str_replace("ö","oe",$i_bild_name);
	$i_bild_name = str_replace("ü","ue",$i_bild_name);
	$i_bild_name = str_replace("?","_",$i_bild_name);
	$i_bild_name = str_replace("/","_",$i_bild_name);

	$i_bild_name = $i_bild_name . ".png";

#ab hier trägt der in die DB ein

	$verbindung = mysql_connect($SERVER,$user,$passwd) or die
		("Keine Verbindung moeglich");
	mysql_select_db("db-name") or die 
		("Die Datenbank existiert nicht");

  	$db_entry = "INSERT INTO irgendeinname (bild) VALUES ('$i_bild_name')";
	$eintragen = mysql_query($db_entry);
	mysql_close($verbindung);
?>
Die obere aktion mit dem ersetzten von zeichen sorgt dafür, dass es auf anderen plattformen keine probleme gibt, dannach wird der dateiname in die db eingetragen, du kannst bei einer abfrage also mit dem pfad und dem dateinamen aus der db eines der bilder einbinden.

Musst nur mal schauen, wie das mit der dateiendung ist!!! Bei mir isses halt nur *.png!!!

Viel Glück damit!

~Microsoft®Gegner~
Mit Zitat antworten
  #3 (permalink)  
Alt 09-09-2003, 14:36
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.273
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zum ersten ... die Vorgehensweise über $image_name ist obsolet ... das aktuelle Handling von File Uploads findest Du im Kapitel 18. Handling file uploads der Online Dokumentation.

Zum anderen ... was spricht dagegen ein Array zu verwenden??
FORM.HTML
Code:
.....
<input type="file" name="image[]" size="30">
<input type="file" name="image[]" size="30">
<input type="file" name="image[]" size="30">

<input type="submit" name="submit" value="laden">
UPLOAD.PHP
PHP-Code:
foreach ( $_FILES["image"]["error"] AS $key => $error ) {
    if ( 
$error == UPLOAD_ERR_OK ) {
        
move_uploaded_file($_FILES["image"]["tmp_name"][$key], $upload_path.$_FILES["image"]["name"]);
    } else die(
$error);

__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #4 (permalink)  
Alt 13-09-2003, 07:32
Gismo
 Junior Member
Links : Onlinestatus : Gismo ist offline
Registriert seit: Jul 2003
Beiträge: 51
Gismo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für Eure Hilfe, leider kann ich mich erst heute melden.

Ich habe mich jetzt für die unten stehende Lösung entschieden.
Ich habe aber noch ein Problem. Die Daten werden in die Datenbank eingetragen, dass klappt

auch super. Wenn man aber noch keine Bilder ausgewählt hat oder die Bilder bereits gespeichert

wurden und man drückt im Browser auf den Refreshbutton, wird wieder ein neuer Datensatz

eingefügt bzw. die bereits gespeicherten Bilder werden erneut eingefügt. Läßt sich das

irgendwie verhindern?
Danke und Gruß
Gismo

PHP-Code:
<?php

require("../config.php");

$numoffile 6;
$file_dir "../images/";
$filename = array();
if (
$_POST) {
    for (
$i=0;$i<$numoffile;$i++) {
        if (
trim($_FILES['myfiles']['name'][$i])!="") {
            
$newfile $file_dir.$_FILES['myfiles']['name'][$i];
            
move_uploaded_file($_FILES['myfiles']['tmp_name'][$i], $newfile);

            
// Diese Variable speichert die Namen hintereinander
            
array_push ($filename$newfile);
            
$j++;
        }
    }
}
if (isset(
$j)&&$j>0)
    print 
"Ihre Bilder wurden geladen.<br>";
print 
"<form method='post' enctype='multipart/form-data'>";
for(
$i=0;$i<$numoffile;$i++) {
    print 
"<input type='file' name='myfiles[]' size='30'><br>";
}
print 
"<input type='submit' name='action' value='Upload'>";
print 
"</form>";

//ab hier wird in die Datenbank eingefügt
$sql "INSERT INTO bilder (image,imagea,imageb,imagec,imaged,imagee) VALUES 
('"
.$filename[0]."','".$filename[1]."','".$filename[2]."','".$filename[3]."','".$filename[4]."

','"
.$filename[5]."')";
$con = @mysql_connect($host$user$pass) or
    die(
"Keine Verbindung möglich: " mysql_error());
mysql_select_db($database$con); // Datenbank wird geöffnet
$rs mysql_query($sql$con);

if(!
$rs)
echo 
"Daten konnten nicht gespeichert werden!";

?>
Mit Zitat antworten
  #5 (permalink)  
Alt 13-09-2003, 20:18
Gismo
 Junior Member
Links : Onlinestatus : Gismo ist offline
Registriert seit: Jul 2003
Beiträge: 51
Gismo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Danke, hat sich erledigt

Ich habe einfach ein weiteres Feld eingefügt, in dem die entsprechende Objekt-Nr. eingegeben wird. Dieses Feld habe in MySQL als "unique" deklariert, so dass ein Refresh/Reload keine Auswirkung mehr hat, da der Datensatz mit der Nummer schon vorhanden ist.
Gruß
Gismo
Mit Zitat antworten
  #6 (permalink)  
Alt 13-09-2003, 20:44
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich habe einfach ein weiteres Feld eingefügt, in dem die entsprechende Objekt-Nr. eingegeben wird. Dieses Feld habe in MySQL als "unique" deklariert, so dass ein Refresh/Reload keine Auswirkung mehr hat, da der Datensatz mit der Nummer schon vorhanden ist.
warum kein unique über alle felder? (hab nicht alles gelesen, sorry)
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 13-09-2003, 21:12
Gismo
 Junior Member
Links : Onlinestatus : Gismo ist offline
Registriert seit: Jul 2003
Beiträge: 51
Gismo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zusätzlich zur Objekt-Nr. und den Bildern werden noch diverse andere Daten gespeichert. Die Objekt-Nr. ist fest vorgegeben. Die Bilder und auch Teile der anderen Eingaben können mehrfach vorkommen (es handelt sich um eine Immobilienseite für die Firma bei der ich angestellt bin).
Gruß
Gismo
Mit Zitat antworten
  #8 (permalink)  
Alt 13-09-2003, 22:52
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

achso, ich dachte das wäre jetzt zwangsläufig zusätzlich angegeben worden.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 14-09-2003, 13:27
Àchtim
 Junior Member
Links : Onlinestatus : Àchtim ist offline
Registriert seit: Sep 2003
Beiträge: 104
Àchtim ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo, ich habe auch ein Problem beim Upload, vielleicht könnt Ihr mir weiterhelfen:

PHP-Code:
$datei_verz "/home/confixxhome/meinuser/html/upload";
$datei_url "http://meinedomain.de/upload";
if ( isset(
$fupload) ) {
    
move_uploaded_file($fupload,"$datei_verz/$fupload_name") or die($varfile_error);

Es kommt die Fehlermeldung:
Zitat:
Warning: Unable to create '/home/confixxhome/meinuser/html/upload/ToDo.txt': Keine Berechtigung in /home/confixxhome/meinuser/html/inhalt10_.php on line 10

Warning: Unable to move '/home/confixxhome/meinuser/phptmp/phpF6BJ7S' to '/home/confixxhome/meinuser/html/upload/ToDo.txt' in /home/confixxhome/meinuser/html/inhalt10_.php on line 10
Muss ich etwas anders machen wg. der Berechtigung die Datei zu uploaden oder geht der Fileupload doch grundsätzlich nicht bei meinem Provider (hoster24.de)??
Mit Zitat antworten
  #10 (permalink)  
Alt 14-09-2003, 13:33
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

manual gelesen? drüber nachgedacht?

Zitat:
Muss ich etwas anders machen wg. der Berechtigung die Datei zu uploaden
Natürlich musst du die rechte des dirs in das du uploaden wills entsprechen geben. wenn die net gesetzt sind (wx) dann gehts auch nicht.

Zitat:
oder geht der Fileupload doch grundsätzlich nicht bei meinem Provider (hoster24.de)??
*schmunzel*
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 14-09-2003, 13:56
Àchtim
 Junior Member
Links : Onlinestatus : Àchtim ist offline
Registriert seit: Sep 2003
Beiträge: 104
Àchtim ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
*schmunzel*
nich gut?
Mit Zitat antworten
  #12 (permalink)  
Alt 14-09-2003, 14:02
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Warum? Brauchst nur im FTP die entsprechenden chmods zu machen!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #13 (permalink)  
Alt 14-09-2003, 14:19
Àchtim
 Junior Member
Links : Onlinestatus : Àchtim ist offline
Registriert seit: Sep 2003
Beiträge: 104
Àchtim ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jo klappt! Danke
Mit Zitat antworten
  #14 (permalink)  
Alt 14-09-2003, 14:20
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Übrigens auch danke das du gesucht hast und nicht direkt nen neuen Thread aufgemacht hast. (muss ja auch mal gesagt werden )
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #15 (permalink)  
Alt 16-09-2003, 15:45
Gismo
 Junior Member
Links : Onlinestatus : Gismo ist offline
Registriert seit: Jul 2003
Beiträge: 51
Gismo ist zur Zeit noch ein unbeschriebenes Blatt
Standard nach eine Frage

Ich möchte, dass mein Script (siehe 4-ter Beitrag in diesem Thread und unten) nachdem ich auf den Submit-Button geklickt habe und die Daten in der Datenbank gespeichert wurden eine neue Seite (xyz.php) aufruft.

Irgenwie krieg ich das nicht hin.
Danke und Gruß
Gismo

PHP-Code:
 
<?php

require("../config.php");

$numoffile 6;
$file_dir "../images/";
$filename = array();
if (
$_POST) {
    for (
$i=0;$i<$numoffile;$i++) {
        if (
trim($_FILES['myfiles']['name'][$i])!="") {
            
$newfile $file_dir.$_FILES['myfiles']['name'][$i];
            
move_uploaded_file($_FILES['myfiles']['tmp_name'][$i], $newfile);

            
// Diese Variable speichert die Namen hintereinander
            
array_push ($filename$newfile);
            
$j++;
        }
    }
}
if (isset(
$j)&&$j>0)
    print 
"Ihre Bilder wurden geladen.<br>";
print 
"<form method='post' enctype='multipart/form-data'>";
for(
$i=0;$i<$numoffile;$i++) {
    print 
"<input type='file' name='myfiles[]' size='30'><br>";
}
print 
"<input type='submit' name='action' value='Upload'>";
print 
"</form>";

//ab hier wird in die Datenbank eingefügt
$sql "INSERT INTO bilder (image,imagea,imageb,imagec,imaged,imagee) VALUES 
('"
.$filename[0]."','".$filename[1]."','".$filename[2]."','".$filename[3]."','".$filename[4]."

','"
.$filename[5]."')";
$con = @mysql_connect($host$user$pass) or
    die(
"Keine Verbindung möglich: " mysql_error());
mysql_select_db($database$con); // Datenbank wird geöffnet
$rs mysql_query($sql$con);

if(!
$rs)
echo 
"Daten konnten nicht gespeichert werden!";

?>
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:32 Uhr.