interner redirect + globale variable

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

die wird also schon nicht korrekt an die seite übergeben, die normal die links der navigation oder ähnliches enthält. somit kann natürlich auch die variable nicht korrekt gesetzt werden und an das weiterleitungsscript übergeben werden.

näher kann ich das leider nicht eingrenzen, weil das problem theoretisch in jedem ausgabe-modul liegen kann, weil du musst prinzipiell __jedem__ link die $naviswitch übergeben, egal in welchem modul oder container er erzeugt wird.
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

stese hat geschrieben:näher kann ich das leider nicht eingrenzen, weil das problem theoretisch in jedem ausgabe-modul liegen kann, weil du musst prinzipiell __jedem__ link die $naviswitch übergeben, egal in welchem modul oder container er erzeugt wird.
aber ich dachte dass ich diese sozusagen in der front_conten.php mit

Code: Alles auswählen

if (!isset($naviswitch)) {  
        $sess->register("naviswitch");
        } else {
                $naviswitch = $_GET["naviswitch"];
               }
global gesetzt hätte und diese dann immer zur verfügung steht?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

kann es ein dass diese zeilen in jedem layout eingebunden werden müssen?

oder anders wiemache ich die naviswitch gloabl bekannt, setze diese default auf 0 oder 1 um sie dann nur über den switch in der katbox zu ändern und den geänderten wert dann wieder weiter global nutzen bis die session killt
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

der schnipsel steht natürlich nicht im layout des redirect artikels
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Code: Alles auswählen

if (!isset($naviswitch)) { 
        $sess->register("naviswitch");
        } else {
                $naviswitch = $_GET["naviswitch"];
               }
sieht mir nicht ganz so gut aus. Hast du dir das hier mal angeschaut:

http://www.contenido.org/forum/viewtopi ... 2839#52839

?
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

jap da schnipsel ist irgendwie unvollständig, weil du die erstbefüllung vergisst.

schreib das mal so:

Code: Alles auswählen

if (!$sess->is_registered("naviswitch"))  {

   if (isset($_REQUEST["naviswitch"])) {
      $naviswitch = $_REQUEST["naviswitch"];
   } else {
      // hier muss ein standard wert eingegeben werden, falls weder eine var übergeben wurde noch sie in der session existiert
      $naviswitch = "defaultwert";
   }
   $sess->register("naviswitch");
} else if (isset($_REQUEST["naviswitch"]) && $sess->is_registered("naviswitch")) {
   $_SESSION["naviswitch"] = $_REQUEST["naviswitch"];
   $naviswitch = $_REQUEST["naviswitch"];
}

 
und ersetze bitte $naviswitch = "defaultwert"; durch deinen defaultwert

Nachtrag: Achtung mehrmals geändert!
Zuletzt geändert von stese am Di 22. Nov 2005, 17:27, insgesamt 1-mal geändert.
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

ich bin am verzweifeln
und du wahscheinlich au schon mit mir :?

Parse error: parse error in /home/httpd/vhosts/dev1.elflein-kosmetik.de/httpdocs/cont46dev/cms/front_content.php(772) : eval()'d code on line 814

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Elflein Kosmetik m&auml;rchenhaft sch&ouml;n - Kosmetikstudio und Onlineshop</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/ekstyle.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
<div align="left" style="width:880px;">
<!--  bof: Header -->
<div align="left" style="width:882px;">
    <div align="center" class="hdshdwce">
        <div align="center" class="hdshdwtr">
            <div align="center" class="hdshdwbl">
                <div class="hdgirltop"></div>
                <div class="hdlogo"></div>
                <div class="hdrnavtop"></div>
                <div class="hdrnav"><container id="2" name="HeaderNaviRe" types="Navigation" mode="fixed" default="HeaderNaviRe"></container></div>
                <div class="hdgirlbot"></div>
                <div class="HDMainNaviWrap"><container id="1" name="HeaderNaviMain" types="Navigation" mode="fixed" default="HeaderNaviMain"></container></div>
                <div class="hdrnavbot"><container id="3" name="HeaderNavi3icons" types="Content" mode="fixed" default="HeaderNavi3icons"></container></div>
            </div>
        </div>
    </div>
</div>
<!--  eof: Header -->
<!--  bof: Navipath -->
<div align="left" style="width:870px; float:left;">
    <div align="left" style="width:650px; height:20px; float:left;">&nbsp;Sie befinden sich hier:&nbsp;&nbsp;<container id="10" name="Navigationspfad" types="Navigation" mode="fixed" default="Navigationspfad"></container></div>
    <div align="right" style="width:210px; height:20px; float:left; font-size:10px;"><?php echo strftime("%d.%m.%Y - %H:%Mh"); ?></div>
</div>
<!--  bof: Navipath -->
<div align="left" style="width:870px; loat:left;">
<!--  bof: main -->
<?php
if (!$sess->is_registered("naviswitch"))  {

   if (isset($_REQUEST["naviswitch"]) {
      $naviswitch = $_REQUEST["naviswitch"];
   } else {
      $naviswitch = 0;
   }
   $sess->register("naviswitch");
}

if ($naviswitch == 0 ) {
   ?>     
<div align="left" style="float:left;">
    <div class="ml1shdwce">
        <div class="ml1shdwtr">
            <div class="ml1shdwbl">
                 <div class="ml1wrap">
                    <div class="ml1headl">
                        <div align="left" style="float:left;"><container id="20" name="Kategoriebox Headline"></container></div>
                        <div align="right" style="float:right; padding-right:8px;">
                            <form action="front_content.php" method="GET">
                            <input type="hidden" name="idcat" value="<?php echo $idcat; ?>">
                            <input type="hidden" name="naviswitch" value="1">
                            <input type="image" src="upload/backgrounds/arrow_up.gif" title="Navigation einklappen">
                            </form>
                        </div>
                    </div>            
                    <div class="ml1content1"><container id="21" name="Hauptnavigation" default="Hauptnavigation"></container></div>
                </div>
            </div>
        </div>
    </div>
</div>
  

<?php }
  else {
 ?>
<div align="left" style="float:left;">
    <div class="ml1shdwce">
        <div class="ml1shdwtr">
            <div class="ml1shdwbl">
                 <div class="ml1wrap">
                    <div class="ml1headl">
                        <div align="left" style="float:left;"><container id="22" name="Kategoriebox Headline"></container></div>
                        <div align="right" style="float:right; padding-right:8px; padding-top:1px;">
                            <form action="front_content.php" method="GET">
                            <input type="hidden" name="idcat" value="<?php echo $idcat; ?>">
                            <input type="hidden" name="naviswitch" value="0">
                            <input type="image" src="upload/backgrounds/arrow_down.gif" title="Navigation aufklappen">
                            </form>
                        </div>
                    </div>            
                    <div class="ml1content"><container id="23" name="Hauptnavigation" default="Hauptnavigation"></container></div>
                </div>
            </div>
        </div>
    </div>
</div>
<?php
};
?>
    <div align="left" style="float:right;">
        <div class="mainshdwce">
            <div class="mainshdwtr">
                <div class="mainshdwbl">
                    <div class="maincontent">
                        <container id="40" name="MainHeadline"></container>
                        <container id="42" name="Kontaktform"></container>
                        <container id="43" name="Suche"></container>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<!--  eof: main -->
<!--  bof: 3boxes -->
<container id="90" name="3BoxesBottom" types="Content"></container>
<!--  eof: 3boxes -->
<!--  bof: longbox -->
<container id="91" name="longboxBottom" types="Content"></container>
<!--  eof: longbox -->
<!--  bof: footer -->
<container id="92" name="footer" types="Content"></container>
<!--  eof: footer -->
<!--  bof: footerlinks -->
<container id="93" name="footerlinks" types="Content"></container>
<!--  eof: footerlinks -->
</div>
</div>
</body>
</html>
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

nimm mal bitte nochmal das snippet von oben - du warst schneller als ich korrigieren konnte, denn hier fehlte eine 2. normale schließende klammer nach der ersten schließenden klammer:

Code: Alles auswählen

if (isset($_REQUEST["naviswitch"])
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

mit diesem funktioniert es jetzt

Code: Alles auswählen

if (!$sess->is_registered("naviswitch"))  {

   if (isset($_REQUEST["naviswitch"])) {
      $naviswitch = $_REQUEST["naviswitch"];
   } else {
      // hier muss ein standard wert eingegeben werden, falls weder eine var übergeben wurde noch sie in der session existiert
      $naviswitch = "defaultwert";
   }
   $sess->register("naviswitch");
} else if (isset($_REQUEST["naviswitch"]) && $sess->is_registered("naviswitch")) {
   $_SESSION["naviswitch"] = $_REQUEST["naviswitch"];
   $naviswitch = $_REQUEST["naviswitch"];
} 
nochmals nachgefragt,, muss das snippet in jedem layout integriert sein?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

kommt drauf an wie es bei dir gelöst wurde.

wenn $switchnavi immer 1 ist, dann braucht es nur in der startseite integrgiert sein (also der seite die immer und auf jeden fall aufgerufen wird - bei quereinsteigern isses dann blöd, weil da funzt es wieder nicht)

aus sicherheitsgründen würde ich es in jedes layout reinbasteln. ich mache mir z.b. immer einen container in jedem layout an allererster stelle, wo ich zur not auch mal ne header() ausgabe für ne weiterleitung reinfummeln kann.
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

kk verstehe (editiert: besser 'glaube zu verstehen') ;)

also container nach dem body als erstes in jedes layout einfügen
modul erstellen mit dem snippet (2nd edit: <?php snippet ?> im output)
in jedem template das modul einbinden

sooooo?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

korrekt. wo du den container im layout einfügst bleibt dir überlassen - ich habe mir angewühnt einen container immer an allererster stelle, noch vor einem html tag zu stellen.
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

perfect nun isset done ;)

und alle weiteren "globals" die ich definieren und nutzen will packe ich dann auch in den moduloutput, right? dann muss ich dass immer nur an einer stelle pflegen und habe die übersicht. klasse!

das angebot aus der pm steht bierchen oder ein termin ;)

merci viiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieelmal kann man nicht zu oft sagen
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Gesperrt