Verificare adresa accesare script pt header() redirect

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
sterica
Mesaje: 285

Verificare adresa accesare script pt header() redirect

Salutare,
Cum pot verifica o egalitate cu valori dintr-un header.
link-ul in browser este localhost/folder/includes/index.inc.php
Vreau sa faca o egalitate de genul:

Cod: Selectaţi tot

$demo = 'index.inc.php';
if ( header ('location: index.inc.php')==$demo) {
....
}
Multumesc!

MarPlo Mesaje: 4343
Salut
Functia: header('location: ..') face redirect, nu returneaza nici o valoare; deci nu poate fi folosita in comparatie sau egalitate cu ceva.

sterica Mesaje: 285
Am inteles, ma gandeam ca scap mai usor.
Cum as putea sa fac o trimitere la o alta pagina daca in header este si index.inc.php
Am urmatorul cod:

Cod: Selectaţi tot

if (isset($_SESSION['level']) && $_SESSION['level'] > 0) {
  
  }
  else {
      header ("Location: login.php");
      exit ();
    }
vreau ca in interiorul if-ului sa ii mai adaug un if care sa aiba conditia daca in header este /includes/ sa imi faca trimitere la ../login.php

Multumesc!

MarPlo Mesaje: 4343
Nu stiu la ce header() cu '/includes/' te referi, nu apare in codul tau.
Poate e vorba de adresa de accesare a scriptului sau a paginii.

- Ca sa verifici daca '/includes/' e in adresa scriptului de pe server, poti face asa:

Cod: Selectaţi tot

if(stristr($_SERVER['SCRIPT_NAME'], '/includes/') !== false){
  echo 'Adresa fisierului contine /includes/';
}
- Ca sa verifici daca '/includes/' e in adresa URL prin care browserul a accesat scriptul, poti face asa:

Cod: Selectaţi tot

if(stristr($_SERVER['REQUEST_URI'], '/includes/') !== false){
  echo 'Adresa URL contine /includes/';
}
Din ce am inteles, vrei sa faci redirect la 'login.php' in diferite conditii de accesare.
Daca 'login.php' e direct in root, poti sa faci simplu asa:

Cod: Selectaţi tot

header('Location: /login.php');

sterica Mesaje: 285
Functioneaza cu

Cod: Selectaţi tot

if(stristr($_SERVER['REQUEST_URI'], '/includes/') !== false){
  echo 'Adresa URL contine /includes/';
}
Insa nu inteleg pe deplin diferentele dintre
Ca sa verifici daca '/includes/' e in adresa scriptului de pe server, poti face asa:
si
Ca sa verifici daca '/includes/' e in adresa URL prin care browserul a accesat scriptul, poti face asa:
Multumesc frumos pentru ajutorul acordat!

MarPlo Mesaje: 4343
- $_SERVER['SCRIPT_NAME'] - returneaza calea unde e acel fisier php pe server, incepand de la root, cand e accesat /inclus.
- $_SERVER['REQUEST_URI'] - returneaza adresa din browser cand e accesat scriptul.

sterica Mesaje: 285
multumesc frumos de explicatii

Subiecte similare