path door php

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Ik weet het is een beginners vraag. en ja ben ik ook.
Ik ben een autodydact en probeer het door doe te leren.
Lukt al aardig.

Maar ik loop vast op het pad van mij includes

op mijn index heb ik een dropdown welke na submit de klantenform.php open
in de iframe op de index pagina

index en iframe staan in de map root/admin
klantenform staat in map admin/forms

in klantenform.php zit een include naar pag1.php
pag1 zit ook in de map forms

In de pag1.php zit weer een include naar connect.php
maar connect.php huist in de map root/admin/func

en die geeft mij het probleem. ik krijg een error dat het pad naar die map niet bestaat. maar hoe vind ik de weg naar de juisten map (func)

please please help me?
 
PHP:
include('../func/connect.php');

Tenminste als dit je bestandshiërarchie is is:

PHP:
root/
--admin/
----forms/
------klantenform.php
------pag1.php
----func/
------connect.php
----index.php
 
Laatst bewerkt:
Als ik het goed begrijp heb je dus een include nodig vanuit (root/admin/forms/)pag1.php naar (root/admin/func/)connect.php?

Waarschijnlijk werkt dit dan gewoon, zo uit m'n hoofd en als ik je verhaal goed begrijp.

PHP:
include("../func/connect.php");
 
Pfff en nu protesteerd hij ook al bij de include naar pag1.php

van af welke map moet ik de mappen gaan tellen?

vanaf de map met de htmlcode of vanaf de map waar de php staat met de include?

en ../ betekend toch gewoon een map omhoog.

en als een include in de zelfde map staan als de php waar de include word uitgevoerd
moet ik dan /pag1.php of pag1.php doen?
 
De paden zijn allemaal relatief aan het bestand waar je de include in zet.

Als je een bestand uit dezelfde map pakt hoef je niet met een slash te beginnen.
 
pff dan word het schrijffouten zoeken voor me want ik krijg

Kan de pagina niet weergeven

zal wel weer een ; of iets zijn
 
hehe was een session check die ik deed

if (!isset($_SESSION)) {
session_start();

was al uitgevoerd op de php waar ik vandaan kwam met de include
 
Hoe loopt een path dan als ik include in een include?

de volgende tree:
Code:
root
---- functions
---- -------- user.php
---- -------- data
---- -------- ---- file.dat
---- admin
index.html
login.php
loggedin.php
pagina start met index.html(logisch) daarop zit login.php om wachwoord en gebruiker in te geven. Na enter wordt loggedin.php geopend voor de controle. ook heb ik daar een include naar user.php. dit leest de gegevens in file.dat

Hoe is nou het path naar file.dat in user.php

of is het verstandiger om file.dat alvast aan te roepen in mijn loggedin.php?
 
Vanaf user.php is het 'data/file.dat' .

Je moet het zo zien. Jij bent 'user.php', je wilt naar 'file.dat'.

De eerste stap is eenvoudigweg naar de map 'data', die zit in dezelfde map als waar jij op dit moment bent. Je hoeft dus niet een map omhoog. Vanaf de map 'data' kun je ook direct naar 'file.dat'. Dit is dus een hele simpele verwijzing, waar je slechts een map dieper hoeft te gaan.
 
en toch krijg ik een error
Code:
Warning: fopen(data/file.dat) [function.fopen]: failed to open stream: No such file or directory in F:\UsbWebserver\Root\functions\user.php on line 15

Warning: fclose(): supplied argument is not a valid stream resource in F:\UsbWebserver\Root\functions\user.php on line 16

Warning: file_get_contents(data/file.dat) [function.file-get-contents]: failed to open stream: No such file or directory in F:\UsbWebserver\Root\functions\user.php on line 18

Notice: Undefined index: 1 in F:\UsbWebserver\Root\functions\user.php on line 21

Notice: Undefined index: 1 in F:\UsbWebserver\Root\loggedin.php on line 11
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.

dit is wat ik wil:
loggedin.php (snipper)
Code:
<?PHP
session_start();

$username = strip_tags($_POST['username']);
$password = md5(strip_tags($_POST['password']));

include('functions/user.php');

if(empty($username) || empty($password)) die('Vul alle waarden in op <a href="login.php">het formulier</a>.');

if ($username == $admin['0'] || $password == md5($admin['1'])){
    $_SESSION['login'] = 'yes';
	$_SESSION['username'] = $username;
    header('location: ../admin/index.html');
	}

include('connect.php');//Verbinding DataBase

user.php
Code:
<? //bedrijfsgegevens
if (isset($_REQUEST['mob']))
	{
	$mob = 'r'; //lezen uit URL halen
	}
	else
	{
	$mod = 'w'; // schrijven
	}
$file = 'data/file.dat';

// als het bestandje niet bestaat maakt hij het aan
if (!file_exists($file)) 
{ 
$fp = fopen($file, 'a'); 
fclose($fp);
} 
$regel = explode("\r\n", file_get_contents($file));// gegevens uit file halen

$admin = explode(",",$regel['0']);
$Dbase = explode(",",$regel['1']);

?>

en als ik in de loggedin $file = 'functions/data/file.dat'; doe, dan werkt het wel!
 
Laatst bewerkt:
Weet je dan wel zeker dat de bestandsstructuur klopt die je hiervoor gepost hebt? Maak eens wat screenshots van de betreffende mappen. Misschien zie je iets over het hoofd.
 
Okey, hier is het.
 

Bijlagen

  • tree1.JPG
    tree1.JPG
    24,1 KB · Weergaven: 33
  • tree2.JPG
    tree2.JPG
    87,6 KB · Weergaven: 33
  • tree3.JPG
    tree3.JPG
    16,4 KB · Weergaven: 27
Nou, hier snap ik echt helemaal niks van...

En als je '../data/file.dat' gebruikt? of '/data/file.dat' ?
 
nope, geen van 2 werkt.

ik blijf dit krijgen.
Code:
Warning: fopen(../data/file.dat) [function.fopen]: failed to open stream: No such file or directory in F:\UsbWebserver\Root\functions\user.php on line 15

Warning: fclose(): supplied argument is not a valid stream resource in F:\UsbWebserver\Root\functions\user.php on line 16

Warning: file_get_contents(../data/file.dat) [function.file-get-contents]: failed to open stream: No such file or directory in F:\UsbWebserver\Root\functions\user.php on line 18

Notice: Undefined index: 1 in F:\UsbWebserver\Root\functions\user.php on line 21

Notice: Undefined index: 1 in F:\UsbWebserver\Root\loggedin.php on line 12
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.
 
En als je er weer gewoon 'data/file.dat' van maakt en van de fopen:

PHP:
fopen($file, 'a', 1);

maakt?

fopen werkt blijkbaar anders dan een include. Bij een include is het pad relatief aan waar je de include plaatst, bij fopen is het relatief aan het document dat de gebruiker heeft opgevraagd.

Door die derde parameter zou er vanuit de geïnclude file gezocht moeten worden.
 
Code:
Warning: file_get_contents(data/file.dat) [function.file-get-contents]: failed to open stream: No such file or directory in F:\UsbWebserver\Root\functions\user.php on line 18

Notice: Undefined index: 1 in F:\UsbWebserver\Root\functions\user.php on line 21

Notice: Undefined index: 1 in F:\UsbWebserver\Root\loggedin.php on line 12
Sorry, maar deze combinatie van gebruikersnaam en wachtwoord is niet toegestaan.
ik denk dat er bij file_get_contents dan ook zo'n verwijzing hebben.
 
$regel = explode("\r\n", file_get_contents($file,1));// gegevens uit file halen

achter $file een ,1 zetten om hem ook hetzelfde path te laten volgen
 
Hey Eric Booy007

Volgens mij staat 1 ook voor FILE_USE_INCLUDE_PATH. maar het draaid nu als een zonnetje.

Geloof dat jezelf er ook wat van opgestoken heb:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan