Hoe introduceert youtube een nieuwere versie op dezelfde URL?

ik wil een nieuwere versie van mijn website maken en gebruikers vragen om het te proberen, maar ik wil dezelfde URL

is dit de beste schoonste manier om het te doen?

  //code executes if user asks to make the new version the default.
setcookie("newversion", "true", mktime(0,0,0,12,31,2011));

this is the /index.php

if($_COOKIE['newversion'] == "true") {

    /**
    * load the new version of the site.
    *
    **/
    exit();
} else {

    /**
    * load the older version of the site.
    *
    **/

}

ik heb geen tutorials of vragen van dit soort gevonden, dus help alstublieft.

0
U kunt geen cookie instellen en openen in dezelfde instantie.
toegevoegd de auteur Mob, de bron
Het instellen van een cookie via setcookie() heeft GEEN invloed op de _COOKIE superglobal totdat de VOLGENDE pagina wordt geladen. De superglobals worden geïnitialiseerd/gevuld voordat de code begint met de uitvoering en worden daarna niet opnieuw aangeraakt door PHP.
toegevoegd de auteur Marc B, de bron
ik weet dat het slechts een voorbeeld was, dit is niet de vraag die ik zal bewerken, het was slechts een illustratie, ik wil alleen weten of dit de schoonste manier is om het te doen.
toegevoegd de auteur Pinokyo, de bron

1 antwoord

Dat is precies de manier waarop youtube HTML5-video implementeert (via de cookie PREF ). Aangezien u vaak alleen een deel van uw site wilt wijzigen, kan de code er als volgt uitzien:

$prefs = array('version'=>'1', $html5=false);
$prefs = array_merge($prefs, parsePrefs($_COOKIE['PREFS']));
if ($prefs['version'] == '1') {
  old_header();
} else if ($prefs['version'] == '2') {
  new_header();
}

Als alternatief kunt u natuurlijk twee in eerste instantie afwijkende controllerpaden (zoals in uw voorbeeld) die uiteindelijk dezelfde helperfuncties oproepen.

1
toegevoegd