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

question-closed Notice: Undefined variable: all in

Cloud VPS
0 głosów
629 wizyt
pytanie zadane 7 maja 2016 w PHP przez niezalogowany
zamknięte 7 maja 2016 przez Arkadiusz Waluk

Cześć. Zmieniłem wersję PHP w serwisie, teraz wyświetla mi taki błąd:

Notice: Undefined variable: all in /home/virt6538/domains/domena.pl/public_html/licznik.php on line 78

 

a cały kod wygląda tak:

<?php session_start(); ?>
<?php

include('connect.php'); 

mysql_query("SET NAMES 'latin2'");
$date = date('Y-m-d');
$time = date('H:i:s');
$ip = $_SERVER['REMOTE_ADDR']; 
$link = mysql_query("SELECT ip FROM online WHERE ip='$ip' and data='$date'");
$ile = mysql_num_rows($link);
if ($ile == 0) {
    $asd = mysql_query("INSERT INTO online SET ip='$ip', data='$date', godzina='" . date('H') . "', minuta='" . date('i') . "'");

    if (!$asd) {
        echo('Błąd bazy danych. <br />');
    }
} else {
    $asd = mysql_query("UPDATE online SET data='$date', godzina='" . date('H') . "', minuta='" . date('i') . "' WHERE ip='$ip' and data='$date'");

    if (!$asd) {
        echo('Blad bazy danych. <br />');
    }
}

$wczoraj = (int) date('d');
$wczoraj = $wczoraj - 1;
$miesiac = (int) date('m');
if ($wczoraj == 0) {
    if (date('m') == 4 || date('m') == 6 || date('m') == 8 || date('m') == 9 || date('m') == 11) {
        $wczoraj = "31";
        $miesiac -= "1";
    }
    if (date('m') == 3) {
        $wczoraj = "28";
        $miesiac -= "1";
    }
    if (date('m') == 5 || date('m') == 7 || date('m') == 10 || date('m') == 12) {
        $wczoraj = "30";
        $miesiac -= "1";
    }
    if (date('m') == 2) {
        $wczoraj = "31";
        $miesiac -= "12";
    }
}
if ($wczoraj <= 9) {
    $wczoraj = "0" . $wczoraj;
}
if ($miesiac <= 9) {
    $miesiac = "0" . $miesiac;
}
$wczoraj = date('Y') . "-" . $miesiac . "-" . $wczoraj;

$time = date('H');
$time2 = date('i') - 5;
$link = mysql_query("SELECT * FROM online");
$online = 0;
$dzis = 0;
$wczorajlicz = 0;
while ($wynik = mysql_fetch_array($link)) {
    if ($wynik['data'] == $date) {
        if ($wynik['godzina'] >= $time) {
            if ($wynik['minuta'] >= 5) {
                $minuta = $wynik['minuta'] - 5;
            } else {
                $minuta = $wynik['minuta'];
            }
            if ($minuta >= $time2) { 
                $online++;
            }
        }
        $dzis++;
    }
    if ($wynik['data'] == $wczoraj) {
        $wczorajlicz++;
    }
    $all++;
}
echo('<font color=white>Online today:</font> <font color=orange>' . $dzis . '</font> | ');
echo('<font color=white>All visitors:</font> <font color=orange>' . $all . '</font></small>');
?>

 

komentarz zamknięcia: Rozwiązane
1
komentarz 7 maja 2016 przez efiku Szeryf (75,160 p.)
Zmień na wersję 7.04 :> Zmień na PDO.

1 odpowiedź

+1 głos
odpowiedź 7 maja 2016 przez Arkadiusz Waluk Ekspert (290,310 p.)

Notice: Undefined variable: all

Czyli po przetłumaczeniu na polski: "niezdefiniowana zmienna all". I z czym masz problem? W kodzie nie jest zdefiniowana zmienna $all a próbujesz ją inkrementować, stąd błąd.

Tak dodatkowo powiem, że radziłbym ten kod szybko poprawić bo jak sobie znów zmienisz wersję PHP na 7 to przestanie działać ;) (funkcje z mysql_ są od dawna zdeprecjonowane a w najnowszym PHP 7 usunięte).

komentarz 7 maja 2016 przez niezalogowany
Jestem laikiem w takich sprawach. Skoro na stronie po wpisaniu .$all. wyświetla mi dane to jak to jest z tym?
komentarz 7 maja 2016 przez Arkadiusz Waluk Ekspert (290,310 p.)
Po prostu zmienna jest w momencie pierwszej inkrementacji automatycznie deklarowana z wartością 0, dlatego wszystko działa jak trzeba. Ale interpreter zwraca uwagę, że zmienna nie była wcześniej zadeklarowana, a skoro chcemy ją zwiększać to powinna być.

Rozwiązanie problemu to wcześniejsze zadeklarowanie zmiennej $all z wartością 0.
komentarz 7 maja 2016 przez niezalogowany
Dziękuję. Dodałem $all = 0; i działa. Dzięki! Tak niewiele a pomogłeś :D

Podobne pytania

–1 głos
2 odpowiedzi 1,423 wizyt
0 głosów
1 odpowiedź 1,021 wizyt
pytanie zadane 17 kwietnia 2019 w PHP przez Whereismycode Obywatel (1,710 p.)
0 głosów
2 odpowiedzi 418 wizyt

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,904 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

Kursy INF.02 i INF.03
...