Neuigkeiten:

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

Hauptmenü
-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es dir, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachte, dass du nur Beiträge sehen kannst, die in Teilen des Forums geschrieben wurden, auf die du aktuell Zugriff hast.

Beiträge anzeigen-Menü

Themen - Promoz

#1
Wie kann ich...? / Seite mit Login schützen
05. November 2009, 12:54:14
Ich schütze bestimmte Inhaltsseiten mit einer Passwortabfrage, für die ich ein benutzerdefiniertes Syntaxelement, etwas PHP und weiter nichts benötige.

Versuch macht klug auf http://www.progt.de (Testeiten 1 bis 3). Anmelden mit Test und Test.

Promoz


Benutzerdefiniertes Syntaxelement:

Zitatusersess = <div class="usersess">{VALUE}</div>
oder
Zitatusersess = <div style="display:none">{VALUE}</div>

Einbinden in Inhaltsseite:

[php|session_start();
$_SESSION^["_catpage_"^] = "index.php?cat={CATEGORY}&page={PAGE}";
$_SESSION^["_pageurl_"^] = "kategorien/{CATEGORY}/{PAGE_FILE}";
include("myphp/usersess/usersess.php");]
[usersess|[ueber1|Testseite 1]
Eine [fett|wunderbare] große Heiterkeit hat meine <h2>ganze Seele</h2> eingenommen, gleich den süßen Frühlingsmorgen, die ich mit <b>ganzem Herzen</b> genieße. Ich bin allein und freue mich meines Lebens in dieser Gegend, die für solche Seelen geschaffen ist wie die meine. Ich bin so glücklich, mein Bester, so ganz in dem Gefühle von ruhigem Dasein versunken, daß meine Kunst darunter leidet. <br /><b>Ich</b> könnte jetzt nicht zeichnen, nicht einen Strich, und bin nie ein größerer Maler gewesen als in diesen Augenblicken. Wenn das liebe Tal um mich dampft, und die hohe Sonne [kursiv|an der Oberfläche der undurchdringlichen Finsternis] meines Waldes ruht, und nur einzelne Strahlen sich in das innere Heiligtum stehlen, ich dann im hohen Grase am fallenden Bache liege, und näher an der Erde tausend mannigfaltige Gräschen mir merkwürdig werden; wenn ich das der <a href='http://www.spexard.de'>(Link nach Spexard)</a> kleinen Welt zwischen Halmen, die unzähligen, unergründlichen Gestalten der Würmchen, der <h1>Mückchen</h1> näher an meinem Herzen fühle, und fühle die Gegenwart des Allmächtigen, der uns nach seinem Bilde schuf, das Wehen des Alliebenden, der uns in ewiger Wonne schwebend trägt und erhält; mein Freund! Wenn's dann um meine Augen dämmert, und die Welt um mich her und der Himmel ganz in meiner Seele ruhn wie die Gestalt einer...<br />
[fett|Dies ist ein Typoblindtext.] An ihm kann man sehen, ob alle Buchstaben...
]

Die Datei usersess.php

<?php

$_SESSION
["_sid_"] = session_id();

require_once(
"usersessconf.php");

if(
$_REQUEST["_logout_"]):
$_catpage $_SESSION["_catpage_"];
  
$_SESSION = array();
  if(isset(
$_COOKIE[session_name()])):
  
setcookie(session_name(), ''time()-42000'/');
  endif;
session_destroy();
  
header("Location:$_catpage");
endif;

if(
$_REQUEST["_login_"]):
if(UserCheck($_REQUEST["_username_"],$_REQUEST["_userpw_"])):
    
$_SESSION["_logok_"] = true;
else:
  
$_SESSION["_logok_"] = false;
    
$_fehler "<span style='color:#6F6F6F;font-weight:bold'>Login-Fehler!<span>";
  endif;
endif;

if(
$_SESSION["_logok_"] == true):
echo ReadDat($_SESSION["_pageurl_"]);
echo "<br /><br /><div>".
 "<form name='logout_form' action='$PHP_SELF' method='post'>".
 "<input class='uss_logformsubmit' type='submit' name='_logout_' value='Abmelden'>".
 "</form>".
       
"</div>";
else:
echo "<div class='uss_loginform'>".
       
"<form name='login_form' action='$PHP_SELF' method='post'>".
       
"<table class='uss_loginform'>".
       
"<tr><td class='uss_loginformtext' colspan='2'>".
  
 "Für diese Seite bitte einloggen:".
       
"</td></tr>".
       
"<tr><td class='uss_loginformtext' colspan='2'>".
       
substr(strrchr($_SESSION["_catpage_"],"_"),1).
       
"</td></tr>".
       
"<tr><td class='uss_loginform'>".
  
 "Name:".
       
"</td><td class='uss_loginform'>".
       
"<input class='uss_loginform' name='_username_' type='text' size='20' value=''>".
  
 "</td></tr><tr><td class='uss_loginform'>".
       
"Passwort:".
       
"</td><td class='uss_loginform'>".
       
"<input class='uss_loginform' name='_userpw_' type='password' size='20' value=''>".
       
"</td></tr><tr><td style='text-align:right' colspan='2'>".
       
"<input class='uss_logformsubmit' type='submit' name='_login_' value='Anmelden'>".
       
"</td></tr>".
       
"</table>".
       
"</form>".
 $_fehler.
       
"</div>";
endif;

function 
UserCheck($_name,$_pw)
{
  
$_name trim($_name);
  
$_pw trim($_pw);

  
$_userall file(USERSESS_DIR."/usersesspw.php");

for($_i=0;$_i<count($_userall);$_i++):
    if(
substr(trim($_userall[$_i]),0,1) != ".") continue;
    list(
$_a,$_b,) = explode("|",trim($_userall[$_i]));
    if(
substr($_a,1) == $_name && $_b == md5($_pw)):
    
return true;
    else:
    
continue;
    endif;
endfor;

  return 
false;
}

function 
ReadDat($_dat)
{
  
$_content file_get_contents($_dat);
  
$_content substr(trim($_content),strpos($_content,"[usersess|")+10);
  
$_content substr($_content,0,strrpos($_content,"]"));
  return 
$_content;
}

?>

Die Datei usersesspw.php

<?php
if(substr_count($_SERVER["REQUEST_URI"],"usersesspw.php") != 0):
header("Location:index.php");
endif;
?>


// Ab hier Usereinträge: (Dot)Name|MD5-Passwortcode

.Test|0cbc6611f5540bd0809a388dc95a615b

Die Datei usersessconf.php

<?php
if(substr_count($_SERVER["REQUEST_URI"],"usersessconf.php") != 0):
header("Location:index.php");
endif;

// Ab hier Konfigurations-Einstellungen
// definieren oder bearbeiten

define("USERSESS_DIR","myphp/usersess");

?>
#2
Tipps und Tricks / Galerie-Übersicht auf Inhaltsseite
20. September 2009, 21:33:07
Um eine Galerie-Übersicht - oder auch mehrere - direkt auf einer Inhaltsseite einzubinden, lese ich via php-Datei die Bilder aus den jeweiligen Galerie-Vorschau-Ordnern ein und gebe sie auf der Inhaltsseite aus.

Der Aufruf der Bilder/Galerien erfolgt mit einem Klick aufs Bild. Bei zufälliger Bildanzeige wird stets das erste Bild in der eigentlichen Galerieansicht aufgerufen, ansonsten das sofort das angeklickte Bild. (Eine Lösung, wie auch bei zufälliger Bildauswahl das jeweilige Bild direkt aufgerufen werden kann, habe ich noch nicht gefunden. Das Bildereinlesen der Datei gallery.php funtioniert offenbar nach anderen Regeln. Tipps willkommen...)

Durch Parameterangaben beim Aufruf der php-Datei auf der Inhaltsseite kann außer einem gültigen und zwingenden Eintrag eines Mozilo-Galerie-Namens (ansonsten Fehlermeldung) gesteuert werden:

- die Anzahl der angezeigten Bilder (Vorgabe 1; wenn größer als Gesamtzahl der Bilder, dann alle)
- ob die Bilderauswahl zufällig oder nicht angezeigt wird (Vorgabe 0, also nein)
- wieviele Bilder nebeneinander (Spaltenanzahl) angezeigt werden (Vorgabe 4)

Die Darstellung der einzelnen Galerie-Titelzeilen und der Bilderübersicht wird über zusätzliche Einträge in der aktuellen Layout-css-Datei festgelegt.

Anwendungsbeispiel unter www.progt.de (Bilderbogen).

Promoz

---

Aufruf der php-Datei und der darin enthaltenen Funktion in der Inhaltsseite aus dem Ordner myphp:

[php|include("myphp/showgalprepics.php");]

[php|ShowGalPrePics("Spexard",2,1,2);]
[php|ShowGalPrePics("Garten",99,0,4);]
[php|ShowGalPrePics("Allerlei",3,0,3);]

Code der php-Datei:

<?php
function ShowGalPrePics($_galdir,$_show=1,$_rand=0,$_col=4)
{
if(
$_show 1$_show 1;
if(
$_col 1$_col 1;

$_dir "./galerien/".$_galdir."/vorschau";

if(!
file_exists($_dir)):
  echo 
"<br>Galerie <span style="color:#ff0000;font-size:1.1em;font-weight:bold">".$_galdir."</span> 
           
nicht gefunden.<br>";
else:
  
$d = dir($_dir);
  // Vorschau-Ordner einlesen
  while(
$entry=$d->read()):
    if(substr(
$entry,-4) == ".jpg" || substr($entry,-4) == ".gif" || substr($entry,-4) == ".png"):
      
$_picarray[] = $entry;
    endif;
  endwhile;
  
$d->close();

  asort(
$_picarray);
  
$_pics = count($_picarray);
  if(
$_show > $_pics$_show = $_pics;
  
  // Wenn Zufalls-Parameter gesetzt, dann Bilder-Array "
schütteln"
  if(
$_rand == 1):
    shuffle(
$_picarray);
  endif;

  
$_showarray = array_slice($_picarray,0,$_show);

  // Anzeige Galerie-Titel
  echo "
<table class="showgalprepicstitle">";
  echo "
<tr><td class="showgalprepicstitle">";
  echo 
$_galdir;
  echo "
&nbsp;<span style="font-size:0.8em">(".$_show." von ".count($_picarray).")</span>";
  if(
$_rand == 1):
    echo "
&nbsp;<span style="font-size:0.8em;font-weight:normal">Auswahl/Anordnung zufällig</span>";
  endif;
  echo "
</td></tr>";
  echo "
</table>";

  // Anzeige Bilderübersicht
  echo "
<table class="showgalprepics">";
  echo "
<tr><td colspan="$_show">";
  if(
$_rand == 1):
    echo "
Galerie aufrufen mit Klick aufs Bild.";
  else:
    echo "
Bild/Galerie aufrufen mit Klick aufs Bild.";
  endif;
  echo "
</td></tr>";
  echo "
<tr>";
  
$_a = 0;
  foreach (
$_showarray as $_key => $_value):
    if(
$_a > 0 && ($_a%$_col == 0)):
      echo "
</tr><tr>";
    endif;
    echo "
<td class="showgalprepics">";
    if(
$_rand == 1):
      echo "
<a href="./gallery.php?gal=".$_galdir."">
              <
img class="showgalprepics" src="".$_dir."/".$_value."" alt=""></a>";
    else:
      echo "
<a href="./gallery.php?gal=".$_galdir."&index=".($_key+1)."">
              <
img class="showgalprepics" src="".$_dir."/".$_value."" alt=""></a>";
    endif;
    echo "
</td>";
    
$_a += 1;
  endforeach;
  echo  "
</tr>";
  echo "
</table>";

endif; //!file_exists
}
?>

Einträge in css-Datei des aktuellen Layouts:

/* -------------------------------------------------------- */
/* ShowGalPics*/
/* --------------- */
table.showgalprepicstitle {
 width:95%;
}
td.showgalprepicstitle {
 font-size:1.3em;
 font-weight:bold;
 color:#ffffff;
 background-color:#8F8F8F;
 padding:4px;
}
a.showgalprepicstitle {
 font-size:1.3em;
 color:#ffffff;
 text-decoration:none;
}
a.showgalprepicstitle:hover {
 color:#000000;
}
table.showgalprepics {
}
td.showgalprepics {
 padding:5px 10px 5px 0;
 vertical-align:top;
}
img.showgalprepics {
 border:1px solid #000000;
}