phpFunctie aanroepen vanuit ander php pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper Van Braekel

Jasper Van Braekel

13/08/2013 11:11:12
Quote Anchor link
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?

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) ;*/
 
PHP hulp

PHP hulp

17/11/2024 11:25:56
 
Chris PHP

Chris PHP

13/08/2013 11:13:03
Quote Anchor link
Heb je een specifieke error die je krijgt? Dan kunnen we wat meer gericht gaan kijken.
 
Jasper Van Braekel

Jasper Van Braekel

13/08/2013 11:35:21
Quote Anchor link
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.
Gewijzigd op 13/08/2013 11:44:46 door Jasper Van Braekel
 
Chris PHP

Chris PHP

13/08/2013 12:00:48
Quote Anchor link
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?
Gewijzigd op 13/08/2013 12:01:36 door Chris PHP
 
Jasper Van Braekel

Jasper Van Braekel

13/08/2013 12:01:21
Quote Anchor link
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?
Gewijzigd op 13/08/2013 12:03:40 door Jasper Van Braekel
 
Chris PHP

Chris PHP

13/08/2013 12:11:14
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
define ('ROOT_PATH', 'http://localhost/website/');

//Dan je include zo doen.
include (ROOT_PATH.'/functions/inc_connect.php');
?>
 
Jasper Van Braekel

Jasper Van Braekel

13/08/2013 12:24:30
Quote Anchor link
Ik heb het op deze manier gedaan:

Quote:
$charcount = substr_count($_SERVER['REQUEST_URI'],'/');
$chardir = '';
for ($i=0; $i<$charcount - 1; $i++)
{
$chardir .= '../';
}
$dir = $chardir."inc_connect.php";
require($dir);
 
Chris PHP

Chris PHP

15/08/2013 09:22:44
Quote Anchor link
@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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.