Ik zit met een probleem, als ik deze pagina in een include laat werken, dan doet het niks. Doe ik hem appart, een exclude, runnen, dan werkt het wel.
Hoe kan dat?

newuseradd.php
<?php

$username = $_GET['username'];
$password = $_GET['password'];
$key = $_GET['key'];
$name = $_GET['name'];
$email = $_GET['email'];
$level = $_GET['level'];

$sql = 'SELECT * FROM AdminUsers';
$result = mysqli_query($connect, $sql);
$details = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($connect);

foreach($details as $detail) {
if($username == $detail['Username']) {
echo "<tr><td colspan='7'>Username already in use!</td></tr>";
if($name == $detail['Name']) {
echo "<tr><td colspan='7'>Name already in use!</td></tr>";
if($email == $detail['email']) {
echo "<tr><td colspan='7'>Email already in use!</td></tr>";
}
}
} else {
$query = 'INSERT INTO AdminUsers (Username, Passwd, LoginKey, Name, email, Level) VALUES ('.$username.', '.md5($password).', '.$key.', '.$name.', '.$email.', '.$level.')';
$result = mysqli_query($connect, $query);
echo "<tr><td>New User added</td></tr>";
}

}

?>
Dit is de code en werkt wel als ik hem op de achtergrond laat werken, maar als hij door een include wordt aangeroepen, werkt hij niet. Alle variable staan goed, dus daar is niks mis mee.
PS: bij de exclude laadt ik wel de database.php config in
Met exclude bedoel ik dat de page opzich zelf werkt, natuurlijk weet ik dat exclude niet bestaat.
Als ik de page opzich laad werken met include('dbase.php'); werkt het wel.
Maar doe ik hem met een include aanroepen, dan werkt het niet.
wat werkt er niet aan? Heb je alle error reporting voluit staan?
als ik eens wist waarom hij opzich alleen wel werkt en als hij geinclude wordt niet.
Wat doe je dan precies om te includeren? Als het niet lukt zou je minimaal een error moeten zien, of op je scherm op anders in de error_log.
Ik zal je de codes laten zien die bij elkaar horen

users.php
<?php

$sql = 'SELECT * FROM AdminUsers';
$result = mysqli_query($connect, $sql);
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($connect);

echo " <tr class='tr_mail_0'><td colspan='7' align='left'><a href='index.php?menu=newuser'>Add new Employee</a></td></tr>
<tr class='tr_mail_1'><td>Name</td><td>Email</td><td>Username</td><td>LoginKey</td><td>Level</td><td>Edit</td><td>Delete</td></tr>";

foreach($users as $user) {
echo"<div class='container'><tr><td>".$user['Name']."</td><td>".$user['email']."</td><td>".$user['Username']."</td><td>".$user['LoginKey']."</td>";
if($_SESSION['Level'] <= $user['level']){
echo "<td>Not displayed</td>";
}else {
echo "<td>".$user['Level']."</td>";
}
if($_SESSION['Level'] <= $user['level']){
echo "<td>Edit</td><td>Delete</td></tr></div>";
} else {
echo "<td><a href=index.php?menu=edituser'>Edit</a></td><td><a href=index.php?menu=deluser'>Delete</a></td></tr></div>";
}
}

?>

newuser.php
<?php
// add new user
echo"
<tr>
<td colspan='7'>
<div class='container'>
<form id='contact' action='./index.php?menu=newuseradd' method='post'>
<h3>Add new Employee</h3>
<fieldset>
<input type='text' name='username' placeholder='Username' required>
</fieldset>
<fieldset>
<input type='password' name='password' placeholder='Password' required>
</fieldset>
<fieldset>
<input type='text' name='key' placeholder='Key' required>
</fieldset>
<fieldset>
<input type='text' name='name' placeholder='Full name of Employee' required>
</fieldset>
<fieldset>
<input type='text' name='email' placeholder='Email address' required>
</fieldset>
<fieldset>
<label for='level'>Select Employee level</label>
<select id='level' name='level'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
</select>
</fieldset>
<fieldset>
<button type='submit' name='submit'>Add Employee</button>
</fieldset>
</form>
</div>
</td>
</tr>
";

?>

newuseradd.php
<?php

$username = $_GET['username'];
$password = $_GET['password'];
$key = $_GET['key'];
$name = $_GET['name'];
$email = $_GET['email'];
$level = $_GET['level'];

$sql = 'SELECT * FROM AdminUsers';
$result = mysqli_query($connect, $sql);
$details = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($connect);

foreach($details as $detail) {
if($username == $detail['Username']) {
echo "<tr><td colspan='7'>Username already in use!</td></tr>";
if($name == $detail['Name']) {
echo "<tr><td colspan='7'>Name already in use!</td></tr>";
if($email == $detail['email']) {
echo "<tr><td colspan='7'>Email already in use!</td></tr>";
}
}
} else {
$query = 'INSERT INTO AdminUsers (Username, Passwd, LoginKey, Name, email, Level) VALUES ('.$username.', '.md5($password).', '.$key.', '.$name.', '.$email.', '.$level.')';
$result = mysqli_query($connect, $query);
echo "<tr><td>New User added</td></tr>";
}

}

?>

dan komt dan nog bij deze codes die erbij horen

header.php

<?php
// header.php

session_start();
include("./inc/dbase.php");
echo "
<BODY>
<head>
<link rel='stylesheet' href='./inc/style.css'>
</head>
<div class='content'>";
echo $_SESSION['Level'];
echo "
<table class='table'>
";
if(isset($_SESSION['Username'])){
echo "
<tr>
<td colspan='3'>Welcome back <font color='ff9900'><b>".$_SESSION['Name']."</b></font></td>
<td colspan='3' align='right'><a href='./inc/logout.php'>logout</a></td>
<td align='right'><a href='./index.php?menu=users'>Users</a>
</td>
</tr>";
}
echo" <tr>
<td colspan='7'>
<img src='./img/banner_small.png'>
</td>
</tr>
";
?>

view.php

<?php
// view.php
echo $_GET['menu'];
echo "
<tr class='tr'>
<td colspan='7'>
";
if(!$_GET['menu']) {
include("inc/welcome.php");
}
if($_GET['menu'] == 'news') {
include("inc/news.php");
// echo "News Page";
}
if($_GET['menu'] == 'addnews') {
include("inc/addnews.php");
}
if($_GET['menu'] == 'delnews') {
include("inc/delnews.php");
}
if($_GET['menu'] == 'editnews') {
include("inc/editnews.php");
}
if($_GET['menu'] == 'activate') {
include("inc/activation.php");
}
if($_GET['menu'] == 'deactivate') {
include("inc/activation.php");
}
if($_GET['menu'] == 'quallity') {
include("inc/quallity.php");
}
if($_GET['menu'] == 'info') {
include("inc/info.php");
}
if($_GET['menu'] == 'editprofile') {
include("inc/editprofile.php");
}
if($_GET['menu'] == 'gallery') {
include("inc/gallery.php");
}
if($_GET['menu'] == 'order') {
include("inc/order.php");
}
if($_GET['menu'] == 'contact') {
include("inc/contact.php");
}
if($_GET['menu'] == 'read') {
include("inc/readmail.php");
}
if($_GET['menu'] == 'back') {
include("inc/mailsaw.php");
}
if($_GET['menu'] == 'delmail') {
include("inc/delmail.php");
}
if($_GET['menu'] == 'addcontact') {
include("inc/addcontact.php");
}
if($_GET['menu'] == 'users') {
include("inc/users.php");
}
if($_GET['menu'] == 'newuser') {
include("inc/newuser.php");
}
if($_GET['menu'] == 'newuseradd') {
include("inc/newuseradd.php");
}

echo "
</td>
</tr>
";
?>


Mijn eerste ingeving? Klopt het pad wel?

Als iets niet werkt, probeer dit eens in een compacte testcase te plaatsen. Hele lappen code op een forum plaatsen levert vaak weinig animo op voor anderen om door te spitten.

Je zou je 209 regels prima kunnen bewoorden in +/- 15 regels.
Alles staat in het juiste pad, alles staat daar waar het moet staan.
Echter wanneer ik hem aanroep doormiddel van include, laadt hij niet door.
De reden ervan is mij onduidelijk.
Misschien had ik idd de codes wat kunnen inkorten, maar zo zie je wel de hele structuur.
Maar ik ben ook steeds opzoek, maar meer ogen zien meer

[size=xsmall]Toevoeging op 05/06/2022 17:51:24:[/size]

De new user aanroepen doet hij wel, maar zodra hij dus moet controleren of de user bestaat, klapt de page vast.
Doe ik hem zeg maar op de achtergrond, dan doet hij het wel. dan moet ik wel de dbase.php includen.
Dus ja ik stress hier een beetje van

[size=xsmall]Toevoeging op 05/06/2022 17:52:25:[/size]

en php checker geeft geen fout aan
Ik zou zeggen: maak er eens een compact script van, puur om te testen.

Op een gegeven moment kom je op de plek waar ongeveer het probleem in zit, waarbij je een hele hoop, op dat moment overbodige code, aan de kant hebt geschoven en je script voor 90% hebt kaalgesnoeid.
Dan heb je juist ook het beste overzicht.
welke code zou ik dan moeten snoeien?
Want de newuseradd is belangrijk. die moet controleren of de user niet al bestaat.

[size=xsmall]Toevoeging op 05/06/2022 18:18:39:[/size]

Ik had 1 ding over het hoofd gezien

<?php
$username = $_GET['username'];
$password = $_GET['password'];
$key = $_GET['key'];
$name = $_GET['name'];
$email = $_GET['email'];
$level = $_GET['level'];
?>
maar dat moest dit zijn
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$key = $_POST['key'];
$name = $_POST['name'];
$email = $_POST['email'];
$level = $_POST['level'];
?>
De controlle doet hij nu, maar toevoegen nog niet.

Reageren