Autor Zpráva
onee
Profil *
Dobrý večer,
Potřeboval bych poradit s jednou jednoduchou php funkcí.
Mělo by to fungovat asi takto:
1. Uživatel se přihlásí a zapíše se určitá hodnota do $_SESSION['type']; -> číselná hodnota typu účtu (0-obyčejný účet, 1-další úroveň apod.) (hotovo)
2. Na stránce index.php zavolám funkci getType($_SESSION['type'];
3. Do souboru functions.php jsem vložil tuto funkci
function getType($typeInt){
  if($typeInt== 0){
    $type= '<span class="grey">1. úroveň</span>';
  }elseif($typeInt== 1){
    $type= '<span class="green">2. úroveň</span>';
  }elseif($typeInt== 2){
    $type= '<span class="orange">3. úroveň</span>';
  }elseif($typeInt== 3){
    $type= '<span class="red">administrátor</span>';
  }
return $type;
}


4. Ovšem funkce mi nic nevypíše, nevíte kde bych mohl mít chybu?
Je tam možná nějaká fatální chyba, funkce prozatím ještě tak neovládám.

Děkuji za odpověď
Moderátor Alphard: Obarveno, pro vkládní kódu prosím používej .
Mastodont
Profil
A jak přesně tu funkci voláš?
$neco = getType(...);
nebo
echo getType(...);

nebo nějak jinak?
onee
Profil *
Mastodont
přesně takto:
$x = getType($_SESSION['type']);
echo blablabla'.$x.';
onee
Profil *
$x = getType($_SESSION['type']);
echo blablabla'.$x.';
smejko
Profil *
$x = getType($_SESSION['type']);
echo blablabla'.$x.';

$x = getType($_SESSION['type']);
echo "blablabla".$x."";
onee
Profil *
smejko
na uvozovky jsem zapomněl, ale jde mi spíše o to, jestli takto vidíte na té funkci něco špatně, nebo mám hledat chybu jinde. Děkuji
Alphard
Profil
ve funkci samotné by se např. lépe hodil switch, ale i současný if by měl fungovat
jde spíše o to, že tam nekontroluje ostatní případy, např. neočekávanou hodnotu (kdyby byl zadaný parametr prázdný, tak by se správně nic nevypsalo)
a navíc je nutné ji přejmenovat, viz dále

function getOpravneni($typeInt){
  if($typeInt== 0){
    $type= '<span class=&quot;grey&quot;>1. úroveň</span>';
  }elseif($typeInt== 1){
    $type= '<span class=&quot;green&quot;>2. úroveň</span>';
  }elseif($typeInt== 2){
    $type= '<span class=&quot;orange&quot;>3. úroveň</span>';
  }elseif($typeInt== 3){
    $type= '<span class=&quot;red&quot;>administrátor</span>';
  }else{
    return false;
  }
return $type;
}


$x = getOpravneni($_SESSION['type']);
if(!$x) echo "Nastala chyba";
else echo "Lorum ipsum ...".$x;
AM_
Profil
obávám se, že se kříží s nativní funkcí php gettype(), která vrací typ proměnné. Divím se, že skript nekončí s fatální chybou dvojí deklarace funkce, možná je to tím, že tam máš velké T, ale PHP není case-sensitive, takže by ty funkce nemělo rozlišit.
Alphard
Profil
AM_:
pravda, ještě jsem si říkal, že je blbě pojmenovaná, tohle mě ale nenapadlo :-)
je to case-insensitive, asi má zakázaný výpis chyb

onee:
viz AM_
když to zkusíte s výpisem chyb, dostanete
Fatal error: Cannot redeclare gettype() in ...
onee
Profil *
Alphard
Tak děkuji za rady, teď už to nějak dám dohromady ;-).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: