» »

Povezave v PHP

Povezave v PHP

roky99 ::

Jou!

Mene pa zanima kater način je najpreprostejši za povezave v PHP-ju.

Težko je za razložit ampak se bom potrudu.
Na lokalnem strežniku imam nekaj takega:

"index.php"
mapa "uredi" v kateri je dokument "uredi_novico.php"

Kaj naj naredim če sem v datoteki "uredi_novico.php" in bi rad prišel nazaj na "index.php" ali katerikoli drug dokument, ki ni v mapi "uredi"?
Vem da lahko za vsako pišem "http://localhost/index.php" vendar je zelo neuporabno če je teh datotek več in jih po vrhu vsega želiš preseliti na FTP.

Prosim za kakšen nasvet.
don't drink and drive, just smoke and fly! ;)

urosz ::

../index.php

Tody ::

oz v besedah, uporabi relativno pot.

urosz ::

Tako je. Vedno uporabljaj relativne poti, edino seveda če je stran katero naslavljaš na drugem strežniku.

Gost ::

Odvisno. Vedno ravno ni dobro uporabljati relativnih poti, včasih so boljše absolutne. Recimo, da imaš take linke:

http://localhost/seo/friendly/url/uredi...
s pomočjo kakega mod_rewrite-a kaže to na datoteko
uredi/uredi_novico.php

Potem je bolje uporabljati absolutne urlje ali pa kar full urlje. Predlagam ti, da definiraš v nastavitvah kakšno spremenljivko ali konstanto:
define("URL", "http://localhost/");
in potem uporabljaš recimo:
echo URL . "index.php"

(To je zelo posplošeno napisano bolj za začetniško uporabo.)

AndrejS ::

In potem to dela samo na lokalni mašini ... kot ti pove localhost !

Gost ::

In potem to dela samo na lokalni mašini ... kot ti pove localhost !


Seveda moraš uporabiti različne nastavitvene datoteke za različna okolja (razvoj, produkcija). V razvojni imaš
define("URL", "http://localhost/")
v produkcijski pa recimo:
define("URL", "http://www.slo-tech.com/")

roky99,
verjetno boš prišel čez kar z uporabo samo relativnih poti. Zaenkrat. Kasneje, ko se bolj spoznaš s temi zadevami, pa boš moral uporabljati drugačne prijeme.

Zgodovina sprememb…

  • spremenil: Gost ()

roky99 ::

Ojoj, zej se pa čist nč ne znajdem :)

Kako ustvarm povezave z mod_rewrite ?
don't drink and drive, just smoke and fly! ;)

Zgodovina sprememb…

  • spremenil: roky99 ()

roky99 ::

A bi mogu .htaccess datoteko nardit?
Mi lahko mal več o tem poveste?
don't drink and drive, just smoke and fly! ;)

bluefish ::

Za prej opisan problem je nesmiselno uporabljati mod_rewrite. Naredi relativen link in to je vse.
In da, to se dela s pomočjo htaccess datoteke.

Gost ::

Da se Roky99-ja zmede še malo bolj:) Bodo relativne resnično vedno delovale primerno?
En precej enostaven primer, kjer ne bo šlo to čez:
1.) Imaš navigacijo (meni) v datoteki /includes/meni.php

2.) struktura strani je pa naslednja:
domov.php
kontakt.php
o-podjetju.php
o-podjetju/strategija.php

3.) Meni includaš v strategija.php in ne bo več pravilno deloval, ker te bo poslal na napačni nivo.

To moraš potem recimo rešiti ali s prilagodljivim menijem na vsakem nivoju posebej, ali pa z absolutnimi potmi.

Zgodovina sprememb…

  • spremenil: Gost ()

alessio2 ::

@Gost: če napišeš tako kot si ti napisal, da includaš "/includes/meni.php" bo to delalo povsod, kjer ga želiš includat, ker tako z začetnim "/" navedeš pot od roota in ga bo pravilno pograblo iz vseh fajlov.
Tudi jaz vseeno priporočam relativno pot, ker se tako izogneš marsikaterih težav, ko pride do migracij. Kodo pa tako optimiziraš, da se ti vedno poklapa z relativnimi potmi!

Gost ::

Includanje že, ampak jaz sem mislil, da ima v datoteki meni.php relativno podane navigacije:
<a href="../domov.php">Domov</a>

roky99 ::

No zdej mam pa spet en problem.
Za redirect sem uporabil naslednjo kodo, ker mi je na drugi način ves čas težilo zaradi headerjev.

<script> alert("Novica uspešno urejena"); </script>
<meta http-equiv="refresh" content="1;url=novice_vse.php">


Ampak kako v tem primeru priti do datoteke novice_vse.php? (datoteka novice_vse.php se namreč nahaja v prejšnji mapi).

Probal sem narediti takole:
<script> alert("Novica uspešno urejena"); </script>
<meta http-equiv="refresh" content="1;url=<?php ../novice_vse.php ?>">

... pa ne gre,

pa takole:
<script> alert("Novica uspešno urejena"); </script>
<meta http-equiv="refresh" content="1;url=<?php URL."novice_vse.php">

... pa tudi ne gre.
(zakaj URL? Ker imam to vrstico v config.php define("URL","$domena");)
don't drink and drive, just smoke and fly! ;)

Gost ::

Pravilno vstavi php kodo skupaj s končnim tagom in echo funkcijo.
<?php echo URL . "novice_vse.php"; ?>


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

brez .html končnice

Oddelek: Izdelava spletišč
121929 (1369) MisterR
»

URL in struktura datotek na serverju

Oddelek: Izdelava spletišč
111482 (1227) technolog
»

Osnovno php vprašanje

Oddelek: Izdelava spletišč
141595 (1316) R33D3M33R
»

.htaccess dovoljen dostop do 1 datoteke

Oddelek: Izdelava spletišč
61180 (1043) sverde21
»

php include dw

Oddelek: Izdelava spletišč
91016 (928) tec

Več podobnih tem