Php error 5.6 till 7.3

PHPportalen Forum Index » Webbservrar och operativsystem
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
wonderwizard



Medlem i: 6557 dagar

Status: Offline



#742732
Inlägg Skrivet: 2020-03-16 20:02      Ämne: Php error 5.6 till 7.3 Citera

Har en asustor nas som jag kör som webserver
uppdaterade från PHP 5.6 till 7.3
och då kom en massa felmeddelande



vad kan vara fel ?

nedan kod är ett fel
egen kod från min hemsida

KOD:
1:
 
2:
<?php
3:
$monthOfYear = date("m");
4:
switch($monthOfYear) {
5:
    case 01: $mon = $config['january'];    break;
6:
    case 02: $mon = $config['february'];    break;
7:
    case 03: $mon = $config['march'];         break;
8:
    case 04: $mon = $config['april'];       break;
9:
    case 05: $mon = $config['may'];       break;
10:
    case 06: $mon = $config['june'];       break;
11:
    case 07: $mon = $config['july'];       break;
12:
    case 08: $mon = $config['august'];    break;
13:
    case 09: $mon = $config['september'];    break;
14:
    case 10: $mon = $config['october'];    break;
15:
    case 11: $mon = $config['november'];    break;
16:
    case 12: $mon = $config['december'];    break;
17:
}
18:
$dayOfWeek = date("N");
19:
switch ($dayOfWeek) {
20:
   case 1: $day = $config['monday'];      break;
21:
   case 2: $day = $config['tuesday'];      break;
22:
   case 3: $day = $config['wednesday'];           break;
23:
   case 4: $day = $config['thursday'];      break;
24:
   case 5: $day = $config['friday'];              break;
25:
   case 6: $day = $config['saturday'];      break;
26:
   case 7: $day = $config['sunday'];       break;
27:
}
28:
if ( $_COOKIE['lang'] == "se") {
29:
   $timeFormat = date("Y - H:i");
30:
}
31:
elseif ( $_COOKIE['lang'] == "en") {
32:
    $timeFormat = date("Y - g:i A");
33:
} else {
34:
    $timeFormat = date("Y - H:i");
35:
}
36:
?><div class="clock"><?php echo " $day ", date("j"), " $mon ", " $timeFormat " ; ?></div>
37:
 


detta ett annat

KOD:
1:
 
2:
<b>[phpBB Debug] PHP Warning</b>: in file <b>[ROOT]/phpbb/session.php</b> on line <b>583</b>: <b>sizeof(): Parameter must be an array or an object that implements Countable</b><br />
3:
<b>[phpBB Debug] PHP Warning</b>: in file <b>[ROOT]/phpbb/session.php</b> on line <b>639</b>: <b>sizeof(): Parameter must be an array or an object that implements Countable</b><br />
4:
 


3:e felet, samma sida som fel 2.. dvs phpbb3 forum
KOD:
1:
 
2:
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
3:
 
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
harald_b
Moderator



Medlem i: 5205 dagar
Från: Tavesta
Status: Offline



#742733
Inlägg Skrivet: 2020-03-16 23:49      Ämne: Citera

Koden du visar hör inte ihop med de felmedelanden du visar.

I koden finns det inte så mycket jag med ett ögonkast kan se att skiljer sig mellan php5 och php7, men i dina switch-satser blandar du strängar och heltal, vilket skulle kunna orsaka fel i det här fallet.

Ändra så du använder strängvärden i dina case-satser. T.ex:
PHP:
5:
  case "01"


Dina två felmeddelanden handlar om att du har fel typ av värde när du använder sizeof() och count().

Det finns ett antal funktioner som returnerar en sträng eller en array när det går som det skall, men t.ex false ifall något går fel.
Min gissning är att det är det som orsakar de felmeddelanden du får
Men för att kunna avgöra säkert, och ge något tips om vad du kan göra, behöver jag se vad du har för kod i /phpbb/session.php på raderna 583 och 639, och raderna dessförinnan, samt /vendor/twig/twig/lib/Twig/Extension/Core.php, rad 1275, och raderna dessförinnan.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Peppe L-G



Medlem i: 4947 dagar
Från: Mullsjö
Status: Offline



#742734
Inlägg Skrivet: 2020-03-17 10:51      Ämne: Citera

Kan det inte vara så att felet är att mysql_*-funktionerna togs bort i PHP 7? Kommer jag ihåg rätt så sparar phpBB sessionerna i en databas (MySQL?) och försöker den kommunicera med databasen via de gamla mysql_funktionerna så kanske den inte lyckas hämta sessionen och använder då värdet null istället, och det är inte OK att skicka null till count-funktionen från och med PHP 7.2.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
wonderwizard



Medlem i: 6557 dagar

Status: Offline



#742735
Inlägg Skrivet: 2020-03-17 21:05      Ämne: Citera

harald_b skrev:
Koden du visar hör inte ihop med de felmedelanden du visar.

I koden finns det inte så mycket jag med ett ögonkast kan se att skiljer sig mellan php5 och php7, men i dina switch-satser blandar du strängar och heltal, vilket skulle kunna orsaka fel i det här fallet.

Ändra så du använder strängvärden i dina case-satser. T.ex:
PHP:
5:
  case "01"


Dina två felmeddelanden handlar om att du har fel typ av värde när du använder sizeof() och count().

Det finns ett antal funktioner som returnerar en sträng eller en array när det går som det skall, men t.ex false ifall något går fel.
Min gissning är att det är det som orsakar de felmeddelanden du får
Men för att kunna avgöra säkert, och ge något tips om vad du kan göra, behöver jag se vad du har för kod i /phpbb/session.php på raderna 583 och 639, och raderna dessförinnan, samt /vendor/twig/twig/lib/Twig/Extension/Core.php, rad 1275, och raderna dessförinnan.


i min första kod, är det från egen kod, från hemsida 1.. dvs min cv online.
jag gjorde följande & det verkar funka.. rätt amig om jag gjort fel

case 01: till 09: blev case 1: till 9: dvs skippade nollorna & det verkar fungera.

när det gäller 2 & 3 är det som sagt från phpbb3, har ändrat mysql till mysqli, annars funkar det inte alls.

KOD:
1:
 
2:
      if ($user_id !== false && sizeof($this->data) && $this->data['user_id'] != $user_id)
3:
      {
4:
         $this->data = array();
5:
      }
6:
 
7:
   [b]rad 583 ->   if (sizeof($this->data))[/b]
8:
      {
9:
         $this->cookie_data['k'] = '';
10:
         $this->cookie_data['u'] = $this->data['user_id'];
11:
      }
12:
 



KOD:
1:
 
2:
   [b]rad 639->   if (!sizeof($this->data) || !is_array($this->data))[/b]
3:
      {
4:
         $this->cookie_data['k'] = '';
5:
         $this->cookie_data['u'] = ($bot) ? $bot : ANONYMOUS;
6:
 
7:
         if (!$bot)
8:
         {
9:
            $sql = 'SELECT *
10:
               FROM ' . USERS_TABLE . '
11:
               WHERE user_id = ' . (int) $this->cookie_data['u'];
12:
         }
13:
         else
14:
         {
15:
            // We give bots always the same session if it is not yet expired.
16:
            $sql = 'SELECT u.*, s.*
17:
               FROM ' . USERS_TABLE . ' u
18:
               LEFT JOIN ' . SESSIONS_TABLE . ' s ON (s.session_user_id = u.user_id)
19:
               WHERE u.user_id = ' . (int) $bot;
20:
         }
21:
 
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
harald_b
Moderator



Medlem i: 5205 dagar
Från: Tavesta
Status: Offline



#742736
Inlägg Skrivet: 2020-03-18 12:11      Ämne: Citera

Fel 1:
Eftersom date() returnerar strängvärden bör du ha strängvärden i dina case-sater också. Därför är case "01": osv rätt i det här fallet.
Det finns säkert andra varianter som kan fungera, men inplicit typkastning är något man bör undvika, eftersom det kan ske på olika sätt, med lite olika resultat.

Fel 2:
Eftersom du får felet på rad 583 och inte redan på rad 578 kan man dra slutsatsen att $user_id är false.
Du bör nog följa koden bakåt ytterligare för att se vad det beror på, och hur man skall hantera det.

Det finns ett antal skillnader mellan mysql_* och mysqli_* -funktionerna. Det finns ett och annat som kan gå fel när man ändrar.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Webbservrar och operativsystem
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic