Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]IF file_exists w pętli while, Jak wykonać poprawnie.
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Panowie jak wykonać poprawnie sprawdzanie czy istnieje plik w pętli while?
Robię to tak ale coś nie działa:

  1. $i = 1;
  2. while($row = $query->fetch_array(MYSQL_ASSOC)){
  3. $nr_user = $row['id_user'];
  4. $adres_photo = 'photo/'.$nr_user.'/'.$nr_user.'.jpg';
  5. if(file_exists($adres_photo)){
  6. $ShowPhoto = '<img src="'.$adres_photo.'">';
  7. }else{
  8. print 'nie ma';
  9. }
  10. print 'Użytkownik: '.$nr_user.' ';
  11. //print 'co: '.$adres_photo.' ';
  12. $i++;
  13. }


cały czas pokazuje , że nie ma chociaż jest dany plik.
jak wyświetlam printem co jest pod adresem_photo to pokazuje dobrze

Ten post edytował casperii 6.09.2015, 15:10:34
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


a czy na pewno jest plik w ścieżce WZGLĘDNEJ do uruchamianego skryptu?

Zrób sobie w pętli
  1. var_dump(getcwd() . '/'.$adres_photo);

i sprawdź czy aby na pewno ścieżka jest poprawna.
Go to the top of the page
+Quote Post
casperii
post
Post #3





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


@Pyton_000 katalog jest w domenie głównej. Skrypt działa na subdomenie z odwołaniem http://www.nazwa.pl/photo/
Jeżeli nie sprawdzam pliku tylko wyświetlam ścieżkę to w pętli pokazuje poprawnie.
Wstawienie kodu który podałeś wyświetla coś na styl:
/home/nazwa/public_html/subdomena/http://www.nazwa.pl/photo/304894495/304894495.jpg

Ten post edytował casperii 6.09.2015, 15:44:41
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


czyli "photo/304894495/304894495.jpg" to Twój obrazek a "/home/nazwa/public_html/subdomena/http://www.nazwa.pl" katalog? Nie możliwe... pokaż dokładnie co zwraca to polecenie
Go to the top of the page
+Quote Post
casperii
post
Post #5





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Nie będę reklamować tutaj domeny.
Główna domena jest www.costamcos.pl
Panel admina www.subdomena.costamcos.pl

print $photo_adres pokazuje:
http://www.costamcos.pl/photo/304894495/304894495.jpg

natomiast var_dump(getcwd() . '/'.$adres_photo); pokazuje :

string(86) "/home/nazwa_konta/public_html/subdomena/http://www.costamcos.pl/photo/304894495/304894495.jpg" string(86)

@Pyton_000 czyli co file_exsist muszę sprawdzać w sposób linuxowy (?) home/....

Ten post edytował casperii 6.09.2015, 16:03:07
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


nie, masz spiep.... adres fotki... Po co dawać pełną nazwę domenową w BD.

Przemiel ten adres przez "parse_url()" i wyciągnij query, i potem sprawdzaj czy plik istnieje.
Go to the top of the page
+Quote Post
casperii
post
Post #7





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Adres nie może być spiep... bo jak skopiuje to co mi pokazuje zmienna $adres_photo to jest ok. Coś go boli w tym file_exsist.
Adres pełny muszę podać bo jak przejdę inaczej z subdomeny do domeny głównej?

@Pyton_000 jeśli w file_exsist dam coś takiego:
  1. $adres_photo = '/home/kontoWWW/public_html/photo/'.$nr_user.'/'.$nr_user.'.jpg';
  2. if(file_exists("".$adres_photo."")){
  3.  
  4. ...
  5. }


to działa. Dziwne.

Ten post edytował casperii 6.09.2015, 16:56:29
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Przecież mówię że masz "http://...."
a file_existst szuka pliku w systtemie plików, więc logiczne że nie masz takiego pliku... Dałem Ci rozwiązanie.
Go to the top of the page
+Quote Post
casperii
post
Post #9





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


@Pyton_000 chyba coś nie umiejętnie to robię:

  1. $adres_photo = 'http://www.costamcos.pl/photo/'.$nr_user.'/'.$nr_user.'.jpg';
  2. $adres_photo1 = parse_url($adres_photo, PHP_URL_QUERY);
  3. $xx = $adres_photo1;


var_dump(getcwd() . '/'.$xx);
pokazuje:

"/home/NazwaKonta/public_html/subdomena/"
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


nie Query a PHP_URL_PATH. Mój błąd, ale chyba sam mogłeś to zweryfikować.
Go to the top of the page
+Quote Post
casperii
post
Post #11





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


@Pyton_000 też to nic nie daje:

  1. $adres_photo1 = parse_url($adres_photo, PHP_URL_PATH);
  2. $xx = $adres_photo1;
  3. var_dump(getcwd() . '/'.$xx);


string(68) "/home/NazwaKonta/public_html/subdomena//photo/304894495/304894495.jpg"

cały czas odwołuje się do subdomeny, a przecież folder photo jest w głównej domenie smile.gif
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Jeżeli wykonujesz skrypt na subdomenie to chyba oczywiste że poda bieżący katalog? Zmień katalog na właściwy za pomocą http://fi2.php.net/manual/en/function.chdir.php


--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #13





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


@viking ja to wiem, dlatego jak pisałem wyżej to w ten sposób działa :

$adres_photo = '/home/NazwaKonta/public_html/photo/'.$nr_user.'/'.$nr_user.'.jpg';

Podanie adresu w formie http nie działa:
$adres_photo = 'http://www.costamcos.pl/photo/'.$nr_user.'/'.$nr_user.'.jpg';

@Pyton_000 twierdzi, że można to zrobić przy pomocy parse_url ale nie idzie.


Dobra Panowie, czasami najprostsze rzeczy są najłatwiejsze:)
Rozwiązanie:

  1. $adres_photo = '../photo/'.$nr_user.'/'.$nr_user.'.jpg';


Ten post edytował casperii 7.09.2015, 07:53:50
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:07