Nytt i forumet
Senaste privatannonserna
Prylar säljes, köpes, bytes och skänkes
| 2012-06-30, 14:57 | #1 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Problem med uppladdning [PHP]
Hej!
Jag pular på ett skript för att ladda upp bilder till min hemsida. Om jag använder t.ex. "/var/www/site/album" som mapp att flytta uppladdade bilden till så fungerar det. Men när jag vill använda mig av en mapp beroende på användare så går det inte, bilden laddas inte upp alls. T.ex. "/var/www/site/album/$username" så fungerar det inte. $username innehåller, som ni kanske förstår, användarnamnet på den inloggade användaren. ^^ Någon som vet en lösning på problemet? Med vänliga hälsningar, Daniel Lundahl EDIT: Här kommer hela koden:
<?php
Senast redigerad av lundahldaniel 2012-06-30 klockan 17:37.
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-06-30, 15:18 | #2 |
SnackerMedlem Plats: Umeå Registrerad: aug 2011 |
Skulle man kunna få mer kod?
Se även till så att PHP har rättighet att spara till den mappen Skickades från m.sweclockers.com
__________________
Stationär: AMD Athlon X2 Dual Core 6400+ 3,21 GHz | 2x1GB DDR2 667 MHz | 320 GB SATA2 7200rpm | ASUS Radeon HD 4350 512 MB | Deltaco PSU 423 500W Laptop: ASUS X72J Series | Intel i3-330M 2,13 GHz | 2x2GB DDR3 1333 MHz | Seagate 500 GB SATA2 5400rpm | ATI Mobility Radeon HD 5470 1 GB Krignutrustning: Logitech G400 | Mionix Keid 20 | Microsoft Basic Keyboard 1.0A |
|
|
| 2012-06-30, 15:28 | #3 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Självklart. Glömmer bort det varje gång
![]() FUNKAR
if (!empty($_FILES)) {
if (!empty($_FILES)) {
mkdir("./albums/$username");
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-06-30, 16:06 | #6 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Citat:
$username = $row['username']; men har även testat $username = "$row[username]"; Inget av dem fungerar :/
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-06-30, 16:09 | #7 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Citat:
Har det något med saken att göra? :S
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-06-30, 16:26 | #8 |
fiffyMedlem Plats: Malmö Registrerad: jul 2008 |
Citat:
Det ska vara det översta, troligen. Svårt att säga utan att se hur du hämtar $row. Gör du "select username, password from users" hade jag använt:
$row =/*dbmotor här*/_fetch_row($resource);
|
|
|
| 2012-06-30, 17:30 | #9 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Citat:
$res = mysql_query("SELECT id,username FROM users WHERE id='".$_SESSION['uid']."'");
$res = mysql_query("SELECT id,username FROM users WHERE id='".$_SESSION['uid']."'");
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-07-01, 10:03 | #10 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Bestämde mig för att byta taktik. Istället för att bilderna ska läggas i en användares mapp så ändras filnamnet till användarnamn_filnamn.filändelse istället. Blir rörigare men det skulle funka.
Men det går inte ens att få filnamnet att ändras!? Kan få dit ett _ framför namnet men användarnamnet går inte. GÅR INTE
<?php
<?php
Senast redigerad av lundahldaniel 2012-07-01 klockan 11:11.
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-07-01, 10:58 | #11 |
SnackerMedlem Plats: Umeå Registrerad: aug 2011 |
<?php
Skickades från m.sweclockers.com
__________________
Stationär: AMD Athlon X2 Dual Core 6400+ 3,21 GHz | 2x1GB DDR2 667 MHz | 320 GB SATA2 7200rpm | ASUS Radeon HD 4350 512 MB | Deltaco PSU 423 500W Laptop: ASUS X72J Series | Intel i3-330M 2,13 GHz | 2x2GB DDR3 1333 MHz | Seagate 500 GB SATA2 5400rpm | ATI Mobility Radeon HD 5470 1 GB Krignutrustning: Logitech G400 | Mionix Keid 20 | Microsoft Basic Keyboard 1.0A |
|
|
| 2012-07-01, 11:12 | #12 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Citat:
Jag förstår inte varför det inte vill fungera. $username är inte tomt heller. om jag kör echo $username; så skriver den ut mitt användarnamn.
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-07-01, 11:14 | #13 |
TunnelsorkMedlem Plats: foo Registrerad: feb 2010 |
Citat:
Angående dina variabler så tycks slutresultatet vara detsamma i det här fallet, men du ska alltid använda den första metoden. Med den säger du att värdet av $row["username"] ska kopieras till variabeln $username, vilket är precis vad du vill. Den andra raden säger att du vill skapa en ny sträng utan innehåll, kopiera och konvertera innehållet i $row["username"] till en annan sträng om det inte redan var av den datatypen, slå samman dessa och placera resultatet i $username. Att göra den metoden till en vana kan ge upphov till buggar om du inte förväntar dig att datatypen ska ändras och det kräver både mer minne och prestanda. Vill du ändra datatypen bör du göra det explicit så att läsaren förstår att input var av en annan typ. När man kopierar en variabel i PHP skapas egentligen en referens till originalet, den faktiska kopian skapas inte förrän en av variablerna ändras. Med den första raden pekar alltså $username och $row["username"] till samma innehåll, medans det redan finns två kopior av det med den andra metoden. Se exempel nedan: <?php
header("Content-type: text/plain");
$a = "Foo";
debug_zval_dump($a); // string(3) "Foo" refcount(2)
// Skapar en ny variabel som refereras från två platser:
// Det aktiva scopet, samt inuti funktionen debug_zval_dump()
$b = $a;
debug_zval_dump($a); // string(3) "Foo" refcount(3)
// Nu är $b en "kopia" av $a, men eftersom att de inte har
// ändrats så behandlas $b som en referens av $a. Vi ser att
// $a har ytterligare en referens.
$a = "Bar";
debug_zval_dump($a); // string(3) "Bar" refcount(2)
debug_zval_dump($b); // string(3) "Foo" refcount(2)
// Först när vi ändrar $a separeras de två.
$c = "$a";
debug_zval_dump($a); // string(3) "Bar" refcount(2)
// När vi "kopierar" $a med den andra metoden refereras den
// aldrig, istället har du skapat helt ny data, och använder
// ~ dubbelt så mycket minne.
?>
Skickades från m.sweclockers.com
__________________
Akta gräsmattan! |
|
|
| 2012-07-01, 11:35 | #14 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Försökte förstå det du skrev, hängde inte riktigt med på exemplet då det var vissa saker jag aldrig använt mig utav. Jag provade att ändra så jag använder mig utav användarIDt istället, men det gav samma resultat. Koden ser nu ut såhär:
<?php
Senast redigerad av lundahldaniel 2012-07-01 klockan 11:41.
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-07-01, 12:00 | #15 |
TunnelsorkMedlem Plats: foo Registrerad: feb 2010 |
Citat:
var_dump($row); // Använd alltid var_dump för att felsöka. // echo, print_r m.fl. ger ingen typinformation Senast redigerad av Tunnelsork 2012-07-01 klockan 12:02.
__________________
Akta gräsmattan! |
|
|
| 2012-07-01, 12:07 | #16 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Citat:
array(5) { ["id"]=> string(1) "1" ["username"]=> string(13) "daniellundahl" ["password"]=> string(32) "***" ["email"]=> string(26) "***" ["admin"]=> string(1) "***" }
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-07-01, 18:53 | #17 |
lundahldanielMedlem Plats: Örebro Registrerad: maj 2011 |
Hmm det fungerar i IE, men inte i Chrome (kör alltid chrome). :S Någon som vet vad det då kan bero på?
__________________
Asus M4N68T-M V2 | AMD Athlon II 250 X2 @ 3.3GHz | Corsair 6GB | XFX 6870 Citera för garanterat svar! |
|
|
| 2012-07-19, 18:43 | #18 |
CocosoftMedlem Registrerad: nov 2011 |
Citat:
Citat:
![]() Citat:
Misstänker att du redan har löst problemet, men i alla fall; Fungerar, endast i IE? Hur ser <form>-taggen ut? Printa ut /var/www/picturebox/albums/' . $userid . '_' . $_FILES['Filedata']['name'] och se hur det ser ut? Jag misstänker att det fortfarande är något sessions-problem dock. Testa att printa ut själva query texten också och se hur den ser ut. Även bra att kolla hur många rader mysql-query:n ger ut: if(mysql_num_rows($res) == 0) echo "Inga rader från query!"; |
|
|
Redaktionens senaste nyhetsrubriker
Prylar säljes, köpes, bytes och skänkes