kein return wert bei upload function
kein return wert bei upload function
am 11.11.2006 17:27:52 von Kamistad
Guten Tag,
Ich habe hier eine function für bildupload. Das hatte nicht ganz
funktioniert, Da hab ich sie mit einem Kolleg nochmal angeschaut der
mir darauf hin ein paar sachen reingeschrieben habe die wir nicht ganz
verstehen warum des nicht korrekt zurück gibt.
Nur wenn ich
echo $temp2;
return $temp2;
zusammen setz seh ich überhaupt ein wert bei return, (Ist mir nicht
klar warum)
Ich benötige einen Return Wert des Bildnames. Wenn mir jemand einen
heisen Tipp hätte wäre ich dankbar.
MFG
Marcel M.
// $f_bild=3DDateiName
// $i=3DLaufVariable(wenn nur ein Bild dann auf 1 setzen
// $Verzeichnis_upload is klar
// $zufallAnAus 1=3Dan / 0=3Daus
function BildUpload($f_bild,$i,$Verzeichnis_upload,$zufallAnAus){
$BildDatei =3D $f_bild.$i;
$BildDateiName =3D $f_bild.$i.'_name';
global $$BildDatei;
global $$BildDateiName;
global $temp; //Warum muss ich das hier übergeben
$temp=3D$$BildDateiName; //Warum muss ich das hier übergeben
IF($zufallAnAus==1){
$zufall =3D mt_rand();
}Else{
$zufall =3D "";
}
IF (isset($$BildDatei)) {
copy($$BildDatei,$Verzeichnis_upload."/".$zufall."_".$$BildD ateiName);
}
//return $zufall."_".$BildDateiName;
//return $BildDateiName;
$temp2=3D $zufall."_".$GLOBALS["temp"];
echo $temp2;
return $temp2;
}
Re: kein return wert bei upload function
am 11.11.2006 17:59:16 von Ulf Kadner
Kamistad schrieb:
> Ich habe hier eine function für bildupload.
>
> // $f_bild=DateiName
> // $i=LaufVariable(wenn nur ein Bild dann auf 1 setzen
> // $Verzeichnis_upload is klar
> // $zufallAnAus 1=an / 0=aus
> function BildUpload($f_bild,$i,$Verzeichnis_upload,$zufallAnAus){
> $BildDatei = $f_bild.$i;
> $BildDateiName = $f_bild.$i.'_name';
> global $$BildDatei;
Da wird mir echt schlecht! Wenn die Bilddatei z.B. abc.txt heist soll
daraus also Deiner meinung nach $abc.txtn werden? Krass man...
Und dann noch mit variablen Variablen. Ne wa?
Die Funktion ist schlicht gesagt Schrott. Sorry! :-) Es wäre nett wenn
Du Dir PHP-Basiswissen aneignest, Dafür sind wir hier nicht zuständig.
Wenn Du das nicht willst schreibt Dir hier bestimmt gerne jemand für nen
paar Euronen eine passende Funktion.
MfG, Ulf
Re: kein return wert bei upload function
am 12.11.2006 04:29:11 von Hadanite Marasek
"Diese Newsgruppe richtet sich an alle Benutzer und Programmierer von
PHP, einer Scriptsprache mit Schwerpunkt auf der Entwicklung von
Webanwendungen.
Es können alle Themen rund um PHP besprochen werden, die nicht durch
eine der anderen de.comp.lang.php.* Gruppen abgedeckt werden"
Steht in der Charta...daraus ersehe ich auch das Recht, Fragen zu
stellen, die noch nicht von sonderlich viel Wissen zeugen. Wir haben
alle mal klein angefangen, und den Fortgeschrittenen bietet sich jetzt
die Möglichkeit, ob sie auf die Neulinge einhacken, damit sie sich
womöglich frustriert abwenden, oder ihnen was beibringen, damit sie sich
vielleicht auch mal zu einem Profi entwickeln. Ansonsten schlage ich vor
de.comp.lang.php.freiwild einzurichten und die Newbies dahin zu verweisen.
> Die Funktion ist schlicht gesagt Schrott. Sorry! :-) Es wäre nett wenn
> Du Dir PHP-Basiswissen aneignest, Dafür sind wir hier nicht zuständig.
Re: kein return wert bei upload function
am 12.11.2006 11:45:42 von Ulf Kadner
Hadanite Marasek schrieb:
> Steht in der Charta...daraus ersehe ich auch das Recht, Fragen zu
> stellen, die noch nicht von sonderlich viel Wissen zeugen.
Quark. Der OP hat nicht mal einen klitzekleinen Schimmer was er da macht
und wie PHP funktioniert. Warum erklär ich Dir das überhaupt?
Es ist ganz einfach. Schreib an den OP das Du bereit bis Ihm PHP
beizubringen und gut ist.
MfG, Ulf
Re: kein return wert bei upload function
am 12.11.2006 13:10:45 von Hadanite Marasek
Ich bin nicht bereit, aber das ist was anderes. Wenn ich nicht bereit
bin, eine Frage zu beantworten, dann lass ich es einfach und muss dem
anderen nicht eine reintreten. Das ist der Unterschied.
> Quark. Der OP hat nicht mal einen klitzekleinen Schimmer was er da macht
> und wie PHP funktioniert. Warum erklär ich Dir das überhaupt?
>
> Es ist ganz einfach. Schreib an den OP das Du bereit bis Ihm PHP
> beizubringen und gut ist.
>
> MfG, Ulf
Re: kein return wert bei upload function
am 12.11.2006 13:57:38 von Martin Lemke
Hadanite Marasek schrieb:
> Wir haben
> alle mal klein angefangen, und den Fortgeschrittenen bietet sich jetzt
> die Möglichkeit, ob sie auf die Neulinge einhacken,
Ulf hat berechtigte Kritik geübt und niemanden angegriffen. Der gepostete
Source ist nicht korrigierbar, sondern absoluter Schrott.
Es ist dem OP anzuraten, mit der Routine -- nach sorgfältiger Planung --
von Grund auf neu anzufangen.
> Ansonsten schlage ich vor
> de.comp.lang.php.freiwild einzurichten und die Newbies dahin zu verweisen.
Es steht Dir frei, alt.dev.null zu abonnieren und dort weiter zu weinen.
>> Die Funktion ist schlicht gesagt Schrott. Sorry! :-)
Wo Ulf Recht hat, hat er Recht. Um allerdings ein Smiley als
demotivierenden persönlichen Angriff zu werten, muss man schon ein festes
Feindbild haben.
Martin
Re: kein return wert bei upload function
am 12.11.2006 14:03:37 von Martin Lemke
Ulf Kadner schrieb:
> Da wird mir echt schlecht!
Freut mich, dass Du das auch so siehst.
Beim Anwenden von
function BildUpload($f_bild,$i,$Verzeichnis_upload,$zufallAnAus)
wäre ich schon damit überfordert, mir vorzustellen, was für Parameter die
Routine überhaupt haben will. In meinen Augen ist das alles schon im Ansatz
falsch.
Ein Bild soll hoch geladen werden und natürlich besteht die potentielle
Gefahr, dass eine Datei mit dem selben Namen bereits vorhanden ist, die
aber nicht überschrieben werden soll. Das lässt sich mit file_exists()
überpfüfen.
Es sollte nicht all zu schwierig sein, eine Strategie zu finden, in diesem
Fall -- und nur in diesem -- den angegebenen Dateinamen automatisch zu
ändern. Anscheindend soll das hier auch geschehen.
function BildUlpoad($source,$destination)
Für Parameter wie $i und $zufallAnAus habe ich keine Verwendung.
>> global $temp; //Warum muss ich das hier übergeben
Das weiß ich auch nicht.
function BildUpload($source,$destination)
{
if (!file_exists($destination))
copy($sourcefile,$destiantion);
else
copy($sourcefile,newfilename($destiantion));
}
Für newfilename($dest) kannst Du Dir was nettes ausdenken, dass dann einen
Dateinamen zurück gibt, den es noch nicht gibt. Datum Uhrzeit und PID böten
sich an.
Martin
Re: kein return wert bei upload function
am 12.11.2006 14:23:25 von Rudi Menter
Martin Lemke schrieb:
> Ulf Kadner schrieb:
>> Da wird mir echt schlecht!
> Freut mich, dass Du das auch so siehst.
Na sicher, dieses, äh, Snippet ist natürlich einfach indiskutabel.
So kann es nun sein, daß der Poster a) einfach ein Scherzkeks ist,
oder b) einer, der sich tatsächlich /nicht/ der "Qualität" seines
"Codes" bewußt ist und er wäre dann so eine Art Sonderschüler.
Nur, wie ihr reagiert habt, hat aber damit nix zu tun, sondern
stattdessen wurde wieder zuerst mal die zweifellos vorhandene
Möglichkeit zur Selbstdarstellung genutzt! Auch ok, warum denn nicht...
Allerdings ist das natürlich so eine Sache, seine eigene "fachliche
Meisterschft" an einem solchen Code überhaupt zu messen und um
das fertigzubringen, muß man wohl in den "restlichen" Belangen
der Welt eher, äh..., oder sagen wir mal eine Art Autist sein.
Man kann doch nicht erst sagen, daß der Code zum totlachen ist,
und dann, so als ob man das gleich wieder vergessen hat, selbst
ernstlich darauf eingehen...
Na immerhin, da habt ihr mich auch mal zum lächeln gebracht hier ;)
fG
--
Re: kein return wert bei upload function
am 12.11.2006 14:38:13 von Stefan Scholl
Martin Lemke wrote:
> Für newfilename($dest) kannst Du Dir was nettes ausdenken, dass dann einen
> Dateinamen zurück gibt, den es noch nicht gibt. Datum Uhrzeit und PID böten
> sich an.
In den 1980ern gab's ein Mailboxsystem in der Gegend, das lief
auf einem Apple IIe. Wenn man eine Datei geuploadet hat musste
man erst eine Weile warten. Die Dateien wurden nämlich unter
einer Nummer abgespeichert.
Diese Nummer war eine Zufallszahl. Wenn schon eine Datei mit
diesem Namen existierte wurde die nächste Zufallszahl erzeugt und
wieder geprüft ...
Hach. Der Sysop hatte kein Verständnis für das Gelächter, als er
diese Technik den Usern verraten hatte. :-)
Re: kein return wert bei upload function
am 12.11.2006 17:45:12 von Martin Lemke
Stefan Scholl schrieb:
> Hach. Der Sysop hatte kein Verständnis für das Gelächter, als er
> diese Technik den Usern verraten hatte. :-)
Ich hatte vor Jahren mal ein kompiliertes Programm gebaut, das Spam-Mails
archivierte. Und zwar in der Form .msg
Das Programm prüfte immer anfangend bei 1 ob die Datei schon existiert und
wenn ja wurde eins drauf gezählt. Bei den ersten paar hundert Spammails
arbeitete das Programm ja noch passabel, aber es wurde natürlich immer
langsamer. Der Algorithmus war einfach zu schlecht.
Das Programm hätte sich zumindest die zuletzt vergebene Nummer merken
können. Dann hätte es vermutlich besser funkioniert. Bei tausenden von
Filerequests kann das System schon mal in die Knie gehen.
Man muss eben beim Programmieren ein paar schlechte Erfahrungen hin nehmen,
wenn man nicht immer vorher alles gründlichst analysiert. Die Quintessenz
daraus nennt man Erfahrung. Und die können wir keinem Anfänger hier einfach
mal zu zustecken. Die muss jeder selber sammeln, weil sie mit seiner
eigenen Arbeitsweise eng verbunden ist.
Martin
Re: kein return wert bei upload function
am 12.11.2006 17:58:39 von Claus Reibenstein
Martin Lemke schrieb:
> Ich hatte vor Jahren mal ein kompiliertes Programm gebaut, das Spam-Mails
> archivierte. Und zwar in der Form .msg
>
> Das Programm prüfte immer anfangend bei 1 ob die Datei schon existiert und
> wenn ja wurde eins drauf gezählt. Bei den ersten paar hundert Spammails
> arbeitete das Programm ja noch passabel, aber es wurde natürlich immer
> langsamer. Der Algorithmus war einfach zu schlecht.
Verbesserungsvorschlag: Ich würde in einer ersten Schleife bei 1
anfangen und die Zahl immer verdoppeln, bis ich eine freie Nummer finde.
Danach würde ich in einer zweiten Schleife die Schrittweite halbieren
und von der letzten Nummer abziehen, falls diese noch frei ist, bzw.
draufzählen, falls sie schon belegt ist, bis die Schrittweite auf 0
gesunken ist. Selbst bei 1000 bereits belegten Nummern hättest Du so
schon nach ca. 20 Tests die nächste freie Nummer gefunden.
Bei 1.000.000 belegten Dateien wären es zwar "schon" 40, aber bis dahin
dürftest Du eh' auf ganz andere Probleme gestoßen sein ;-)
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Re: kein return wert bei upload function
am 12.11.2006 18:12:47 von Rudi Menter
Claus Reiben stein:
> Martin Lemke schrieb:
>> Ich hatte vor Jahren mal ein kompiliertes Programm
> Verbesserungsvorschlag: Ich würde in einer ersten Schleife bei 1
> anfangen und die Zahl immer verdoppeln, bis ich eine freie Nummer finde.
> Danach würde ich in einer zweiten Schleife die Schrittweite halbieren
> und von der letzten Nummer abziehen, falls diese noch frei ist, bzw.
> draufzählen, falls sie schon belegt ist, bis die Schrittweite auf 0
> gesunken ist. Selbst bei 1000 bereits belegten Nummern hättest Du so
> schon nach ca. 20 Tests die nächste freie Nummer gefunden.
Brauchst nicht die anderen wie Schwerbehinderte zu behandeln:
http://de.wikipedia.org/wiki/Bin%C3%A4rsuche
Re: kein return wert bei upload function
am 12.11.2006 18:22:56 von Martin Lemke
Claus Reibenstein schrieb:
> Selbst bei 1000 bereits belegten Nummern hättest Du so
> schon nach ca. 20 Tests die nächste freie Nummer gefunden.
Der Fantasie ist keine Grenzen gesetzt.
Noch ein Vorschalg:
Angehängte Nummern werden erstmal abgeschnitten und dann nimmt das Programm
den um eins erhöhten Wert der Zahl, die es zuletzut angehängt hat. Damit
reduziert sich die Zahl der Tests auf einen.
Man kann aber auch pauschal einen Wert, der aus Datum und Zeit besteht,
anhängen.
baum-20061112-182356.jpg
Sieht natürlich doof aus. Aber der OP wird schon einen Ansatz finden.
Martin
Re: kein return wert bei upload function
am 12.11.2006 19:27:13 von Hadanite Marasek
> Ulf hat berechtigte Kritik geübt und niemanden angegriffen. Der gepostete
> Source ist nicht korrigierbar, sondern absoluter Schrott.
>
> Es ist dem OP anzuraten, mit der Routine -- nach sorgfältiger Planung --
> von Grund auf neu anzufangen.
Natürlich. Nur kann man das auch anders formulieren, ohne den OP
zusammenzustampfen.
Re: kein return wert bei upload function
am 12.11.2006 19:38:12 von Hadanite Marasek
Cool. Ich habe mir mal eine Art CMS gebastelt, in den Texten sollten
Schlüsselwörter durch Links ersetzt werden. Die Wörter waren mit einem #
markiert, also #PHP sollte zu werden. Die Schlüsselwörter
und Ziele habe ich in einer CSV-Datei vorgehalten. Immer wenn ein Text
angezeigt wurde, ging eine Schleife über die CSV-Datei und hat für jedes
Schlüsselwort ein preg_replace gemacht...kam leider nie in den Genuss zu
sehen, was mit dem System passiert, wenn mal mehr als zwei Leute pro Tag
drauf zugreifen ;-)
Am Anfang war ich einfach mal froh, wenn was lief. Dann hab ich mir
Gedanken über Sicherheit und Performance gemacht und nach besseren Wegen
gesucht.
> Das Programm prüfte immer anfangend bei 1 ob die Datei schon existiert und
> wenn ja wurde eins drauf gezählt. Bei den ersten paar hundert Spammails
> arbeitete das Programm ja noch passabel, aber es wurde natürlich immer
> langsamer. Der Algorithmus war einfach zu schlecht.
Re: kein return wert bei upload function
am 12.11.2006 20:15:18 von Michael Fesser
..oO(Hadanite Marasek)
>Cool. Ich habe mir mal eine Art CMS gebastelt, in den Texten sollten
>Schlüsselwörter durch Links ersetzt werden. Die Wörter waren mit einem #
>markiert, also #PHP sollte zu werden. Die Schlüsselwörter
>und Ziele habe ich in einer CSV-Datei vorgehalten. [...]
Prinzipell mache das immer noch, um automagisch bestimmte Wörter durch
mit entsprechendem 'title'-Attribut zu ersetzen. Liste der Terme
aus CSV-Datei laden und vor der Ausgabe an den Browser ein paar preg-
replace() über den Text jagen. Wahlweise läßt sich auch die Anzahl der
Ersetzungen pro Term einstellen. Läuft gut.
>Immer wenn ein Text
>angezeigt wurde, ging eine Schleife über die CSV-Datei und hat für jedes
>Schlüsselwort ein preg_replace gemacht...kam leider nie in den Genuss zu
>sehen, was mit dem System passiert, wenn mal mehr als zwei Leute pro Tag
>drauf zugreifen ;-)
So übel ist die Performance hier gar nicht, andere Skriptteile verbraten
deutlich mehr. Und sollte es wirklich einmal eng werden bzw. die
Komplexität soweit ansteigen, daß mir die Laufzeit der Skripte zu lang
wird, dann gibt es immer noch Cachingmöglichkeiten.
Micha