Autor Zpráva
Fisak
Profil
Zdravím... mám kod:
function mypage($stranka)
{
switch($stranka){
 
         case 'page':
          $page = $_GET['page'];
        break;
        
        case 'action':
          $page = $_GET['action'];
        break;
        
        case 'run':
          $page = $_GET['run'];
        break;
        
}
// $mypage=vycistipole($page);
$mypage=preg_replace('#[^0-9\a-z\-\;\_\%\.\ \ěščřžýáíé]#ui', '', $page);

return $mypage;

}

a v 14 řádku mi to píše chybu "Notice: Undefined index: run in..." pokud mám adresu "adresa.cz/?page=home&action=neco" což je divné... při zapnutém mod_rewrite mi to nic nehlásí a stejně tak mi to nic nehlásí při "adresa.cz/?page=home&action=neco&run="... Má někdo nějaké řešení ??
Tori
Profil
Fisak:
Co té funkci předáváte jako parametr? Zřejmě je chyba tam.
Fisak
Profil
no tu fci používám jako echo mypage("run"); ale jak řikam pokud $_GET['run'] neexistuje tzn. pokud neni v adrese "run" tak to vyhodí tuto chybu
Tori
Profil
Použijte aspoň to isset() - mně by se to nechtělo psát do každé větve switche, takže bych to udělala asi takhle.

function mypage($index) {
  if (!in_array($index, array('run', 'action', 'home'))) { // povolené parametry z URL
    return false; // tady je to, co by v tom switchi bylo ve větvi default
  }
  $page = (isset($_GET[$index]) ? $_GET[$index] : 'nějaká výchozí hodnota');
  return preg_replace('#[^0-9\a-z\-\;\_\%\.\ \ěščřžýáíé]#ui', '', $page);
}
Nenapsal jste, co by to správně mělo dělat, pokud v URL chybí ten parametr, tak jen tipuju.
↓ chybějící závorka, opravila jsem.
Fisak
Profil
Parse error: syntax error, unexpected '{' in "if (!in_array($index, array('run', 'action', 'home')) { // povolené parametry z URL"
Louka
Profil
Chybí ukončit jednu kulatou závorku, na to přijdeš ;).

...ano, viz editaci Tori.
TomasJ
Profil
Fisak:
Tak zaprvé Notice není chyba, ale poznámka (ničemu nevadí - mimo oka prohlížejícího).
A zadruhé to co ve skutečnosti potřebuješ je:
isset()
Ostatně jak píše Tori v [#4].
Fisak
Profil
Paráda díky moc všem !!! :-)

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: