Curs Php-mysql

Daca aveti fisiere in diferite directoare care include un fisier php ce la randul lui include un alt fisier, o problema poate fi calea de includere ce se schimba cand fisierul e inclus din directoare de nivel diferit.
De exemplu, in aceasta structura de fisiere si directoare:
/
- dir1/
  - dir1_2/
      level_2.php

  level_1.php

config.php
index.php
- "level_1.php" (care e in "dir1/") include "config.php".
- "level_2.php" (in "dir1_2/") include "level_1.php".
- "index.php" (in root "/") include "level_1.php".

Dupa cum puteti observa, "level_1.php" este inclus din directorul radacina (in "index") si din "dir1_2/" (in "level_2").
Daca in 'level_1.php' se include "config.php" folosind:
include('../config.php');
Acest cod nu va functiona cand "level_1.php" e inclus in celelalte fisiere.

Problema e, cum sa fie inclus "config.php" in "level_1.php" astfel incat acest fisier sa poata fi accesat /inclus de oriunde.
Am incercat calea absoluta /intreaga la server, folosind:   dirname(__FILE__) (sau: __DIR__ ), dar nu a functionat in Windows.
Cautand pe net ca sa gasesc o solutie adecvata la aceasta problema, am gasit urmatorul cod ce obtine calea relativa la directorul radacina a site-ului ("www/", "public_html/", "httpdocs/"):
$current_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
$current_host = pathinfo($_SERVER['REMOTE_ADDR'], PATHINFO_BASENAME);
$the_depth = substr_count( $current_path , '/');

// Seteaza calea relativa la radacina
if($current_host == '127.0.0.1') $pathtoroot = str_repeat('../' , $the_depth-1);
else $pathtoroot = str_repeat ('../' , $the_depth);

echo $pathtoroot;

Am pus acest cod intr-o functie ce returneaza calea relativa din orice director curent la radacina, si problema a fost rezolvata folosind aceasta functie ca sa fie inclus "config.php" in "level_1.php", care poate fi accesat de oriunde.
// returneaza calea relativa din directorul curent la radacina
function getRootPath() {
  $current_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
  $current_host = pathinfo($_SERVER['REMOTE_ADDR'], PATHINFO_BASENAME);
  $the_depth = substr_count( $current_path , '/');

  // Seteaza calea relativa la radacina
  if($current_host == '127.0.0.1') $pathtoroot = str_repeat('../' , $the_depth-1);
  else $pathtoroot = str_repeat ('../' , $the_depth);

  return $pathtoroot;
}

// include fisier ce se afla in directorul radacina
include(getRootPath(). 'config.php');

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a crea o caseta de adaugare text?
<form> <input> <div>
<input type="text" name="a_name" value="val" />
Ce proprietate CSS se foloseste pentru a afisa textul cu majuscule-mici?
display font-variant font-style
h3 {
  font-variant: small-caps;
}
Ce instructiune afiseaza o fereastra cu un mesaj in ea?
for() Date() alert()
var msg = "Viziteaza CoursesWeb.net";
alert(msg);
Indicati codul PHP prin care se obtine IP-ul utilizatorului.
$_SERVER["HTTP_USER_AGENT"] $_SERVER["REMOTE_ADDR"] $_GET[]
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
Cum se traduce cuvantul "actually"?
actual de fapt acum
He actually came on time.
- De fapt, el a venit la timp.
Cum se traduce expresia: "Hace buen tiempo"?
Face timp E vreme frumoasa Drum bun
Hoy hace buen tiempo.
- Astazi e vreme frumoasa.
Calea Relativa la directorul Radacina pt Includeri de oriunde

Last accessed pages

  1. Cursuri limba engleza gratuite si lectii online (67243)
  2. Substantivul din limba engleza - The Noun (59639)
  3. Gramatica limbii engleze - Prezentare Generala (217838)
  4. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (277855)
  5. Creare tabele HTML (17570)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1353)
  2. Curs HTML gratuit Tutoriale HTML5 (1352)
  3. Coduri pt culori (965)
  4. Creare si editare pagini HTML (534)
  5. Gramatica limbii spaniole. Indrumator si prezentare generala (381)