| Autor | Zpráva | ||
|---|---|---|---|
| qweewq |
#1 · Zasláno: 6. 5. 2012, 15:11:32
Ahoj,
potřeboval bych prosím vás radu: strukturu webu mám takovou: ....
.....
// Zde mám includované soubory s deklarovanými funkcemi
if (!empty($_POST)){
bez_diakritiky($text); // Pokud zavolám funkci deklarovanou výše = Fatal error: Call to undefined function bez_DK()
...
//Zde zpracovávám formuláře
}
if (empty($_POST)){
....
....
// Zde mám obsah webu s formuláři
}Nechápu proč nemůžu zavolat fci ....(vše je v jednom souboru index.php) Děkuji za pomoc |
||
| ShiraNai7 Profil |
#2 · Zasláno: 6. 5. 2012, 15:14:09
Funkce bez_DK neexistuje... urcite mas spravne nazev?
|
||
| Tori Profil |
#3 · Zasláno: 6. 5. 2012, 15:14:43
qweewq:
Určitě se includuje skript s funkcemi? To jsou dvě funkce (bez_diakritiky a bez_DK), nebo jste si to jen zkrátil při psaní? |
||
| Alphard Profil |
#4 · Zasláno: 6. 5. 2012, 15:14:57
Není tam překlep? Dejte sem delší kód.
|
||
| qweewq |
#5 · Zasláno: 6. 5. 2012, 15:32:00 · Upravil/a: qweewq
Omlouvám se je to jedna a ta samá funkce....
// definice funkce pred if (!empty($_POST))
function bez_DK($text){
$prevodni_tabulka = Array('ä'=>'a','Ä'=>'A','á'=>'a','Á'=>'A','à'=>'a','À'=>'A','ã'=>'a','Ã'=>'A','â'=>'a','Â'=>'A','č'=>'c','Č'=>'C','ć'=>'c','Ć'=>'C','ď'=>'d','Ď'=>'D','ě'=>'e','Ě'=>'E','é'=>'e','É'=>'E','ë'=>'e','Ë'=>'E','è'=>'e','È'=>'E','ê'=>'e','Ê'=>'E','í'=>'i','Í'=>'I','ï'=>'i','Ï'=>'I','ì'=>'i','Ì'=>'I','î'=>'i','Î'=>'I','ľ'=>'l','Ľ'=>'L','ĺ'=>'l','Ĺ'=>'L','ń'=>'n','Ń'=>'N','ň'=>'n','Ň'=>'N','ñ'=>'n','Ñ'=>'N','ó'=>'o','Ó'=>'O','ö'=>'o','Ö'=>'O','ô'=>'o','Ô'=>'O','ò'=>'o','Ò'=>'O','õ'=>'o','Õ'=>'O','ő'=>'o','Ő'=>'O','ř'=>'r','Ř'=>'R','ŕ'=>'r','Ŕ'=>'R','š'=>'s','Š'=>'S','ś'=>'s','Ś'=>'S','ť'=>'t','Ť'=>'T','ú'=>'u','Ú'=>'U','ů'=>'u','Ů'=>'U','ü'=>'u','Ü'=>'U','ù'=>'u','Ù'=>'U','ũ'=>'u','Ũ'=>'U','û'=>'u','Û'=>'U','ý'=>'y','Ý'=>'Y','ž'=>'z','Ž'=>'Z','ź'=>'z','Ź'=>'Z');
return $text = strtr($text, $prevodni_tabulka);
}
// Zpracování formuláře => volání fce
bez_DK($_POST["name_kategory"]); // $_POST["name_kategory"] => textový řetězec předaný z formuláře. Jinak pokud mám deklarovanou fci ve scriptu kde zpracovávám formulář tak to de....
// Ještě bych podotknul že ve zpracování formuláře volám i jiné fce u kterých se nevyskytne žádný takový problémEdit: $bez_diakritiky = bez_DK($_POST["name_kategory"]); |
||
| qweewq |
#6 · Zasláno: 6. 5. 2012, 16:42:35
Nevíte někdo v čem by sem mohl dělat chybu? Kód jsem si prošel už asi stokrát, ale vše mi přišlo v pořádku
|
||
| Davex Profil |
#7 · Zasláno: 6. 5. 2012, 18:04:48
Není funkce
bez_DK() deklarována uvnitř jiné funkce nebo v bloku kódu, který se nevykonává, takže pak není dostupná v globálním kontextu?
Toto třeba nebude fungovat: <?php
if (false) {
function func()
{
return 'abc';
}
} else {
echo func();
} |
||
| qweewq |
#8 · Zasláno: 6. 5. 2012, 18:31:16
Je to udělané takhle:
Toto je index.php : require ("deklarece_funkci.php"); // Žádná z fcí není vnořená. V tomto souboru je deklarována funkce bez_DK($text), definice funkce viz výše
if (!empty($_POST)){ //V této podmínce zpracovávám formuláře => Obsah této podmínky je ještě vložen v souboru zpracuj.php který je na místo této podmínky includován !!!!
if (isset($_POST["now_kategory"]) && $_POST["now_kategory"] == "Vytvorit kategorii") {
if ($_POST["name_kategory"]!=="") {
$name_s_diakritikou = ucfirst($_POST["name_kategory"]);
$name_bez_diakritiky = bez_DK($_POST["name_kategory"]); // Zde volám fci u které php píše chybu: Fatal error: Call to undefined function bez_DK()
$result = mysql_query("INSERT INTO names_kategories (name_s_dk, name_bez_dk) VALUES ('$name_s_diakritikou','$name_bez_diakritiky')",$spojeni);
if (mkdir ($adresar_kategorie.$name_bez_diakritiky, 777) !== FALSE && $result !== FALSE) {
$hlaska = "Kategorie úspěšně vytvořena.";
presmerovani($hlaska);
} else {
$hlaska = "Omlouváme se kategorii se nepodařilo vytvořit";
presmerovani($hlaska);
}
} else {
$hlaska = "Kategorii se nepodařilo vytvořit. Nezadali jste jméno nové kategorie.";
presmerovani($hlaska);
}
}
...
}
if (empty($_POST)){
// Zde mám obsah webu s formuláři
....
}Opravdu už nevím čím to může být.... |
||
|
Časová prodleva: 1 rok
|
|||