Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zła nazwa wgrywanego pliku w bazie MySQL
Forum PHP.pl > Forum > Przedszkole
ebate
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?
pianta_d
A co przechowujesz w $konto
ebate
nazwa użytkownika (login)
pianta_d
domyślam się smile.gif

daj kawałek kodu kiedy przypisujesz dane do zmiennej
ebate
  1. $konto = mysql_real_escape_string (trim($_POST['konto']));


  1. <strong>*Login:</strong><input name="konto" type="text" value="" /><br>
pianta_d
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.
ebate
  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
pianta_d
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.