• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jeśli znalazło Plik to ... a jeśli nie to ...

42 Warsaw Coding Academy
+1 głos
480 wizyt
pytanie zadane 3 stycznia 2021 w PHP przez MateuszSikorski Obywatel (1,070 p.)

Witam posiadam takie coś do awatarów, 

<?php if($_SESSION["zalogowany"]){echo '<img src="https://e-modo.pl/konto/avatars/'.$user_id.'.png" width="30px" height="30px">';} ?></div>

I chciałbym że jeśli znajdzie ten plik to pokazuje, lub jeśli znajdzie jpg to go pokazuje, a jeśli nic nie znalazło to niech pokazuje to

 

<?php if($_SESSION["zalogowany"]){echo '<img src="https://e-modo.pl/konto/avatars/default.png" width="30px" height="30px">';} ?></div>

Mógł by ktoś pomoć? Na zasadzie if? nie wiem jak dziala php z plikami

2 odpowiedzi

0 głosów
odpowiedź 3 stycznia 2021 przez SzkolnyAdmin Szeryf (89,610 p.)
wybrane 4 stycznia 2021 przez MateuszSikorski
 
Najlepsza
if($_SESSION["zalogowany"]) {
    //Tu wyświetlasz awatar zalogowanego usera
}
else {
    //A ten fragment wykona się, gdy user nie jest zalogowany
    //Tu wyświetl awatar niezalogowanego usera
}

 

komentarz 3 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)
Nie o to mi chodzi, o nie wyświetlanie mam, ale jeśli nie wgrał awatara to pokazuje defaultowego. a po 2 żeby jeśli jest ten awatar to sczytywało albo z png albo z jpg zależ co wgrał
komentarz 3 stycznia 2021 przez SzkolnyAdmin Szeryf (89,610 p.)
Gdzie przechowujesz ścieżki do awatarów? W bazie danych? Jeśli tak to pobierasz z bazy ścieżkę do awataru i wyświetlasz obraz. Jak użytkownik nie wgrał awataru, to w bazie jest ścieżka do standardowego awataru i wyświetlasz go tak samo.

Podaj więcej szczegółów na temat mechanizmu rejestracji userów.
komentarz 3 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)

Dobra sam już zrobiłem
nie wyszło coś (nie działa) :/


<?php if($_SESSION["zalogowany"]) {
                if(file_exists('https://e-modo.pl/konto/avatars/'.$user_id.'.png')){
    echo '<img src="https://e-modo.pl/konto/avatars/'.$user_id.'.png" width="30px" height="30px">';
            }
            else {
    echo '<img src="https://e-modo.pl/konto/avatars/default.png" width="30px" height="30px">';
    //Tu wyświetl awatar niezalogowanego usera
        }
} ?>

 

komentarz 3 stycznia 2021 przez SzkolnyAdmin Szeryf (89,610 p.)
Jak ci pisałem, lepiej użyć danych z bazy - i tak przy jej pomocy logujesz usera.
komentarz 3 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)

@SzkolnyAdmin, Mógłbyśmi pokazać jak to zrobić? Nie rozumiem

komentarz 3 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)
Już mam cały system na tym i nie chciałbym przerabiać, można to jakoś przerobi żeby y działało?
komentarz 4 stycznia 2021 przez SzkolnyAdmin Szeryf (89,610 p.)

Odpalasz skrypt z poziomu swoje strony (e-modo.pl), używaj wiec adresów względnych. Jeśli już musisz używać URL-a, poczytaj o problemie tu

Co do bazy danych: Podczas rejestracji usera ma możliwość wygrania awatara (lub później po zmianie opcji konta). Wgrany awatar kopiujesz do katalogu avatars (nie zmieniamy struktury witryny), a w bazie przy każdym użytkowniku masz nazwę awatara (mogą być różne rozszerzenia - png lub jpg). Jeżeli user nie wybrał awatara, w bazie masz default.png. Podczas logowania usera odczytujesz nazwę awatara i po prostu dodajesz linię, która go wstawia, już bez sprawdzania jakiego jest typu ($awatar to zmienna pobrana z bazy danych):

echo '<img src="https://e-modo.pl/konto/avatars/'.$awatar.'" width="30px" height="30px">';

 

komentarz 4 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)
Dzięki
0 głosów
odpowiedź 4 stycznia 2021 przez VBService Ekspert (256,600 p.)
edycja 4 stycznia 2021 przez VBService

Po stronie "serwera" nie musisz używać url-a, możesz sprawdzić używając "ścieżki względnej". wink

index.php

<?php
    session_start();
    define('WEB_URL', 'http://localhost/default/'); // https://e-modo.pl/  ;-)
    define('USER_DEFAULT_AVATAR', WEB_URL.'konto/avatars/default.png');

    if (isset($_COOKIE['PHPSESSID']) && isset($_SESSION['zalogowany'])) {
        $user_info = 'zalogowany';
        $avatar = "konto/avatars/{$_SESSION['zalogowany']}.png";

        if (file_exists($avatar)) {
            $avatar = WEB_URL.$avatar;
        } else {
            // jakikolwiek problem z pobraniem avatar-a
            // wstawiany jest default.png
            $avatar = USER_DEFAULT_AVATAR;
        }
        // Symulacja wylogowania
        unset($_SESSION['zalogowany']);
    } else {
        // Symulacja zalogowania się użytkownika do Twojego systemu
        // Użytkownik zalogował się za pomocą formularza - prawidłowo
        // W zmiennej sesyjnej "zalogowany" jest id użytkownika
        $_SESSION['zalogowany'] = 'f3fef9025be0';
        $avatar = USER_DEFAULT_AVATAR;
        $user_info = 'nie zalogowany';
    }
?>
<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <style>
            *, *::after, *::before {
                -webkit-box-sizing: border-box;
                -moz-box-sizing: border-box;
                box-sizing: border-box;
            }
            html, body {
                margin: 0;
                padding: 0;
                background-color: gray;
            }
            .user-card {
                margin: 1em;
                width: 260px;
                height: 36px;
                background-color: white;
                border: 2px solid black;
                border-radius: 1em;
                text-align: left;
                vertical-align: middle;
                cursor: pointer;
            }
            .user-avatar {
                width: 36px;
                height: 36px;
            }
            .user-avatar-img {
                width: 32px;
                height: 32px;
                border-radius: 1em;
                vertical-align: middle;
            }
            .user-info {
                font: 1em/2em monospace;
                margin-left: 1em;
            }
        </style>
    </head>
    <body>

        <div class="user-card">
            <span class="user-avatar">
                <img src="<?php echo $avatar; ?>" class="user-avatar-img">
            </span>
            <span class="user-info">
                Użytkownik: <?php echo $user_info; ?>
            </span>
        </div>

        <script>
            const button_login = document.querySelector('.user-card');
            button_login.addEventListener('click', () => {
                window.location.reload();
            });
        </script>
    </body>
</html>

komentarz 4 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)
Dzięki

Podobne pytania

0 głosów
1 odpowiedź 1,396 wizyt
pytanie zadane 18 lutego 2017 w Inne języki przez Megatroon Nowicjusz (200 p.)
0 głosów
1 odpowiedź 214 wizyt
pytanie zadane 17 lipca 2018 w PHP przez niezalogowany

93,377 zapytań

142,379 odpowiedzi

322,526 komentarzy

62,724 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...