2016-01-18 1 views
1

maintenant Je travaille sur un site qui a 3 mises en page principales, en-tête, mise en page principale et pied de page, elles sont toutes appelées par le même contrôleur. La disposition principale change en fonction de la demande. Mais l'en-tête et le pied de page seront toujours les mêmes. Dans ma tête, il y a un fil d'Ariane que Dominic Barnes m'a donné dans ce post.Normes strictes: Seules les variables doivent être passées par référence avec le fil d'Ariane dynamique

PHP Simple dynamic breadcrumb

Le problème est que je ne sais pas si je le mets sur le bon endroit depuis que j'ai 2 erreurs:

Notice: Undefined index: HTTPS normes strictes: Seules les variables devrait être adopté par renvoi dans

Je mets le code de Dominic Barnes dans mon html comme ceci:

<?php 
function breadcrumbs($separator = ' &raquo; ', $home = 'Home') { 

$path = array_filter(explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))); 


$base = ($_SERVER['HTTPS'] ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/'; 


$breadcrumbs = Array("<a href=\"$base\">$home</a>"); 

$last = end(array_keys($path)); 

foreach ($path AS $x => $crumb) { 
    $title = ucwords(str_replace(Array('.php', '_'), Array('', ' '), $crumb)); 

    if ($x != $last) 
     $breadcrumbs[] = "<a href=\"$base$crumb\">$title</a>"; 
    else 
     $breadcrumbs[] = $title; 
} 
return implode($separator, $breadcrumbs); 
} 

?> 

<div class="breadcrumb-line breadcrumb-line-wide"> 
    <ul class="breadcrumb"> 
    <li class="active" > 
    <p><i class="icon-home2 position-left"></i><?= breadcrumbs() ?></p> 
    </li> 
</ul> 
</div> 

Le code de Dominic, est censé être sur mon contrôleur ou à mon avis html? Désolé, c'est une question noob, mais je suis un peu nouveau sur tout cela.

+0

Possible duplicate of [Strict Standards: seules les variables doivent être transmises par référence] (http://stackoverflow.com/questions/2354609/strict-standards-only-variables-should-be-passed-by-reference) – Phiter

Répondre

0

Il est possible que votre variable $_SERVER['HTTPS'] ne soit pas définie.

Après la ligne:

$base = ($_SERVER['HTTPS'] ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/'; 

Insérer: var_dump($_SERVER['HTTPS']). Et vérifiez la valeur.