include

ahoj
mam taky problem ze potrobujem po stlaceni tlacitka napr registrace...
includovat <?php include "./registrace.php"; ?> // nejak tak
alebo proste nejaku funkciu ktora includuje naprv
includestred()
...
...

alebo

includelavo()
...
...
"potrebujem po stlaceni tlacitka"
jakeho tlacitka? Myslis na strance, ktere je nebo neni soucasti formulare?
Na jake strance? Co treba odkaz?

1) Jeden zpusob je treba pouzit IFRAME <a href=... target="okenko"> (GET)
2) Dalsi treba pouzit IFRAME + JS Ajax IFRAME (GET/POST)
3) A dalsi je pouzit JS Ajax HTTPrequest, ktery zavola PHP a vygenerujes pres JS stranku (GET/POST)
4) Dal je mozne pouzit $_GET z odkazu <a href=?aaa=bbb> -> po kliknuti se nacte nova stranka a protoze if ($_GET['aaa']=="bbb") {include...}
5) Totez pri odeslani formulare, metoda GET/POST
no ano lenze ja mam takto

 - <a href="index.php?clanek=registrace">Registrácia</a><br>

a ono to nefunguje.
jak jako nefunguje?
na fighttolive.xf.cz mas <a href=<"a href=?registrace=1">Registrácia</a> a to neni zrovna dobre
j vidim ale aj tak to neide a vuobec neviem preco mam takto stranku

 - <a href="index.php?clanek=registrace">Registrácia</a><br>
if ($_GET['clanek']=="registrace") {include "./registrace.php";}
kdyz kliknu ted na registracia, tak se mi ta stranka nacte znovu a je tam formular na registraci. akorat je to mozna nejak divne zobrazeny, ale to uz s php nesouvisi
rieseny problem = novy problem.

ako si zistil tak akurat potrebujem taku vec ze aby sa ta noincludovalo normalne (do tej tabulky...) a nezostal tam ten text ako je ZDRASTVUJTE.

riesenie by som mal.
na zaciatok php dam
Header('Location: http://www.fighttolive.xf.cz/index.php?clanek=uvod');
a potom
<?php if ($_GET['clanek']=="uvod") {include "./uvod.php";} ?>
no a ked dakto klikne na tu registraciu tak
<?php if ($_GET['clanek']=="registrace") {include "./registrace.php";} ?>
potom ale ako to mam naformatovat rovno do tabulky?
=sk (fighttolive.xf.cz)=
PHP neni sablonovy system, jako smarty nebo templatepower, takze echo.
2 sk:
pokud dáš na začátek index.php ten header, tak dojde k nekonečné smyčce přesměrování, uživatel neuvidí nic, browser mu bude využívat procesor na 110% a admini taky nebudou rádi (server se taky zapotí).
Ten header(); musíš nějak podmínit; např:
if($_GET['clanek'] != 'uvod' or $_GET['clanek'] != 'registrace') {
Header("Location: ?clanek=uvod");
}
a zároveň můžeš v té podmínce pokračovat:
... elseif($_GET['clanek'] == 'uvod') {
include './uvod.htm';
} else {
include './registrace.htm';
}

A tím, že jsem tam napsal, že vkládám HTML soubory, tak jsem se ti snažil naznačit, že budu vkládat HTML kód formuláře (protože předpokládám, že v té stránce "?clanek=registrace" chceš mít registrační formulář).
<?
$filename = $page . '.php'; /* promena page urcuje jakou promenou budes predavat v odkazech stranku ktera se ma otevrit */
if(File_Exists ($filename))
{
include($filename);
}
else
{
include('main.php'); /* stranka ktera se ti otevre kdyz se stranka nacte, tato stranka se take nacte pokud stranka na kterou odkazujes v odku neexistuje */
}
?>



odkaz bude vypadat takhle:

<a href="index.php?page=neaka_stranka">Nějaka stránka</a>
muzete dat nejak takto :)
Koukám, že tu mluvíte o funkci include... s php začínám, takže zatím nejsu žádnej programátor... Ale mé použití vypadá trochu jinak, a řekl bych, že je to mnohem jednodušší...

<nějaká hlavička a třeba menu />
<?
if ($page=="") include "soubory/hlavni.php";
if ($page=="omne") include "soubory/omne.php";
if ($page=="guestbook") include "soubory/guestbook.php";
?>
<patička />

Žádný else, žádný složitosti... Při nulové hodnotě proměnné načte hlavní stránku. Neincluduju taky jen soubory php. Samozřejmě odkazy v tvaru index.php?page=omne a pod... Stejným způsobem pak měním title, keywords a popřípadě drobečkovou navigaci. Nevím, proč vy na to tak složitě...

Tuto fukci jsem taky použil pro načtení obsahu když jsou splněné 2 podmínky:

if ($page=="foto" && $gallery=="") include "soubory/foto.php";
if ($page=="foto" && $gallery=="podzim") include "soubory/podzim-06.php";

A odkazy /* validní odkazy :) */ ve tvaru: ?page=foto&gallery=podzim
Mike:
máš pravdu, jsi začátečník =)
Jen tak: co když nebude proměnná $page nadefinovaná vůbec? Vrátí ti to chybu :)
Když budeš mít těch podmínek hodně, tak bude muset PHP procházet všechny, čímž se zbytečně zdržuješ, pokud použiješ else, tak PHP ví, že pokud byla splněna podmínka, tak zbytek může vypustit a ušetří čas.
Tomu se říká <duraz>optimalizace</duraz>!
A když už se tedy chceš pouštět do jazykových konstrukcí, což takhle switch, case,... ? Nic? Prostuduj PHP manuál a uvidíš co to píšeš :)

BTW: já použít na svých fórech "tvou" metodu, tak místo SWITCHu na 16 řádků mám podmínku na takových 200 řádků a PHP by se zbláznilo!
Tom:
No tak těch podmínek moc nemám, okolo 30ti... Vím, no, o někajé efektivitě se moc mluvit nedá... Chybu mi to ale nevrátí; z toho důvodu sem si nastavil v .htaccess php_flag display_errors Off. (Nemusí všichni vidět cestu k načítaným souborům) Jinak co se týče studia "manuálu", těžko bude čas, když se teď musím naučit základy céčka a asemblerů...

Btw stejně to ale musí projet všechny ify, než to dojede k else, ne? S tím switch a case máš ale pravdu...

PS.: To fórum je chytrý, napsal sem "& a m p ;" a ono se to převedlo :)
Mike: i to stačí, proč musí server zbytečně kontrolovat jednu proměnnou 30x, když to stačí, já nevim, jednou, 5x, 10x, v závilsosti na splnění podmínky ...
jinak, když už to řešíš pomocí if(), tak zkus tohle:

if(podminka) {
... kod...
} elseif(podminka#2) {
... kod ...
} elseif(podminka #3) {
...kod ...
} ...

BTW: s chybami zbytečně netrap server:
a) if(!isset($var)) {
echo 'chybí mi proměnná';
} else ...

b) error_reporting(0);