• 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 ...

VPS Starter Arubacloud
+1 głos
246 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 (86,280 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 (86,280 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 (86,280 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 (86,280 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 (251,210 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,089 wizyt
pytanie zadane 18 lutego 2017 w Inne języki przez Megatroon Nowicjusz (200 p.)
0 głosów
1 odpowiedź 160 wizyt
pytanie zadane 17 lipca 2018 w PHP przez niezalogowany

92,453 zapytań

141,262 odpowiedzi

319,087 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...