Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

$pagecontent in index.php in Admin

Begonnen von moppel18, 12. November 2009, 10:24:14

« vorheriges - nächstes »

moppel18

Zitatfunction config() {
    $pagecontent = "<h2>".getLanguageValue("button_config")."</h2>";
    $pagecontent .= "<p>".getLanguageValue("config_text")."</p>";
    $pagecontent .= "<h3>".getLanguageValue("choice_text")."</h3>";
    $pagecontent .= "<ul>";
    $pagecontent .= "<li><a href="index.php?action=displaycmsconfig">".getLanguageValue("button_config_displaycms")."</a></li>";
    $pagecontent .= "<li><a href="index.php?action=displayadminconfig">".getLanguageValue("button_config_displayadmin")."</a></li>";
    $pagecontent .= "<li><a href="index.php?action=loginadminconfig">".getLanguageValue("button_config_loginadmin")."</a></li>";
    $pagecontent .= "</ul>";
    return array(getLanguageValue("button_config"), $pagecontent); }

Wie bekomme ich in die Ausgabe (innerhalb der HTML-Teile) PHP-Variable, leider werden sie bisher nicht angezeigt.
moppel

azett

#1
Hi und willkommen im Supportforum :)

Was genau hast du denn vor?

moppel18

#2
Dieses Problem hat sich schon geklärt, ich habe es geschafft den Adminbereich zu erweitern.
Aber ich habe ein anderes Problem:
Ich möchte eine meiner Variablen im Admin nutzen, leider kommt sie nicht durch die login.php durch trotz:
global $basis;
bzw.
<input type="hidden" name="basis" value="".$basis."">
bzw.
<input type="hidden" name="basis" value=$basis> im form-Tag.
Im anschließenden index.php-Aufruf steht nur folgendes:
admin/index.php?basis=
die Variable fehlt.
moppel

azett

#3
$basis wird in der login.php gefüllt? Dann setz sie doch einfach in die Session...login.php ab Zeile 50 erweitern: // Wurde das Anmeldeformular verschickt?
if  (isset($_POST['login'])) {
    
// Zugangsdaten prüfen
        
if (checkLoginData($_POST['username'], $_POST['password'])) {
            
// Daten in der Session merken
      
$_SESSION['username'] = $_POST['username'];
      
$_SESSION['login_okay'] = true;
      
$_SESSION['basis'] = "dasistderinhalt";   // DAS HINZUFÜGEN
    
}

Dann kannst du nach erfolgreichem Login diesen Wert wieder auslesen - index.php ab Zeile 29: // Login überprüfen
 
session_start();
 if (!isset(
$_SESSION['login_okay']) || !$_SESSION['login_okay']) {
    
header("location:login.php?logout=true");
    die(
"");
 }
 
$basis $_SESSION['basis'];   // DAS HINZUFÜGEN 


Aus Neugier: Was beinhaltet denn diese Variable?

moppel18

#4
Hinter dieser Variablen verbirgt sich eine Datei sub.inc.php oder local.inc.php.
Da drinnen stehen einmal Internet-Pfade bzw. locale Zugriffspfade, damit ich meine php-Scripte im Internet laufenlassen kann bzw. auch auf meinem PC testen kann und diese Pfade müssen immer weiter gegeben werden. Gleichzeitig dient diese Variable der Zugriffskontrolle auf eine Datei.
Das ist die local.inc.php
Zitat<?php
$basis = $_GET['basis'];
if ($basis=="") {
$basis = "local";
$file = "config/local.inc.php";
$ip = getenv("REMOTE_ADDR");
require ("./fehler.inc.php");
exit; }

$titel      = "Lokaler Adressenzugriff";
$admin      = "http://localhost/...../admin/";
$bilder      = "http://localhost/...../bilder/";
$zaehler   = "http://localhost/...../admin/counter/";
$post      = "http://localhost/...../admin/email/";
$gast      = "http://localhost/...../admin/guest/";
$impress   = "http://localhost/...../admin/impress/";
$intern      = "http://localhost/...../intern/";
$java      = "http://localhost/...../java/";
$user      = "http://localhost/...../user/";
$wav      = "http://localhost/...../wav/";
?>
moppel

moppel18

#5
Es sieht so aus, als ob die $basis nicht von der index.php zu login.php kommt.
in der index.php steht jetzt:
Zitatheader("location:login.php?basis=$basis&logout=true");
in der login.php versuche ich:
Zitat$basis = $_GET['basis'];
global $basis;
die Variable rein zubringen aber das scheint nicht zu funktionieren.
Im Formular von login.php habe ich auch
<input type="hidden" name="basis" value=$basis>
drin, scheint auch nicht zu gehen.
moppel

azett

#6
Hast du es mal wie beschrieben über die Session versucht? Das funktioniert bei mir hervorragend.

moppel18

#7
index.php:
Zitatsession_start();
 if (!isset($_SESSION['login_okay']) || !$_SESSION['login_okay']) {
   $_SESSION['basis'] = $basis;
   header("location:login.php?basis=$basis&logout=true");
   die(""); }
$basis = $_SESSION['basis'];
von index.php zur login.php also zu Anmeldung funktioniert es nicht.
moppel

azett

#8
Ah okay, in diese Richtung willst du es übertragen. Da nützt uns die Session nix, die wird beim Ausloggen ja zerstört - hier klappts tatsächlich über den zusätzlichen $_GET-Parameter. Allerdings gibt es mehrere Stellen in der index.php, die auf login.php?logout=true weiterleiten, nämlich...
  • in Zeile 32 (automatisches Zurückschicken zur Loginmaske, wenn kein gültiger Login vorliegt)
  • in den Zeilen 170 und 172 (Logout-Button rechts oben)
  • in Zeile 195 (Logout-Button im Menü)
Überall an den genannten Stellen mußt du nun login.php?logout=true um deine eigene Variable erweitern: login.php?logout=true&basis=$basisDann kommt diese auch auf jeden Fall in der login.php an: <?php

/* 

* $Revision: 204 $
* $LastChangedDate: 2009-06-26 16:48:04 +0200 (Fr, 26 Jun 2009) $
* $Author: arvid $
*
*/

echo $_GET['basis']; // HIER :)


require_once("Crypt.php");
...
 

moppel18

#9
Nochmal ich brauche die Variable in alle Richtungen, und in allen Funktionen.
von login.php zu index.php OK.
von index.php zu login.php klappt es noch nicht ganz:
Bild:



Die Variable kommt im Script an aber nicht im Formular.
moppel

moppel18

#10
Zitat// Aufbau des Login-Formulars

   echo "Basis: ".$basis;
   global $basis;

function login_formular($enabled) {
   $form = "<div id="mozilo_Logo"></div>"
   ."<div id="loginform_shadowdiv"></div>";
if ($enabled)
   $form .= "<div id="loginform_maindiv">";
else
   $form .= "<div id="loginform_maindiv_disabled">";
if ($enabled)
   $form .= "<form accept-charset="ISO-8859-1" name="loginform" action="".htmlentities($_SERVER['PHP_SELF'],ENT_COMPAT,'ISO-8859-1')."" method="POST"><input type="hidden" name="basis" value=$basis>";
   $form .= "<table><tr>"
     ."<td class="loginImage" rowspan="2">Basis: $basis "
     ."<img src="gfx/login.gif" alt="Login"/></td>"
     ."<td class="description">"
     .getLanguageValue("username").":"
     ."</td><td>";
Bis zum Begin des Formulars kann ich die Variable anzeigen, das 1. echo funktioniert
Nach "function login_formular($enabled) {" ist die Variable weg.
moppel

stefanbe

#11
Das global $basis; gehört in die function in der du $basis; brauchst

gruss stefanbe

moppel18

#12
Ich habs geschafft, die Variable geht durch alle Dateien. Danke für die Hilfe und Geduld.
moppel

azett

#13
Wunderbar :)

moppel18

#14
Nächstes Problem in index.php:

Ich brauche eine "function ..." in der ich einen Kontakt zu einer Datenbank brauche, hier ist wieder die Variable $basis dabei:

function admin_guest() {
    global $basis;

   require_once("config/sql_$basis.inc.php");
    $pagecontent = "";
    $pagecontent = "<br /><br />";
    ...
    }

funktioniert nicht.

Die Zeile:
   require_once("config/sql_".$basis.".inc.php");
funktioniert auch nicht.

Diese Zeile funktioniert:
   require_once("config/sql_sub.inc.php");
ich brauche aber die Variable.
moppel