Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Zła nazwa wgrywanego pliku w bazie MySQL
ebate
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

Ostrzeżenie: (0%)
-----


Otóż mam skrypt, który zmienia mi nazwę wgrywanego pliku do katalogu na nazwę użytkownika. Problemem jest to, że w bazie MYSQL zapisywana jest ścieżka o nazwie jeszcze przed zmianą jej na nazwe konta użytkownika.

  1. $name = 'pliki/'.$_FILES['pliczek']['name']; //
  2.  
  3. (...)
  4.  
  5. $fileData = pathinfo($_FILES['pliczek']['name']);
  6.  
  7. $filename = $konto.'.'.$fileData['extension'];
  8.  
  9. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$filename);


Ma ktoś może pomysł na rozwiązanie tego problemu?
Go to the top of the page
+Quote Post
pianta_d
post
Post #2





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


A co przechowujesz w $konto
Go to the top of the page
+Quote Post
ebate
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

Ostrzeżenie: (0%)
-----


nazwa użytkownika (login)
Go to the top of the page
+Quote Post
pianta_d
post
Post #4





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


domyślam się (IMG:style_emoticons/default/smile.gif)

daj kawałek kodu kiedy przypisujesz dane do zmiennej
Go to the top of the page
+Quote Post
ebate
post
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

Ostrzeżenie: (0%)
-----


  1. $konto = mysql_real_escape_string (trim($_POST['konto']));


  1. <strong>*Login:</strong><input name="konto" type="text" value="" /><br>
Go to the top of the page
+Quote Post
pianta_d
post
Post #6





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


Sorki, źle zrozumiałem Twój problem, a w sumie to sam wprowadziłeś mnie w błąd.
Ale mniejsza z tym, piszesz
Cytat
Problemem jest to, że w bazie MYSQL zapisywana jest ścieżka o nazwie jeszcze przed zmianą jej na nazwe konta użytkownika.


Przyjmując, że nazwę nadajesz poprawnie daj kod, którym zapisujesz informacje o pliku w bazie.
Go to the top of the page
+Quote Post
ebate
post
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

Ostrzeżenie: (0%)
-----


  1. $name = 'pliki/'.$_FILES['pliczek']['name'];
  2.  
  3. (...)
  4.  
  5. $fileData = pathinfo($_FILES['pliczek']['name']);
  6.  
  7. $filename = $konto.'.'.$fileData['extension'];
  8.  
  9. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$filename);
  10.  
  11. (...)
  12.  
  13. $zapytanie="INSERT INTO user (login,password,imie,drugie_imie,nazwisko,email,miasto,plec,data_urodzenia,n
    umer_telefonu,numer_gg,sciezka) VALUES('$konto','$password','$imie','$drugie_imie','$nazwisko','$email','$miasto','$plec','$data_urodzenia','$numer_telefonu','$numer_gg','$name')"
    ;
  14.  
  15. mysql_query($zapytanie) or die("Wystąpił błąd" );
  16.  


Wszystkie fragmenty skryptu php odnośnie uploadu i zmiany nazwy wysyłanego pliku.

Ale rozumiesz o co mi chodzi? Jest tak, że użytkownik o loginie DAWID wysyła plik o nazwie ptak.jpg. Przy wysłaniu zostaje zmieniona nazwa na DAWID.jpg, lecz w bazie MySQL jest zapisana ściezka pliki/ptak.jpg, a pwoinno być pliki/DAWID.jpg
Go to the top of the page
+Quote Post
pianta_d
post
Post #8





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


Oczywiście, w zapytaniu masz błąd, zapisujesz dane zmiennej $name, w której przechowujesz nazwę pliku uploadowanego czyli ptak.jpg
Utwórz sobie dodatkową zmienną np.
  1. $sciezka="pliki/".$filename


$sciezka będzie przechowywać pliki/nazwa_uzytkownika.jpg

  1. $zapytanie="INSERT INTO user (login,password,imie,drugie_imie,nazwisko,email,miasto,plec,data_urodzenia,n
    umer_telefonu,numer_gg,sciezka) VALUES ('$konto','$password','$imie','$drugie_imie','$nazwisko','$email','$miasto','$plec','$data_urodzenia','$numer_telefonu','$numer_gg','$sciezka')"
    ;


Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:35