Includere fisier cu nume din variabila
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
bvlucretiu
- Mesaje:88
Includere fisier cu nume din variabila
Bună!
Pot să înlocuiesc valoarea lui
case cu o variabilă pentru a nu fi nevoit să întind o listă enormă în cazul în care am mai multe pagini?
Am acest cod, iar la mai multe pagini acesta crează o listă din ce în ce mai mare !
Cod: Selectaţi tot
case 'prima':
if (file_exists("prima.php"))
{
include_once("prima.php");
$afisare = '';
}
else
{
$afisare = '<br>Eroare: Nu se gaseste fisierul prima.php';
}
break;
Vă mulțumesc!
MarPlo
Mesaje:4343
Salut
Poti sa faci asa, fara "case":
Cod: Selectaţi tot
//array with allowed files to include
$files =['prima', 'alta', 'xts123'];
$file ='prima'; //get file name
$afisare ='';
if(in_array($file, $files)){
if(file_exists($file .'.php')) include $file .'.php';
else $afisare ='<br>Eroare: Nu se gaseste fisierul: '. $file .'.php';
}
else $afisare ='<br>Eroare: Nu e permis nume fisier: '. $file;
bvlucretiu
Mesaje:88
Bună!
$files cum aş putea face să o preiau dintr-un tabel din baza de date cu MySQL fără să mai fiu nevoit să extind acel array, şi în acest caz aş putea popula coloana din care se preia variabila automat în momentul creeri necesităţii respectivei pagini!?
Vă mulţumesc mult, am învăţat mult de la dv din acest site!
Am studiat aproape tot siteul ceea ce ţine de programare, dar unele lucruri pe care nu le înţeleg, nu le pot învăţa decât de aici, din forum!
Vă mulţumesc!
MarPlo
Mesaje:4343
Faci un Select la acel tabel si adaugi datele (numele fisierelor) din coloana respectiva in $files.
Cod: Selectaţi tot
$files =[];
$sql ="SELECT nume_coloana FROM tabel";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()){
$files[] = $row['nume_coloana'];
}
- Sau, mai indicat, verifici direct daca $file e in tabel, fara sa mai creezi array-ul $files, si daca e, aplici include.
Cod: Selectaţi tot
$sql = "SELECT id FROM tabel WHERE coloana_fisier ='$file' LIMIT 1";
Daca e rand returnat, continui cu include.
Iar la crearea paginii faci un Insert in acel tabel, cu numele fisierului /paginii.
bvlucretiu
Mesaje:88
Cod: Selectaţi tot
<?php
$pagina = isset($_GET['pagina']) ? trim(strip_tags($_GET['pagina'])) :'index';
if(file_exists($pagina .'.php')) include $pagina .'.php';
else $afisare ='<br>Eroare: Nu se gaseste fisierul: '. $pagina .'.php';
?>
Cu această formulă funcționează perfect, adică mă refer la faptul că nu mai am nevoie să mai evidențiez prin
case cu
switch și nu mai spune ca se cere pagina
prima sau
alta dar nu există pe server cu era înainte, însă funcționează fără baza de date, iar else-ul de la funcția if nu funcționează, nu știu de ce; adică chiar dacă fișierul nu există nu se afișează mesajul specificat,respectiv
Eroare: Nu se gaseste fisierul: pur și simplu îmi afișează o pagină goală cu fundalul siteului din body decorat de css!
Toate bune!
MarPlo
Mesaje:4343
Acel mesaj e continut in variabila $afisare; ca sa apara in pagina aplica-i "echo" in <body>:
Subiecte similare
- Eroare de variabila in php 8
PHP - MySQL - XML
Primul mesaj
Salut
Am trecut la php 8 si imi da eroarea asta
Warning: Undefined variable $page in G:\site\htdocs\system\site\page.php on line 16
in...
Ultimul mesaj
Imi mai da eroarea asta
Warning: Undefined array key message
iar eu am asa
$message=$_POST ;
Edit,
rezolvat cu
$message='';
if (isset($_POST...