Autor | Zpráva | ||
---|---|---|---|
Mesiah Profil |
Dobrý den,
z nějakého důvodu mi PHP hlasí chybu: Fatal error: Cannot redeclare naindex() (previously declared in C:\Web\www\eshop\fce.php:6) in C:\Web\www\eshop\fce.php on line 7 Ve skriptu: <?php session_start(); include("opendb.php"); include("fce.php"); include("public.php"); // Admin sekce if ( JeAdmin() ) { ZobrazVolbyAdmina(); } else { NaIndex(); } ?> function NaIndex() { header("Location: index.php"); } |
||
tiso Profil |
#2 · Zasláno: 22. 12. 2008, 23:00:49
Mesiah v súbore fce.php máš 2x deklarovanú funkciu NaIndex()
|
||
Mesiah Profil |
#3 · Zasláno: 23. 12. 2008, 01:10:15
tiso
bohužel tak snadný to neni. Ne, je tam jen jednou. A jinde nez ve fce.php neni... takze ze by zase dalsi mysteriozni zahada z php? |
||
tiso Profil |
#4 · Zasláno: 23. 12. 2008, 02:35:12
Mesiah - ukážka z toho súboru fce.php (prvých 11 riadkov) by sa nenašla?
|
||
Smokie Profil |
#5 · Zasláno: 23. 12. 2008, 10:11:50
S tíhmle errorem sem se včera taky chvíli štval. Takže :
Podívej se jestli ti funkce ZobrazVolbyAdmina(); include("fce.php"); Takhle vymýšlet čím to bude je opravdu těžké a jestli to bude pořád přetrvávat (ten error ) tak by se hodily všechyn soubory o kterých je v tom skriptu řeč ;-) |
||
Mesiah Profil |
#6 · Zasláno: 23. 12. 2008, 11:36:10
|
||
bohyn Profil |
#7 · Zasláno: 23. 12. 2008, 11:54:18
Mesiah
V dodanych scriptech chybu nevidim, zkontroluj si jeste jestli nevkladas fce.php v opendb.php - ta je vkladana 2x coz asi neni zadouci. Pokud to tam 2x byt musi kvuli jinym scriptum, pouzij include_once |
||
Mesiah Profil |
bohyn
ee, open db je jen pro pristup do db, takovy univerzalni script. <?php // OPEN DB $conn = @mysql_pconnect("localhost", "eshop", "internetovy"); if (!@mysql_select_db("eshop", $conn)) { // skrýt chybu a ukončit aplikaci, pokud se nepodaří připojit k databázi echo "<b>Omlouváme se, databáze nenií v tuto chvíli přístupná.<b/>"; exit; } mysql_query("SET NAMES 'cp1250'"); ?> |
||
tiso Profil |
#9 · Zasláno: 23. 12. 2008, 14:26:06
Mesiah - vyzerá to ako problém s tým include, skontroluj si kde čo vkladáš, alebo všade daj include_once. Mohla by ti pomôcť funkcia http://sk.php.net/manual/en/function.get-included-files.php
|
||
Mesiah Profil |
#10 · Zasláno: 23. 12. 2008, 14:30:31
Tak, problem vyřešen.
Šlo o nastavení serveru. Asi. Normálně pracuju na linuxu na nejakym profesionalne zprovoznenym serveru a tam je chovani takove, ze bez toho abych nenaincludoval nejaky skript, tak se k urcite fci nedostanu. Tady na ntb to je nastaveny obracene, nevim jestli je to tim ze jde o windows, nebo nekvalitne nastavenym serverem (asi tohle), ale includovat skripty staci jen v indexu, vic netreba. Proto to hlasilo chybu redeklarace fce, ted je mi to uz jasne. :) Všem děkuji za pomoc a doufám, že můj problem někdy někomu pomůže vyřešit jeho problem. S pozdravem a přáním pěkných svátků Mesiah |
||
bohyn Profil |
#11 · Zasláno: 23. 12. 2008, 14:53:24
Mesiah
OS ani nastaveni serveru na to nema vliv. Kdyz nekam vlozis script s funkci tak ta funkce je od te chvile dostupna pro cely zbyvajici kod. Neco si delal spatne. |
||
tiso Profil |
#12 · Zasláno: 23. 12. 2008, 15:44:05
bohyn - možno mal nastavené http://sk.php.net/manual/en/ini.core.php#ini.auto-prepend-file
|
||
Časová prodleva: 1 rok
|
|||
Mufna Profil |
#13 · Zasláno: 22. 4. 2010, 18:47:55
Taky jsem se setkal s problémem, kdy jsem měl hlášku Cannot redeclare header(). Načítal jsem do index.php soubor, ve kterém byly deklarované funkce pro jednotlivé části stránky - header(), footer() atd. Zkoušel jsem include, include_once, require i require_once a nic. Pomohlo mi nakonec to, že jsem přejmenoval fci header() - já ji konkrétně přejmenoval na wrt_header() a ostatní pak taky na wrt_neco(), tedy wrt_footer() atd. Ale problém se týkal zřejmě pouze fce header(), ostatní bych přejmenovávat určitě nemusel. V případě fce header() však jde o vestavěnou fci PHP (pokud vím) a tak to asi může zlobit, pokud si svoji fci pojmenujete stejně.
|
||
Časová prodleva: 13 let
|
0