Autor | Zpráva | ||
---|---|---|---|
Rici78 Profil |
při přechodu na php5 mi nevykoná funkci
<?php function ukazclanek () { if ((string)$_REQUEST["clanek"]<>'') $mujclanek=$_REQUEST["clanek"]; else $mujclanek="zakl"; if (is_file("./".$mujclanek.".htm")): $nazevclanku=$mujclanek.".htm"; require $nazevclanku; elseif (is_file("./".$mujclanek.".php")): $nazevclanku=$mujclanek.".php"; require $nazevclanku; else: $nazevclanku=$mujclanek.".htm"; require "notfound.php"; endif; } ?> Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Alphard Profil |
#2 · Zasláno: 13. 3. 2010, 23:24:12
Když si vypíšete $_REQUEST["clanek"], je správný?
|
||
sete78 Profil * |
#3 · Zasláno: 14. 3. 2010, 00:34:51
Trochu to upřesním v php4 to normálně funguje, ale když jsem teď přeinstaloval na php5 tak to nechodí, tak si myslím že bude chyba někde v zápisu ale nikde jsem nenašel rozdíl v zápisu php4 a php5. Jinak jsem začátečník tak nevím jak mám vypsat $_REQUEST["clanek"]
|
||
Alphard Profil |
#4 · Zasláno: 14. 3. 2010, 00:44:01
Klasicky
echo $_REQUEST["clanek"]; A podívat se, jestli se vypisuje identifikátor požadované stránky. |
||
bossqone Profil * |
#5 · Zasláno: 14. 3. 2010, 20:01:31
<?php function ukazclanek () { if (!empty($_GET["clanek"])) { $mujclanek = $_GET["clanek"]; } else { $mujclanek = "zakl"; } if (is_file("./" . $mujclanek . ".htm")) { $nazevclanku = $mujclanek . ".htm"; require $nazevclanku; } elseif (is_file("./" . $mujclanek . ".php")) { $nazevclanku = $mujclanek . ".php"; require $nazevclanku; } else { require "notfound.php"; } } ?> Čo takto ? Otestuj, ja som nemal kde.. |
||
sete78 Profil * |
#6 · Zasláno: 14. 3. 2010, 21:21:24
když jsem dal
echo $_REQUEST["clanek"]; tak to vypisuje Notice: Undefined index: clanek in C:\dev\www\func.php on line 26 a při vložení kódu od bossqoneho to vypisuje Notice: Undefined index: clanek in C:\dev\www\func.php on line 25 a stále se nezobrazí. Zatím moc děkuji za pomoc. Neřekl jsem že to php mám nainstalované na win7 ultimate, a instaloval jsem to podle návodu na Odkaz instalace nejnovější verse Apache, Php, My SQL krok za krokem a php info se normálně zobrazí. |
||
Alphard Profil |
#7 · Zasláno: 14. 3. 2010, 21:28:50
V $_REQUEST["clanek"] není správná hodnota, vlastně daný klíč vůbec neexistuje. Nenapadá mě, jak to souvisí s přechodem na PHP 5, ale chyba není ve zveřejněné části kódu. Podívejte se do adresního řádku prohlížeče, v čem se aktuální stránka přenáší, a upravte její jméno.
|
||
sete78 Profil * |
#8 · Zasláno: 15. 3. 2010, 16:03:10
Připojuji všechny zdrojáky se kterými má tato funkce pracovat jestli bi to někdo neodskoušel na svém pc
soubor: zakl.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//CZ"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1250"> <META NAME="Generator" CONTENT="Golden HTML Editor 4.8.3"> <TITLE>Bez titulku</TITLE> </HEAD> <BODY TEXT="Black"> <P ALIGN="left"> </P> <P ALIGN="left"><U>Plemeno</U> - Německý ovčák</P> <P ALIGN="left"><U>Pohlaví</U> - Fena</P> <P ALIGN="left"><U>Datum narození</U> - 15.12.2006 </P> <P ALIGN="left"><U>Barva srsti</U> - černá se znaky</P> <P ALIGN="left"><U>Druh srsti</U> - krátká</P> <P ALIGN="left"><U>Chovatel</U> <ADDRESS> Gabriela Galvasová -- <A HREF="mailto:galvasova.gabriela@tiscali.cz">galvasova.gabriela@tiscali.cz</A> </ADDRESS> </P> <ADDRESS> Chovatelská stanice Němeských ovčáků<BR> Majorův Háj<BR> Zahořany 92<BR> Králův Dvůr<BR> 267 01<BR> <A HREF="HTTP://www.majoruvhaj.cz/index.html">www.majoruvhaj.cz</A><BR> </ADDRESS> <P ALIGN="left"><U>Majitel</U> <ADDRESS> Vendula Lhotáková -- <A HREF="mailto:riciv@seznam.cz">riciv@seznam.cz</A> </ADDRESS> <ADDRESS> Stašov 77<BR> Zdice<BR> 267 51<BR> </BODY> </HTML> soubor:navigace.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//CZ"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1250"> <META NAME="Generator" CONTENT="Golden HTML Editor 4.8.3"> <TITLE>Bez titulku</TITLE> </HEAD> <BODY TEXT="Black"> <p><a href="index.php?clanek=zakl">Základní údaje</a></p> <p><a href="index.php?clanek=vystavy">Výstavy</a></p> <p><a href="index.php?clanek=foto">Foto galerie</a></p> <p><a href="index.php?clanek=login">Přihlásit</a></p> </BODY> </HTML> soubor: index.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//CZ"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1250"> <META NAME="Generator" CONTENT="Golden HTML Editor 4.8.3"> <TITLE>Larra</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> </HEAD> <BODY BACKGROUND="./images/pozadi.jpg"> <?php require "./func.php"; ?> <BODY TEXT="Black"> <H1><B><CENTER><FONT COLOR="Blue">LARRA Majorův háj</FONT></CENTER></B></H1> <div align="center"> <table width="760" cellpadding="0" cellspacing="0" border="0"> <tr> <td width="760" height="240" colspan="2"><img src="./images/top.jpg" width="760" height="240"></td> </tr> <tr> <td width="160" valign="top"> <?php require "./navigace.php"; ?> </td> <TD VALIGN="MIDDLE" WIDTH="600"><?ukazclanek()?></td> </tr> </table> </BODY> </HTML> soubor:func.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//CZ"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1250"> <META NAME="Generator" CONTENT="Golden HTML Editor 4.8.3"> <TITLE>Bez titulku</TITLE> </HEAD> <BODY TEXT="Black"> <?php function ukazclanek () { if ((string)$_REQUEST["clanek"]<>'') $mujclanek=$_REQUEST["clanek"]; else $mujclanek="zakl"; if (is_file("./".$mujclanek.".htm")): $nazevclanku=$mujclanek.".htm"; require $nazevclanku; elseif (is_file("./".$mujclanek.".php")): $nazevclanku=$mujclanek.".php"; require $nazevclanku; else: $nazevclanku=$mujclanek.".htm"; require "notfound.php"; endif; } echo $_REQUEST["clanek"]; ?> </BODY> </HTML> Jinak když klepnu na odkaz v levé nabídce tak adresní řádek v prohlížeči vypíše http://localhost/index.php?clanek=zakl |
||
sete78 Profil * |
#9 · Zasláno: 15. 3. 2010, 16:07:53
Zapoměl jsem soubor vystavy.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> <style> h2 {color:blue} h4 {color:red} tr {text-align:center} </style> </head> <body> <table border="1": align=center: width=100%> <caption align=center><h2>Výstavy</h2></caption> <tr> <td><h4>Datum</h4></td> <td><h4>Druh výstavy</h4></td> <td><h4>Výsledek</h4></td> </tr> <tr> <td>24.10.2009</td> <td>Bonitace</td> <td>N, 2.tř</td> </tr> <tr> <td>13.4.2009</td> <td>Tř. pracovní</td> <td>Velmi dobrá</td> </tr> <tr> <td>19.7.2008</td> <td>Tř. mezitřída</td> <td>Velmi dobrá</td> </tr> <tr> <td>24.3.2008</td> <td>Tř. mladých</td> <td>Velmi dobrá</td> </tr> <tr> <td align=center>22.9.2007</td> <td align=center>Tř.dorost</td> <td>Velmi nadějná</td> </tr> </table> </body> </html> |
||
sete78 Profil * |
#10 · Zasláno: 15. 3. 2010, 20:12:12
Tak mě napadá že když mi to nezobrazuje ty funkce v prohlížeči a to v ani jednom jak v mozile tak v exploreru, jestli to nemůže dělat nějaké zabezpečení? Bránu firewall jsem procházel a na nic jsem nepřišel.
|
||
AM_ Profil |
#11 · Zasláno: 15. 3. 2010, 20:47:35
sete78:
<TD VALIGN="MIDDLE" WIDTH="600"><?php ukazclanek()?></td> Tohle může být chyba související s přechodem na novou verzi PHP - od nějaké verze PHP5 je defaultně vypnuté použití short_open_tagů (vyhechání "php") - dobré řešení je všude "php" doplnit, rychlé řešení je short_open_tagy v php.ini zapnout. |
||
sete78 Profil * |
#12 · Zasláno: 15. 3. 2010, 21:45:07
Short_open_tagy jsem zapnul a stále nic pořád stejná chyba, tak nevím jestli nemám nainstalovat virtual pc na to win XP a zkusit to na tom a kdyby to šlo tak to dělají WIN 7 jinak si to nedovedu už vysvětlit.
|
||
Alphard Profil |
#13 · Zasláno: 16. 3. 2010, 16:34:20
sete78:
Někam na začátek dejte print_r($_GET); |
||
sete78 Profil * |
#14 · Zasláno: 16. 3. 2010, 18:44:26
Děkuji za rady ale když jsem dnes stránky přehrál jinými tak ty se začali zobrazovat nermálně akorát se stále vypisuje $_REQUEST["clanek"] který v kódu není vůbec napsaný tak si myslím že to zůstalo někde v registrech tak to vypnu a pak dám vědět.
|
||
Sirius Profil |
#15 · Zasláno: 16. 3. 2010, 20:15:51
Jsi si jistej, že opravdu kontroluješ ty soubory, který se zpracovávaj? Nemáš je třeba v jiný složce?
|
||
AM_ Profil |
#16 · Zasláno: 16. 3. 2010, 22:32:05
sete78:
„Tak mě napadá že když mi to nezobrazuje ty funkce v prohlížeči“ funkce se nezobrazují v prohlížeči. „akorát se stále vypisuje $_REQUEST["clanek"] který v kódu není vůbec napsaný tak si myslím že to zůstalo někde v registrech“ co se vypisuje v PHP skriptu nemá lautr nic společného s registry Windows mám trochu pocit, že vůbec nevíš, o čem mluvíš. Funkce se spustí pokaždé, když je volána, takže musíš zjistit, zda je správně zavolána ale vypisuje špatný výsledek, nebo není zavolána. Jinak mít echo/require ve funkci není moc pěkná věc, ukazclanek() by mohlo např. vracet cestu k aktuálnímu článku a v těle HTML bys měl require ukazclanek(); |
||
Časová prodleva: 14 let
|
0