Déclaration d'une variable en php

Résolu
Bonjour,
je veux installer maarch entreprise sous fedora 10. mais j'ai pas encore réussi car beaucoup des erreurs s'affiche parmi eux

Notice: Undefined variable: protocol in /opt/lampp/htdocs/maarchentreprise/apps/maarch_entreprise/class/class_business_app_tools.php on line 45


voila le ligne 45 de ce fichier (class_business_app_tools.php)

if ($_SERVER['SERVER_PORT'] <> 443 && $protocol == "https")

j'ai pu pas changer tout le syntaxe car j'ai pas d'éxperience en PHP
est ce qu'il faut déclarer le variable protocol içi et comment ça ce marche, ou bien juste on peut changer de syntaxe
Merci d'avance

6 réponses

  1. Contributeur
    la variable n'existe pas encore. Il doit y avoir un problème dans le code. Je ne pense pas pouvoir t'aider avec si peu de code
    1. merci de votre réponse; vraiment le code est trop long à analyser je peux citer ces lignes
      if ($_SERVER['SERVER_PORT'] <> 443 && $protocol == "https")
      {
      $server_port = ":".$_SERVER['SERVER_PORT'];
      }
      elseif ($_SERVER['SERVER_PORT'] <> 80 && $protocol == "http")
      {
      $server_port = ":".$_SERVER['SERVER_PORT'];
      }
      else
      {
      $server_port = "";


      je ne sais pas si le problème est de chez l'éditeur ou bien de la version PHP (avec le paquet XAMPP)cinstallé sur mon PC
      1. Contributeur
        Essaye de nous mettre les lignes où l'on retrouve "$protocol".
      2. Contributeur
        les lignes ou $protocol est dans le if posent toute le meme probleme. Il faut trouver les lignes ou il y a une affectation
    2. //##############
      if ($_SERVER['SERVER_PORT'] <> 443 && $protocol == "https")
      {
      $server_port = ":".$_SERVER['SERVER_PORT'];
      }
      elseif ($_SERVER['SERVER_PORT'] <> 80 && $protocol == "http")
      {
      $server_port = ":".$_SERVER['SERVER_PORT'];
      }
      else
      {
      $server_port = "";
      }

      if (!empty($_SERVER['HTTPS']))
      $protocol = "https";
      else
      $protocol = "http";

      //##############

      je trouve la variable protocol aussi aprés
      $_SESSION['config']['businessappurl'] = $protocol."://".$host.$server_port.str_replace('index.php','',$_SERVER['SCRIPT_NAME']);
      1. Contributeur
        c'est ici que ta variable est definie:
        if (!empty($_SERVER['HTTPS']))
        $protocol = "https";
        else
        $protocol = "http";

        pour une raison que j'ignore, il ne passe pas là dedans

        essayes de rajouter un echo $_SERVER['HTTPS'] pour voir ce que ca dit
    3. Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /opt/lampp/htdocs/maarchentreprise/apps/maarch_entreprise/class/class_business_app_tools.php on line 59
      ligne 59: if (!empty($_SERVER['HTTPS']))

      j'ai ajouté la commande echo $_SERVER['HTTPS'] avant la boucle if
      1. Contributeur
        et t'as oublié le point virgule
    4. Ton
      if (!empty($_SERVER['HTTPS']))
      $protocol = "https";
      else
      $protocol = "http"; 
      est-il après ou avant ton premier "if" ?
      Si il est après ta variable $protocol risque quelques problème d'initialisation (php ne remontant pas le temps).
      1. c'estaprés.
        bon j'ai décidé de refaire le travail sur KUBUNTU 10.04 au lieu de fedora 10 et d'installer apache2, php5 postgresql séparement avec la commande
        apt-get install unzip apache2 php5 php5-pgsql postgresql-8.3 phppgadmin
        au lieu d'utiliser l'ensemble de service XAMPP (apache,mysql;perl;php) et ça à bien marché mantenant
        merci beaucoup.