Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Problem

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe ein kleines PHP-Problem und komme einfach nicht drauf...

if ($_SESSION['Adminflag'] == 1) {
$adminflag = '<a href="index.php?menu=crm&crm=bverw">Benutzerverwaltung</a>';
}
$adminflag = '<a href="index.php?menu=crm&crm=fverw">Kundenverwaltung</a>
<a href="index.php?menu=crm&crm=averw">Ansprechpartnerverwaltung</a>
<a href="index.php?menu=crm&crm=abca">ABC-Analyse</a>';

?>
<script type="text/javascript">
document.getElementById("menu2").innerHTML = '<?php echo $adminflag; ?> ';
</script>';[/PHP]

Der Quelltext prüft eine PHP-Session, schreibt dann eine PHP-Link-Variable voll, und versucht dann via ein Javascript ein existierenden DIV-Container mit den HTML-Daten aus der PHP-Variable zu befüllen.

Leider erhalte ich immer wieder nur eine "0". Wenn ich Zeile 4ff lösche funktioniert es einwandfrei nur eben halt nicht im erwarteten Umfang.

Wo ist mein Denkfehler?

Vielen Dank vorab für Eure Unterstützung.

mfg

Christian

if ($_SESSION['Adminflag'] == 1) {
$adminflag = '<a href="index.php?menu=crm&crm=bverw">Benutzerverwaltung</a>';
}
$adminflag = '<a href="index.php?menu=crm&crm=fverw">Kundenverwaltung</a>
<a href="index.php?menu=crm&crm=averw">Ansprechpartnerverwaltung</a>
<a href="index.php?menu=crm&crm=abca">ABC-Analyse</a>';[/PHP]

Die ersten drei Zeilen sind für den Ofen, da du $adminflag danach eh wieder neu zuweist. Ich vermute, du möchtest den Benutzerverwaltungslink zum Menü hinzufügen, wenn man als Admin eingeloggt ist - das sähe dann etwa so aus:

[PHP]$adminflag = '';
if ($_SESSION['Adminflag'] == 1) {
$adminflag .= '<a href="index.php?menu=crm&crm=bverw">Benutzerverwaltung</a>';
}
$adminflag .= '<a href="index.php?menu=crm&crm=fverw">Kundenverwaltung</a>
<a href="index.php?menu=crm&crm=averw">Ansprechpartnerverwaltung</a>
<a href="index.php?menu=crm&crm=abca">ABC-Analyse</a>';

Der Variablen-Name "$adminflag" ist dann aber ziemlich irreführend; ich würde das wohl eher "$menucontent" nennen.

Nachdenker am Rande: Was passiert, wenn ein Nutzer JavaScript deaktiviert hat?

Bearbeitet von azett

Hallo,

ahh sorry hatte einen fehler im Quelltext, ich habe doch glatt vor der zweiten zuweisung vergessen, einen "." vergessen, sodass "=" statt ".=" dort steht. Danke auch für den Hinweis, dass ich die Variable zurücksetzen muss (den Teil hatte ich leider etwas weiter oben stehen und nicht mitkopiert).

Aber wo in deinem Post ist die Antwort auf mein eigentliches Problem? Wäre echt nett, wenn du mir dabei helfen könntest.

Vielen Dank vorab.

Mfg

Christian

PS: Der Nachdenker am Rande ist bekannt, aber in dem besagten Projekt nicht relevant. Die Zielgruppe haben alle Javascript aktiviert und alle die gleiche Umgebungen/Umgebungseinstellungen ;)

Was bekommst du denn, wenn du den ganzen "<a..." Kram gegen ein einfaches "Test" ersetzt?

lG

Das Problem sind die Zeilenumbrüche in $adminflag. Stringkonstanten können sich in Java-Script nicht über mehrere Zeilen erstrecken. Verwende stattdessen anderes white-space, oder die Sequenz \n. Dazu die Single-Quotes in PHP beibehalten, damit sie von Java-Script und nicht schon von PHP interpretiert wird.

Hallo,

genau das war es danke Schandfleck. Habe den Fehler gestern nacht um ähm... 23 Uhr dann selbst bemerkt - hätte mal lieber vorher hier reinschauen sollen ;)

Vielen Dank nochmal für die ganzen Antworten.

mfg

Christian

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.