Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 06.12.2005, 19:19 Titel:
Image uploaden, umbenennen und ggf. verwerfen! |
|
|
|
|
Ja guten Tag alle miteinander
habe mittlerweile mein Clan CMS ziemlich weit (70 % ca.) allerdings hab ich noch kleine schwierigkeiten bei dem userpic Upload System ... User sollen ihr Bild uploaden können, allerdings soll es eine Proportion von 2/3 haben. (beispiel: 100 / 133, 270 / 360 etc..) ...
Soweit so gut, hier ist mal das was ich bisher habe:
Code: |
<?
include ('config.php');
function uploadFromHDD($file,$uploaddir){
$dateiendung = explode('.',$file['name']);
$dateiendung2 = $dateiendung[1];
move_uploaded_file($file['tmp_name'], $uploaddir . 'rename_' . '.' . $dateiendung2);
$filetype = getimagesize($uploaddir. 'rename_' . '.' . $dateiendung2);
if(($filetype[2] != 1) && ($filetype[2] != 2) && ($filetype[2] != 3)){
$status = "Nur gif, png und jpeg Dateien dürfen hochgeladen werden. Datei löschen";
} else {
echo "richtiger Dateityp<br />";
if(($filetype[0] < 271) && ($filetype[1] < 361)){
echo "richtige Dateigröße <br />";
if($filetype[2] == 2) {
rename($uploaddir.'rename_.jpg', $uploaddir.'user_'$uid'.jpg');
echo "UPDATE Dateityp: jpg<br />";
mysql_query("UPDATE ".$pref."user SET userpic='$pic' WHERE userid='$uid'",$link) or die(mysql_error());
echo 'Ihr userbild wurde erfolgreich hochgeladen. Bitte haben sie ein wenig geduld und sie werden Weitergeleitet!<br />';
} elseif($filetype[2] == 1) {
rename($uploaddir.'rename_.gif', $uploaddir.'user_'$uid'.gif');
echo "UPDATE Dateityp: gif<br />";
$sql = mysql_query("UPDATE ".$pref."user SET userpic='$pic' WHERE userid = '".$uid."'",$link);
echo 'Ihr userbild wurde erfolgreich hochgeladen. Bitte haben sie ein wenig geduld und sie werden Weitergeleitet!<br />';
} elseif($filetype[2] == 3) {
rename($uploaddir.'rename_.png', $uploaddir.'user_'$uid'.png');
echo "UPDATE Dateityp: png<br />";
$sql = mysql_query("UPDATE ".$pref."user SET userpic='$pic' WHERE userid = '".$uid."'",$link);
echo 'Ihr userbild wurde erfolgreich hochgeladen. Bitte haben sie ein wenig geduld und sie werden Weitergeleitet!<br />';
} else {
//unlink($uploaddir.$file['name']);
//$error = "invalid picture-format (allowed: gif or jpg)";
//die('ERROR: '.$error.'<br><br><input type="button" class="button" onClick="javascript:history.back()" value="Back">');
echo "falscher dateityp datei löschen<br />";
}
} else {
echo "falsche Dateigröße Bild löschen<br />";
}
}
}
if(isset($_POST['submit_userpic'])){
echo "gesendet";
echo "<pre>";
print_r($_FILES['userpic']);
echo "</pre>";
uploadFROMHDD($_FILES['userpic'],'user/');
} else {
echo "nicht gesendet";
}
?> |
Es funktioniert allerdings net :-/
Weiss nicht warum, es verschiebt nur mein layout, keine echos kommen etc.. sehr komisch...
Wäre nett wenn sich das mal jemand anschaut |
|
Nach oben |
|
|
unex`9dots Administrator
Angemeldet: 02.08.2003 Beiträge: 1106 Wohnort: Karlsruhe Interessen: Coding, Segeln, Schwimmen, PC
|
Verfasst am: 06.12.2005, 20:13 Titel:
|
|
|
|
|
wäre schön wenn du noch etwas genauer beschreiben koenntest was geht und was nicht... wenn bei dir mit dem gepostetetn Code GARNICHTS ausgegebn wird springt er ja nicht mal ins if Statement und ruft somit die eigentlich Funktion schonmal garnicht auf.
Genauere Infos wären also prima, da wir keine Lust auf unnötiges Suchen haben^^ |
|
Nach oben |
|
|
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 06.12.2005, 23:07 Titel:
|
|
|
|
|
Also foglendes:
Ich klick auf "durchsuchen" such das bild aus und klicke auf "upload" ...
dann verzieht es mein komplettes layout, es gibt keine Fehlermeldung aus ... nichts passiert :-/
Wenn ich in den "Zielordner" gehe, finde ich auch keine hochgeladene Datei ... das heisst er kommt nedmal zur Ausführung der If-Clause ...
Hättet Ihr vielelicht irgendwelche alternative Möglichkeit ?
Oder wisst ihr wie ich es rausbekomm was daran falsch sit ? |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 06.12.2005, 23:21 Titel:
|
|
|
|
|
Versuchen wir doch diesem Problem auf die Schliche zu kommen, wie jedem anderen:
Code: | error_reporting(E_ALL); |
Und dann sag mal bescheid, was er dir ausspuckt. |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 07.12.2005, 09:55 Titel:
|
|
|
|
|
- Ist die GDLib aufm Server installiert ?
- Hat der Webserver Schreib-Rechte in dem Zielverzeichnis ? (soweit ich weis geht das nur ueber CHMOD 777 - kommt drauf an obs nen root ist oder nur nen normaler ftp zugang)
- wieso benennst du die erst auf rename um (und verschiebst sie) - und dann wieder umbenennen auf den richtigen namen, etc ? mach doch erst den upload in das richtige verzeichnis wenn alles stimmt ?
Also den Syntax kenn ich nicht - hast du die Fehlerausgabe aus? Da fehlen zwei Punkte zwischen der Variable und dem String...
Nen bissle Kommentierter Code waer auch nicht schlecht ^^ |
|
Nach oben |
|
|
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 07.12.2005, 15:28 Titel:
|
|
|
|
|
Erstmal danke für eure Antworten ...
Code: |
error_reporting(E_ALL); |
Hat absolut gar nichts gebracht ... gibt immernoch nichts aus :-/
Hier noch die erklärung zu $uid:
$uid ist die userid desjenigen der gerade eigeloggt ist. d.h: Ich bin Userid 1, wenn ich eingeloggt bin udn das Bild hochlade, sollte es eigentlich umbenannt werden in "user_1.jpg" ...
Hat jemand ne andere möglichkeit dies zu realisieren ? oder geht euer Script und ihr gebt es frewillig her ?
Ich finde den fehler einfach nicht :-/
*EDIT*:
Okay, Du hattest recht. Es liegt daran:
Wie muss es denn aussehen das es funktioniert ? So ?:
Code: | 'user_'.$uid.'.jpg' | ? |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 07.12.2005, 16:35 Titel:
|
|
|
|
|
haGakuRe hat folgendes geschrieben: | Okay, Du hattest recht. Es liegt daran:
Wie muss es denn aussehen das es funktioniert ? So ?:
Code: | 'user_'.$uid.'.jpg' | ? |
Ja, und in diesem Fall müsste error_reporting(E_ALL) eigentlich die entsprechende Fehlerausgabe erzwingen. |
|
Nach oben |
|
|
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 07.12.2005, 18:12 Titel:
|
|
|
|
|
nicht wirklich ... sobald ich
oder
Code: | 'user_'.$uid.'.jpg' |
drin hab, verzieht es das layout, und es wird absolut nichts ausgegeben ;D |
|
Nach oben |
|
|
rey Mitglied
Angemeldet: 24.07.2004 Beiträge: 810 Wohnort: Bad Homburg Interessen: synth ;)
|
Verfasst am: 07.12.2005, 18:27 Titel:
|
|
|
|
|
Was nicht gleichbedeutend mit einer syntaktischen Unkorrektheit ist. |
|
Nach oben |
|
|
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 08.12.2005, 14:42 Titel:
|
|
|
|
|
... durch die . konnektoren ist es auch kein syntax fehler ...
$uid hat einen wert ... glaube cih doch zumindest ;P .. hmm das probier ich jetzt eifnach mal aus und melde mich dann wieder
**EDIT**:
ich hab nun einfach mal hier:
Code: | if(isset($_POST['submit_userpic'])){
echo "Ihr userbild wird gesendet ...<br />";
echo "Ihre Userid lautet (TEST 2): ".$uid."<br />"; |
und hier:
Code: | if($filetype[2] == 2) {
rename($uploaddir.'rename_.jpg', $uploaddir.'user_'.$uid.'.jpg');
echo "UPDATE Dateityp: jpg ... fortfahren<br />";
echo "Ihre Userid lautet: ".$uid."<br />"; |
die USERID ausgegeben ... als anwortet erhalte ich folgendes:
Ihre Userid lautet (TEST 2): 1 (Das ist wenn man absendet)
Ihre Userid lautet: (Das ist das echo während dem upload vorgang)
Das heisst ... er hat während dem vorgang die userID ned ... wie bekomm ich die dann da rein ?
per $_GET ist es ja auch blöd und völlig unsicher :-/ |
|
Nach oben |
|
|
Thomas`tiweb Mitglied
Angemeldet: 03.08.2004 Beiträge: 115 Wohnort: Bruchsal
|
Verfasst am: 08.12.2005, 23:52 Titel:
|
|
|
|
|
wahrscheins rufste bei dem Programm am Anfang nicht session_start() auf ?
du setzt auch einfach $uid nicht - vielleicht haengt es daran ? ich weis ja nicht was du in der config.php alles machst
probier mal:
ini_set("display_errors", "1");
error_reporting(E_ALL);
sollte nun alle deine fehler ausgeben - uebrigens ich hoffe du hast keinen schwarzen hintergrund (oder wenigstens ne gescheite css), sonst ist es klar warum du die fehleranzeige nicht siehst und es das design zerreist |
|
Nach oben |
|
|
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 09.12.2005, 12:50 Titel:
|
|
|
|
|
Thomas`tiweb hat folgendes geschrieben: | wahrscheins rufste bei dem Programm am Anfang nicht session_start() auf ?
|
Notice: A session had already been started - ignoring session_start() in
... reicht das ?
Und ja, ich hab keinen dunklen background ... hat schon alles seine Ordnung ...
Code: | Notice: Undefined variable: uid in |
Wie bring ich die UID von der session denn dann mitrein ? :-/
In der index.php steht ja bereits:
Code: | session_start();
if(!$sid) $sid = session_id();
if(!$uid) $uid = $HTTP_SESSION_VARS[uid];
if(!$upw) $upw = $HTTP_SESSION_VARS[upw];
if(!$uid) $uid = $HTTP_COOKIE_VARS["uid"];
if(!$upw) $upw = $HTTP_COOKIE_VARS["upw"]; |
**EDIT**:
Okay habs nun einfach in die function eingebaut ...
( function uploadFromHDD($file,$uploaddir,$uid){ ) ... funktioniert auch wunderbar =] vielen DANK an euch alle ;> |
|
Nach oben |
|
|
unex`9dots Administrator
Angemeldet: 02.08.2003 Beiträge: 1106 Wohnort: Karlsruhe Interessen: Coding, Segeln, Schwimmen, PC
|
Verfasst am: 09.12.2005, 18:39 Titel:
|
|
|
|
|
was ja nicht verwunderlich ist, da in den Funktionen nur die lokalen Variablen der Funktion verfügbar sind. |
|
Nach oben |
|
|
haGakuRe Mitglied
Angemeldet: 23.04.2005 Beiträge: 62
|
Verfasst am: 09.12.2005, 19:59 Titel:
|
|
|
|
|
=] ... nehmts mir bitte nicht böse ...
Das ist das erste mal dass ich mit "functionen" arbeite ... daher musste ich erstmal paar erfahrungen saammeln |
|
Nach oben |
|
|
unex`9dots Administrator
Angemeldet: 02.08.2003 Beiträge: 1106 Wohnort: Karlsruhe Interessen: Coding, Segeln, Schwimmen, PC
|
Verfasst am: 09.12.2005, 20:01 Titel:
|
|
|
|
|
wir sind dir sicherlich nicht böse nur so lernt man es... solche sachen sind wohl jedem schon passiert. Ich wollte lediglich den gerenerellen Zusammenhang von Variablen und Funktionen andeuten.
Beim nächsten mal wäre es aber schön wenn du uns gleich eine genauere Analyse des Problem mit error report etc. liefern könntest |
|
Nach oben |
|
|
|