PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   ID ist mal definiert, mal nicht (https://www.php-resource.de/forum/php-developer-forum/107425-id-ist-mal-definiert-mal-nicht.html)

Kusi_Schweiz 07-02-2022 14:20

ID ist mal definiert, mal nicht
 
Ich habe eine main.php wo nebst der DB-Verbindung auch andere Variablen festgelegt werden, in den weiteren Dateien steht dann oben: include ‘main.php’;
Das Problem ist folgender Code in der main.php für die Vergabe der crud-Rechte:
PHP-Code:

if (isset($_GET['id'])) {
    
$stmt $pdo->prepare('SELECT * FROM accounts WHERE id = ?'); 
    
$stmt->execute([$_SESSION['id']]);
    
$account $stmt->fetch(PDO::FETCH_ASSOC);
    
$crud $account['crud'];
   
    
// Bedienung einschalten je nach Benutzerrechten
    
$create $read $update $delete 'nein'// Standardeinstellung
    
    
if (preg_match('/[c]/'$crud)) {
           
$create 'ja';    // auch für clone
    

    if (
preg_match('/[r]/'$crud)) {
           
$read 'ja';
    } 
    if (
preg_match('/[u]/'$crud)) {
           
$update 'ja';
    } 
    if (
preg_match('/[d]/'$crud)) {
           
$delete 'ja';    
    } 


Ging einige Zeit gut, dann kam die Fehlermeldung:
Warning: Undefined variable $create in C:\xampp\htdocs\dv\adr\read.php on line 136 - dito auch für für anderen Variabeln $read, $update und $delete - betrifft die read.php

Dann entfernte ich die erste Zeile ( if isset.... und die letzte Klammer, es kam die Fehlermeldung:
Warning: Undefined array key "id" in C:\xampp\htdocs\dv\main.php on line 141 = $stmt->execute([$_SESSION['id']]); - betrifft die main.php

Wie muss ich den Code korrekt schreiben, damit es immer funktioniert und nicht einige Zeit mal so dann wieder anders ( mit oder ohne if isset-Abfrage).

Kusi_Schweiz 09-02-2022 14:29

Ich habe eine Lösung gefunden.

Neue Datei mains.php erstellt, mit check_loggedin($pdo);

PHP-Code:

<?php
include 'main.php';
check_loggedin($pdo);


// Benutzerrechte crud in DB abfragen
$stmt $pdo->prepare('SELECT crud FROM accounts WHERE id = ?'); 
$stmt->execute([$_SESSION['id']]);
$account $stmt->fetch(PDO::FETCH_ASSOC);
$crud $account['crud'];

// Benutzerrechte vergeben (0 = keine, 1 = mit Rechten)    
$create $read $update $delete 0// Standardeinstellung
if (preg_match('/[c]/'$crud)) {
    
$create 1;                         // auch für clone

if (
preg_match('/[r]/'$crud)) {
    
$read 1;

if (
preg_match('/[u]/'$crud)) {
    
$update 1;

if (
preg_match('/[d]/'$crud)) {
    
$delete 1;    
}



Alle Zeitangaben in WEZ +2. Es ist jetzt 18:51 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG