Hallo,

Ik heb een validatie die ik wil uitvoeren via GET variabelen.
Daarin ga ik de functie trans gaan uitvoeren: $orderStatus = trans($rowstatus["Description"]);

En daar gaat het mis. Het lukt niet om de functie trans uit te voeren die in de pagina functions.php zit.
Op een of andere manier kan hij deze niet aanroepen terwijl bij een gewone php pagina lukt dit wel.
Iemand een idee?



Session_start();
require("../../inc_connect.php");
require("../functions.php");

$OrderType = $_GET['OrderType'];
$ListType = $_GET['ListType'];
$OrderNo = $_GET['OrderNo'];
$OrderStatus = $_GET['OrderStatus'];

if ($OrderStatus == '2')
{
$sqlstatus= "SELECT * FROM statuses WHERE Code = 3";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_FORWARD );
$resultstatus = sqlsrv_query($conn,$sqlstatus,$params,$options);
$rowstatus = sqlsrv_fetch_array($resultstatus);
$orderStatus = trans($rowstatus["Description"]);

$sql= "UPDATE orderheader SET StatusCode = 3, Status ='".$orderStatus."' WHERE No = '".$OrderNo."'";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_FORWARD );
$result = sqlsrv_query($conn,$sql,$params,$options);
}

/*$url = "Location: /../orderlist_page.php?OrderType=".$OrderType."&ListType=".$ListType;
header($url) ;*/

Heb je een specifieke error die je krijgt? Dan kunnen we wat meer gericht gaan kijken.
PHP Warning: require(inc_connect.php): failed to open stream: No such file or directory in C:\inetpub\wwwroot\OrderEntry\php\functions.php on line 5
PHP Fatal error: require(): Failed opening required 'inc_connect.php' (include_path='.;C:\php\pear') in C:\inetpub\wwwroot\OrderEntry\php\functions.php on line 5

waarschijnlijk zit ik in functions.php ook met een inc_connect waardoor hij die niet kan vinden omdat ik in een andere directory zit.
Hij geeft aand dat in je functions.php een inc_connect.php wordt aangeroepen die niet bestaat of niet kan vinden.

Wat voorkomt is dat bijvoorbeeld je inc_connect.php een map lager ligt dan je functions.php, of dat je functions.php in een hoger level aanroept waardoor hij je inc_connect.php niet kan vinden.

Stel
Nu heb je httpdocs met een folder functions waar je functies in staan, vergolgens een map hoger open je een pagina waar je de functions.php aanroept uit de map functions

als je dus include ('inc_connect.php'); doet in je functions.php kan hij deze vinden zolang je op het zelfde level blijft. Ga je nu je functions.php includen in een level hoger kan hij dus je inc_connect.php niet meer vinden want die zit niet in die map. Dan moet de include in dat geval ../functions/inc_connect.php zijn.

Kun je het een beetje volgen?
Ja tuurlijk kan ik volgen en ik versta het ook wel (ik kon de fout vroeger niet zien omdat op mijn IIS custom errors op stond). Nu ja, hoe kan ik dit dynamisch oplossen zodat dit in beide gevallen werkt?
Wat je kunt doen is een global definen met je basic pad, en vanuit daar relatief door schrijven.
Dan heb je in principe telkens volledige paden en kan het haast niet foutgaan.

Dus bijvoorbeeld
<?php
define ('ROOT_PATH', 'http://localhost/website/');

//Dan je include zo doen.
include (ROOT_PATH.'/functions/inc_connect.php');
?>
Ik heb het op deze manier gedaan:


$charcount = substr_count($_SERVER['REQUEST_URI'],'/');
$chardir = '';
for ($i=0; $i<$charcount - 1; $i++)
{
$chardir .= '../';
}
$dir = $chardir."inc_connect.php";
require($dir);
@Jasper,
Vind je dit een nette en 'zekere' manier?

Als je nu dus 3 levels terug zou moeten krijg je ../../../inc_connect.php, dit ziet er toch niet uit? Maar goed het zal wel werken, echter week jij straks bij god niet meer hoe en wat je include's ook al weer waren. Het enige wat je hier zegt is dat hij 3 levels terug moet, maar je ziet geen directory namen/structuur meer.

Reageren