Καλησπέρα,
Στις περισσότερες περιπτώσεις αλλαγής PHP από 7.0.x ή 7.1.x σε 7.3.x δεν παρουσιάζονται σοβαρά θέματα. Συνήθως διορθώνω κάποια continue/break σφάλματα σε loops και επίσης χρειάζεται να γίνει αλλαγή από mcrypt σε openssl συνάρτηση στο encryption.php library σε εκδόσεις μικρότερες από 3.x.
Ο λόγος που χρειάζεται η PHP 7.3 είναι γιατί η συνάρτηση setcookie ( string $name , string $value = "" , array $options = [] ) που μπορεί να λάβει τη μεταβλητή 'samesite' => 'None' μέσα σε array, είναι διαθέσιμη από PHP7.3 και άνω. Γι' αυτόν τον λόγο εγώ χρησιμοποιώ αυτήν την μέθοδο και παράλληλα εκσυγχρονίζω τα παλιά eshops από πρακτικές κώδικα που δεν είναι συμβατές με τις νέες εκδόσεις PHP.
Κάποιοι προτείνουν το ακόλουθο φορμά που δεν χρησιμοποιεί array και περνά την παράμετρο SameSite με concatenation στο path. Υποτίθεται ότι είναι συμβατό με παλιές εκδόσεις PHP, ωστόσο σε δοκιμές που έκανα δεν λειτούργησε και το cookie παρέμενε όπως πριν.
Κώδικας: Επιλογή όλωνsetcookie($key, $this->session_id, ini_get('session.cookie_lifetime'), ini_get('session.cookie_path').'; SameSite=None', ini_get('session.cookie_domain'), true, ini_get('session.cookie_httponly'));
Εναλλακτικά μπορεί να περάσεις και στο header το SameSite=None αλλά πάλι πρέπει να βρεθεί τρόπος να περάσει και στις παραμέτρους του session cookie στον browser που θέλει λίγο ψάξιμο. Γι' αυτόν τον λόγο χρησιμοποιώ την μέθοδο που ανέφερα αρχικά.
Αλεξάνδρα Γκόγκα - Software Developer @ People’s Code
OpenCart-Hellas.gr - Administrator & Founder
PeoplesCode.com - Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Μεταφορά - Τεχνική Υποστήριξη OpenCart
Ελληνική μετάφραση & Επεκτάσεις OpenCart