phpFunctie aanroepen vanuit ander php pagina
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?
Quote:
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) ;*/
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 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.
Gewijzigd op 13/08/2013 11:44:46 door Jasper Van Braekel
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?
Gewijzigd op 13/08/2013 12:01:36 door Chris PHP
Gewijzigd op 13/08/2013 12:03:40 door Jasper Van Braekel
Dan heb je in principe telkens volledige paden en kan het haast niet foutgaan.
Dus bijvoorbeeld
Quote:
$charcount = substr_count($_SERVER['REQUEST_URI'],'/');
$chardir = '';
for ($i=0; $i<$charcount - 1; $i++)
{
$chardir .= '../';
}
$dir = $chardir."inc_connect.php";
require($dir);
$chardir = '';
for ($i=0; $i<$charcount - 1; $i++)
{
$chardir .= '../';
}
$dir = $chardir."inc_connect.php";
require($dir);
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.