Ako su riesene php stranky?!

Programovacie jazyky, rady, poradňa...
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Ako su riesene php stranky?!

Príspevok od používateľa 4JOKE »

Chcel by som len strucne vysvetlenie na akom principe su najcastejsie spravene stranky, teda konkretne nacitavanie obsahu, priklad:
index.php?id=novinky

...myslel som si ze to je robene tak, ze v stranke index je cely design a kostra stranky a podla ID zisti aky subor ma nacitat php, v tomto priklade by to bolo novinky.txt ...
...lenze problem je v tom ze ak v tom novinky.txt potrebujem mat nejake udaje, ktore sa budu tahat z mysql...
...totiz potom do index.php nemozem nacitat obsah novinky.txt v ktorom bude pouzite tiez php a aj s mysql...
...takze bud som zle pochopil ako sa takto riesi nacitavanie obsahu cez index.php?id=blabla ,alebo existuje nejaky sposob ako nacitat zo suboru do php dalsie php...
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

raz som to niekomu vysvetloval a napisem ti to iste ak sa nebudes hnevat

ked mas podporu php, tak ti ukazem jednu fintu. je to "programovania" na 5 riadkov asi. na zaciatok suboru (index.php) vlozis toto tu

Kód: Vybrať všetko

<?php
$menu = $_GET['menu'];
if (!isset($menu))
{
$menu="start";
}
?>
dalej bude nejaky html kod tvojej stranky. menu a bannery a tlacitka a bla bla bla.
ked prides po stred, tak vlozis toto tu

Kód: Vybrať všetko

<?php
include ("./$menu.php");
?>
a ked budes robi odkazy, tak to spravis napriklad takto:

Kód: Vybrať všetko

<a href='index.php?menu=profil'>profil</a>
do toho menu si das vlastne nazov suboru. subor si nazves nieco.php a vlozis tam ten menitelny obsah. ked uzivatel pride na stranku, tak rovno mu hodi ako tu menitelnu cast obsah suboru start.php.
to je vsetko. GL ;)
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

hm... mal som to podobne spravene, akurat ze takto:
if ($id=='') $a= file('news.dat');
else {
$id = $id.'.dat';
$a = file($id);
};
...a potom kde som potreboval vypisat obsah som dal ciklus s echo...

...btw podla tvojho som to skusil a fungoval mi to co mi pri tom mojom neslo...
...lenze potom mi nejde do hlavy ako tam mam spravit zalamovanie riadkov..
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

zalamovanie riadkov??
myslis v zdrojaku? ak ano, tak tam pichni \n
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

vyzera to tak ze sa absolutne nechapeme. neviem akym cyklom si to robil. fakt si neviem predstavit, kde by sa tam mohol dat cyklus.
a zalomavanie? neviem o com hovoris. v tych suboroch ma byt html kod a zalomenie je klasicky cez neparovy tag br
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

takze pokusim sa este raz:

...hovorim o mojom subore index.php

...prve co mam na stranke:

Kód: Vybrať všetko

<?
 if ($id=='') $a= file('news.dat');
 else {
        $id = $id.'.dat';
        $a = file($id);	
 };

?>
...to je v podstate to ciste co si napisal ty...

...potom mam divy a atd...proste design a atd...
...potom mam div v ktorom ma byt obsah ktory sa ma menit podla linku na ktory kliknem:

Kód: Vybrať všetko

<?
for ($i=2;$i<count($a);$i++) {
if (ord($a[$i][0])>=65 and ord($a[$i][0])<=122) $a[$i]=str_replace("\n","<br>",$a[$i]);
echo $a[$i];
};

?>
...a to je v podstate cely kod mojej stranky...

...ked som to upravil podla teba tak ten dlhy cyklus ktory nacitava a zalamuje riadky som dal:

Kód: Vybrať všetko

include($id)
...ide to ok, nacita mi to obsah, lenze ked tam mam takyto text:

Kód: Vybrať všetko

jeden
dva
tri
..tak mi ho vypise ako: ,, jeden dva tri'' a nie pod seba...

...ak chapem spravne tak by som mal podla teba by som mal potom v tom subore ktory nacitavam cez include davat za kazdym riadokom <br> coz sa mi zda blbost...
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

A kde ti to tak vypíše? Ak v prehliadači, tak je to presne také, aké to má byť. Musíš tam pridať tag <br>
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

...ked nacitam text cez include tak mi to nezalamuje riadky v prehliadaci...
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

4JOKE napísal:...ak chapem spravne tak by som mal podla teba by som mal potom v tom subore ktory nacitavam cez include davat za kazdym riadokom <br> coz sa mi zda blbost...
Tak funguje html (takže sa to zobrazuje presne tak, ako sa to zobrazovať má).
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

tak bud das to do nejakeho divu s max width alebo tam das <br /> pre xhtml a <br> pre html
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

ok, tak asi tam budem teda davat tie <br> ...

...este ale jeden problem mam ohladom toho...
...nacitam obsah napriklad z news.txt a teraz ked sa mi to nacita do nejakeho divu cez include, tak potrebujem aby som mal zaroven v inom dive text ze Novinky...

...vtedy som to mal riesene tak, ze som ten subor mal nacitany v poli a vedel som ze vzdy prvy riadok pola bol ten nazov, takze som si to mohol hocikam dat...
ehm123
King
King
Príspevky: 1658
Registrovaný: 27 feb 2006, 6:45
Bydlisko: PD / Praha

Príspevok od používateľa ehm123 »

absolutne nechapem co chces....
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Niečo takéto?

Kód: Vybrať všetko

<div>
<?php include("menu.txt"); ?>
</div>

<div>
<?php include("news.txt"); ?>
</div>
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

mam pocit, ze ty robis uplne vsetko preto aby si nemusel html vobec pouzit... tiez neviem co chces dosiahnut, ale tusim... ten nadpis si daj do toho includnuteho subory. tam hod aj ten div a vsetko co ti treba
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

skor si myslim ze sa absolutne nerozumieme, tazko sa mi to vysvetluje...
...takze to prve sme teda vyriesili, vsade budem davat to <br> ked chcem zalomit riadok...

...a teraz k tomu druhemu: (btw turtlak to tusim spravne pochopil ale pri mojom zdrojaku to tak jednoducho nejde)
- nacitam obsah stranky z news.txt do index.php
- ten obsah bude v nejakom dive v ktorom sa objavy ten nacitany obsah
-- no nadpis k tomuto obsahu zas potrebujem mat v inom dive
-- teda pri nacitany news.txt do jedneho divu, potrebujem mat zaroven napisane Novinky v inom dive
-- mozno vam pomoze tento zdrojak:

Kód: Vybrať všetko

<div id="line">
  <div id="up">
    <div id="nadpis">
     
     ----- NADPIS ------

    </div>
  </div>                                                                                       
  
  <div id="middle">
       <div id="left"></div>
       <div id="floating">  
         <div id="menu">
              
            --- MENU ---

         </div>
         <div id="space1"></div>
       </div>  
     
       <div id="floating">
         <div id="text">
<?
include(...subor s obsahom...);

?>
         </div>                                    
         <div id="space2"></div>
       </div>
       
       <div id="right"></div>
       
  </div>
  
  <div id="clear">
      <div id="banner"> BANNER !!!! </div>
      <div id="banner2"></div>
  </div>    

</div>
(to menu si nevsimajte, to je staticke, potrebujem ten nadpis + obsah)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

index.php:

Kód: Vybrať všetko

<?php
        include("test.php");
?>
<div id="nadpis">
        <?php echo $nadpis; ?>
</div>
<div id="obsah">
        <?php echo $obsah; ?>
</div>
test.php:

Kód: Vybrať všetko

<?php
        $nadpis="Nadpis";
        $obsah="aaa<br>
bbb<br>
ccc";
?>
Prípadne ak ťa to vkladanie <br> veľmi unavuje, tak to tam nemusíš dávať, ale potom budeš musieť upraviť jeden riadok na niečo takéto:

Kód: Vybrať všetko

        <?php echo nl2br($obsah); ?>
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

dik velmi moc, ale v tomto pripade by som sa mal zas dostat k tomu istemu problemu ako predtym...

...teda ak ten obsah bude z casti dynamicky a teda nacitavany pomocou php a mysql tak ho nemozem len vypisat cez echo...
...pochopil si ma spravne co chcem, lenze tie novinky nebudem asi vzdy novu rucne zapisovat do toho suboru...teda to budem mat ulozene vsetko v mysql...
...a ked dam nacitat obsah z news.txt, tak potrebujem aby sa mi nacital ten nadpis z toho subora (to bo islo) a zaroven aby sa nacital obsah, coz by bolo dajme tomu 10noviniek v tabulkach, pricom nacitanych z mysql (coz uz je problem)

...dufam ze sa pochopime, lebo sa mi to tazko vysvetluje...
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Tak tam nedáš premennú $obsah ale dáš tam funkciu obsah() (a tá vráti to čo chceš).

Kód: Vybrať všetko

function obsah()
{
    return "aaa<br>
bbb<br>
ccc";
}

Kód: Vybrať všetko

function obsah()
{
    mysql_query();
    mysql_fetchrow();
    return $premenna
}
a potom použiješ

Kód: Vybrať všetko

<?php echo obsah(); ?>
4JOKE
Light Star
Light Star
Príspevky: 269
Registrovaný: 10 sep 2005, 10:23

Príspevok od používateľa 4JOKE »

neviem ci som ta spravne pochopil, ale asi by mi to nefungovalo...dam preistotu v skratke ako vyzera news.txt :

Kód: Vybrať všetko

<? pripojenie k databaze mysql ?>

Novinky

nejaky text, bak bakbkbbfb

<? 
for 1 po koniec mysql... {

echo '
<table>
 <tr>
   <td> '.$datum_novinky.'  </td>
 </tr>
 <tr>
   <td> '.echo $obsah_novinky.' </td>
 </tr>
</table>';

};

...takze takto by vyzerali tie novinky... najlepsie by teda bolo fakt includnut do index.php a nejak inak doriesit to nadpis do ineho divu...
...btw cele mi to pripada nejak zlozite, riesi sa to vobec takto?
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

prva vec co by si si mal cim skor uvedomit je, ze ked mas priponu txt, tak ti to sice opjde, ale zobrazi to hocikou ked zada adresu toho suboru. takze pekne includuj subory s priponou php. dalej pripojenie k DB si daj do suboru a ten includni v indexe a dalej sa nemusis starat o DB. dalej ak chces novinky, tak nadpis si uloz tiez do DB a cucaj aj nadpis aj clanok aj datum a vsetko co len chces. potom si mozes povedat, ze to mas fajne spravene :) dufam, ze uz aspon trosku chapem co chces spravit ;)
Napísať odpoveď