Probleem met CONSTANT in appl

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Kroonenburg

Peter Kroonenburg

05/07/2019 09:46:29
Quote Anchor link
Wie kan mij helpen met onderstaande probleem. De waardes van de constants worden niet doorgegeven van het ene script naar het andere.
Ik kan niet vinden wat ik fout doe. Als een constante een bepaalde waarde heeft wordt die toch vastgehouden en is benaderbaar in alle scripts van de applicatie?


Hieronder haal ik gegevens uit een tabel. (script 1.php)

Na de gegevens te hebben opgehaald maak ik er constanten van voor gebruik in de rest
van de applicatie.
Als ik de gegevens ECHO klopt alles en worden de CONSTANTEN correct weergegevens.


$host=$row_rs_school['host'];
$user=$row_rs_school['user'];
$dbf=$row_rs_school['dbf'];
$pw=$row_rs_school['pass'];
$school_id=$row_rs_school['school_id'];

define('HOST',$host);
define('DBF',$dbf);
define('PW',$pw);
define('USER',$user);

$verbinding = mysqli_connect(HOST, USER, PW, DBF) or trigger_error(mysqli_error($verbinding));
if(!$verbinding){trigger_error('Fout bij verbinden met database: '.mysqli_connect_error($verbinding));exit();}

echo HOST,DBF,USER,PW; (Hier klopt alles nog)

redirect nu naar script test_global.

————— einde


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
include("../include/session.php");
ini_set("display_errors", 1);
error_reporting(E_ALL);
//error_reporting(E_ALL & ~E_NOTICE);
?>

<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="../bootstrap-4.1.3/dist/css/bootstrap.min.css" >
<link rel="stylesheet" href="../menu/css/menu.css"> <!-- menu systeem -->
<link rel="stylesheet" href="../css/mygrid.css"> <!-- mijn layou grid systeem -->
<title>OV</title>
</head>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?PHP include("../menu/hoofdmenu.php");?>

<h1>test</h1>


<div class="wrapper">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?PHP  
        
        
        
if(defined('USER')) {echo USER;}
if(defined('USER')&&!empty(USER)) {
    echo USER;

}
else{
 echo "fout";
}

        
        
if(defined('DBF')) {echo DBF;}
if(defined('DBF')&&!empty(DBF)) {
    echo DBF;

}
else{
 echo "fout";
}

  
        
        
        
?>

</div>


<!-- Optional JavaScript ONDERAAN DE PAGINA-->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="../js/jquery-3.3.1.slim.min.js"></script>
<script src="../js/popper.min.js"></script>
<script src="../js/bootstrap-4.1.3.min.js"></script>
<script src="../js/vendor/holder.min.js"></script>
<script src="../js/menu.js"></script><!-- voor de navbar-->
<script src="../ckeditor/ckeditor.js"></script> <!-- voor de editor-->
<script src="../js/main.js"></script>
</body>
</html>
 
PHP hulp

PHP hulp

29/03/2024 16:39:42
 
- Ariën  -
Beheerder

- Ariën -

05/07/2019 09:53:24
Quote Anchor link
Zou je aub code-tags willen gebruiken voor je script in dit forum. Dan is het beter leesbaarder.

Constanten van zijn geen sessie, dus na een redirect zijn die ook weer verloren. Maar ik snap niet waarom je redirect. Configuratie-settings, die includeer je toch altijd. Dan blijven ook de constanten werken.
Gewijzigd op 05/07/2019 10:27:42 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

05/07/2019 20:07:49
Quote Anchor link
Je hebt die constanten verder ook nergens nodig, dus waarom stop je ze uberhaupt in aparte variabelen / constanten?

Gebruik je ergens anders HOST, DBF, PW, USER?
Zo nee? Weg ermee.

Zo ja? Wellicht verstandig om ze ook te prefixen met DB_ ofzo, enkel "USER" of "PW" zegt veel te weinig over wat deze constante representeert...
 
Peter Kroonenburg

Peter Kroonenburg

05/07/2019 22:33:57
Quote Anchor link
Misschien is mijn opzet voor verbetering vatbaar?

Ik heb een applicatie gemaakt voor bedrijf A. Nu wil ook bedrijf B en C gebruik maken van de applicatie.
Mijn idee is nu om voor elk bedrijf een database aan te maken met dezelfde tabellen. In de tabel install komen dan de specifieke gegevens voor het betreffende bedrijf en ook de klanten komen in de eigen database.

Om dit te regelen is het idee dat het bedrijf inlogt met een code. Met de code wordt uit een tabel user,dbf en password van het bijbehorende bedrijf gehaald zodat daarmee de connectie tot de juiste database gemaakt kan worden.
In een tabel setup en elke database staan velden constant - en de waarde. Op die manier worden in de applicatie de constanten ‘gevuld’ met de specifieke gegevens van het betreffende bedrijf.

Op deze manier bijven de gegevens van elk bedrijf alleen toegankelijk voor dat bedrijf.

Is dit een logische redenering of kan dit simpeler?
 
- Ariën  -
Beheerder

- Ariën -

07/07/2019 20:40:23
Quote Anchor link
Als alle bedrijven gebruik maken van één applicatie, dan zou ik er zeker niet voor kiezen om per bedrijf een verschillende database aan te maken.

In dit topic word ook het één en ander besproken hierover:
https://www.phphulp.nl/php/forum/topic/oplossing-hosten-meerdere-php-web-apps/102985/last/
 



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.