[PHP] Includen vanuit andere locatie.. Hoe?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ilovetechno
  • Registratie: Oktober 2001
  • Laatst online: 17:06
Ik heb onderstaand stukje PHP om een menu op te bouwen. Het geeft alle mappen weer binnen een bepaalde locatie. Nu wil ik dit op een ander deel van mijn webspace gebruiken door dit stuk te includen. Helaas wordt het dan op die locatie uitgevoerd. Wat ik dus wil is dat hij dit script vanuit ../../map uitvoert. Ik heb dit al geprobeerd met chdir maar krijg het niet voor elkaar.

Ik heb al op google gezocht en op GoT maar kom er maar niet uit.. 8)7

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/* Alle folders laten weergeven  in het menu die staan de map other*/
$count=0;
$self=basename($_SERVER["PHP_SELF"]);
$members = opendir('./photos/other');

while (false !== ($file = readdir($members))) { 
$filess[]=$file ;
$count ++;
} 

closedir($members);

$i = 0;
foreach ($filess as $file) {
if($filess[$i] == $self || $filess[$i] == '.'|| $filess[$i] == '..') {
$i++;
}
else {
$file2 = explode(".",$filess[$i]);
echo "<li><a href=\"localhost/photos/partypictures/<%albumCaption%>/more/$filess[$i]/index.php\">$file2[0]</a></li> \n";
$i++;
}}
?>

Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 20-09 16:45
Als je nu van dat stukje code een function maakt die als argument de map mee krijgt ?

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Dit kan alleen maar als je direct via het filesysteem de php file kan opvragen (/home/web/blaat/iets/script.php i.p.v. www.blaat.nl/iets/script.php of localhost/iets/script.php). Zodra je dat via http doet wordt het php bestand eerst uitgevoerd door de webserver.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

To tell you the truth, I don't know how... or why... this works, but I am able to spawn background win32 processes whereby the PHP interpreter does not wait on the called program to finish...

<?php
pclose(popen("start /b <program> <args>", 'r'));
?>

I don't know wheither pclose is neccesary or not, but I can only guess that it frees up memory.

an example would be

<?php
pclose(popen("start /b C:\php\cli\php script.php', 'r'));
// rest of the program
?>

where script.php would execute independantly of the parent script..

hope this helps,
Harry
Dit komt van php.net op deze pagina. Ik heb het niet getest of zo, maar misschien dat je er wat aan hebt.

Acties:
  • 0 Henk 'm!

  • ilovetechno
  • Registratie: Oktober 2001
  • Laatst online: 17:06
Verwijderd schreef op maandag 14 augustus 2006 @ 11:43:
[...]


Dit komt van php.net op deze pagina. Ik heb het niet getest of zo, maar misschien dat je er wat aan hebt.
Iig bedankt maar dit lijkt alleen lokaal te werken. Helaas is bedoeld voor een website..
StevenK schreef op maandag 14 augustus 2006 @ 11:37:
Als je nu van dat stukje code een function maakt die als argument de map mee krijgt ?
Dus als ik hier een functie van maak moet het wel lukken. Dan ga ik dat proberen.

Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 20-09 16:45
ilovetechno schreef op maandag 14 augustus 2006 @ 11:48:
Dus als ik hier een functie van maak moet het wel lukken. Dan ga ik dat proberen.
Mits het dus wel gaat om het includen vanaf dezelfde site, niet via http.

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • Arjen Tempel
  • Registratie: Januari 2002
  • Niet online
In regel 5 verwijs je expliciet naar de huidige map, door de punt voor /photos/other.
Als je hier de absolute naam op de server opgeeft zou het script ook moeten werken als je het elders op de site include:
PHP:
1
$members = opendir($_SERVER["DOCUMENT_ROOT"] . '/scriptfolder/photos/other');

Acties:
  • 0 Henk 'm!

  • ilovetechno
  • Registratie: Oktober 2001
  • Laatst online: 17:06
StevenK schreef op maandag 14 augustus 2006 @ 11:51:
[...]

Mits het dus wel gaat om het includen vanaf dezelfde site, niet via http.
Ja het betreft dezelfde site..

Acties:
  • 0 Henk 'm!

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 17-09 21:58

BHR

Arjen Tempel schreef op maandag 14 augustus 2006 @ 11:52:
PHP:
1
$members = opendir($_SERVER["DOCUMENT_ROOT"] . '/scriptfolder/photos/other');
Vergelijkbare optie:
PHP:
1
$members = opendir(dirname(__FILE__) . '/photos/other');

No amount of key presses will shut off the Random Bug Generator


Acties:
  • 0 Henk 'm!

  • ilovetechno
  • Registratie: Oktober 2001
  • Laatst online: 17:06
Arjen Tempel schreef op maandag 14 augustus 2006 @ 11:52:
In regel 5 verwijs je expliciet naar de huidige map, door de punt voor /photos/other.
Als je hier de absolute naam op de server opgeeft zou het script ook moeten werken als je het elders op de site include:
PHP:
1
$members = opendir($_SERVER["DOCUMENT_ROOT"] . '/scriptfolder/photos/other');
Ik heb hier dus van gemaakt
PHP:
1
$members = opendir('http://www.i-love-techno.nl/photos/other');


Maar krijg de volgende meldingen.. (na 3 min wachten)

Warning: opendir(http://www.mijndomein.nl/photos/other): failed to open dir: not implemented in c:\program files\easyphp1-8\www\template\left_menu.php on line 74

Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\template\left_menu.php on line 76

Warning: closedir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\template\left_menu.php on line 81

Acties:
  • 0 Henk 'm!

  • EnnaN
  • Registratie: September 2002
  • Laatst online: 12-09 11:42

EnnaN

Toys in the attic

dat moet je toch ook niet via http doen? dan krijg je via de webserver je file te pakken, en dat zal html zijn, niet meer php

de absolute naam zal toch iets van /home/user/public_html/dir/scriptfolder/photos/other zijn?
verder, als je onder safe-mode werkt, was er dan niet een beperking? dat je geen dingen uit andere dirs mocht includen/laden oid?

sig


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Als het over dezelfde site gaat, waarom dan via http://? Dit levert namelijk geen directory op maar een bestand. Je zult de directory op het filesysteem mee moeten geven, vandaar de tips met $_SERVER['DOCUMENT_ROOT'] e.d.

Daarnaast levert http://www.i-love-techno.nl/photos/other/ een 403 op ;) Dus opendir kan het uberhaupt niet eens lezen. En zelfs als dit te lezen is zal opendir het niet kunnen interpreteren.

En wat Teedee zegt natuurlijk :P

[ Voor 4% gewijzigd door Creepy op 14-08-2006 12:21 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1