SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.11.2003, 01:15:49
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
Switch >> So gehts

Hab scho öffter gehört das manche danach (auch hier) gefragt haben:

PHP-Code:
<? 
switch($action){
case "news": include("news.php"); break;
case "member": include("member.php"); break;
case "scripts": include("scripts.php"); break;
case "gfx": include("gfx.php"); break;
case "contact": include("contact.php"); break;
default: include("news.php"); break;
}
?>
Der Code wird an der Stelle in der Tabelle eingesetzt, wo ihr
die seiten switchen wollt.
Ihr müsst euch das wie Frames vorstellen, nur halt ohne Frames.
Dort, wo der Code steht, wird eine, im switch definierte Datei
eingefügt (includet). Ihr könnt euch das vorstellen als wenn der Server
in die Datei geht, diese öffnet den Text darin markiert und ihn dann in dem Switch
wieder einfügt.
Wenn ihr nun zum Beispiel ein Menü habt, dann könnt ihr als link
folgendes angeben:

Code:
------
http://www.Domis-Page.de/index.php?action=news
------

In dem Fall, wird dann die news.php eingefügt, wie es halt im
obrigen Code definiert wurde.
Als Default (Das was angezeigt wird wenn man z.B. nur die
index.php aufruft) wird hier z.b. auch wieder die news.php
eingefügt.
Ausserdem könnt ihr beliebig viele "Case - Zeilen" einfügen und
somit euren Switch erweitern.
Statt der Variable $action könnt ihr auch andere Variablen Werte
nutzen. Häufig wird z.b. $page, $site, $... usw. genutzt.
Dementsprechend ändern sich natürlich auch die Links.

... Gruss D0mi

Quelle: www.Artplay.de
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #2  
Alt 09.11.2003, 10:09:48
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
[list=1][*]Man benutzt <?php statt <?. Denn <?php geht immer wenn PHP installiert ist, <? ist hingegen von der Einstellung short_open_tag abhängig.[*]Der Code ist nicht nach dem PEAR-Coding-Standard geschrieben, was ggf. den Code etwas unleserlich macht.[*]Das case "news": kann man zu den default-teil packen oder auch ganz weglassen.[*]Die Klammern bei include kann man weglassen.[*]Wenn man keine double-quotes braucht sollte man lieber single-quotes benutzen.[*]switch($action) geht nur wenn register_globals an ist. Deswegen sollte man switch($_GET['action']) benutzen.[/list=1]
Eine vielleicht elegantere Version findet man unter http://tut.php-q.net/frames.html
__________________
PHP-Tutorial - PHP-FAQ - PHP-Manual
HTMLWiki
Mit Zitat antworten
  #3  
Alt 09.11.2003, 11:44:42
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
Hi,

vielen dank für diese Tipps, ich werde das nun mal probieren, ob auch ich das hinbekommen :) Wie du ja wahrscheinlich siest, bin ich doch neu in PHP.

Danke, Gruss, ... Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #4  
Alt 09.11.2003, 13:25:48
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
Hi,

mal angenommen es sind jetzt 30 Seiten oder mehr dann wird das doch recht lang.

Diese Methode wäre doch etwas sparsamer.

PHP-Code:
<?php

if(file_exists('./' $_GET['action'] . '.php')) {
    require(
'./' $_GET['action'] . '.php');
} else {
    require(
'./news.php');
}

?>
__________________
Gruß
René

lange Weile dann --> Webchess 2003

Geändert von René_M (09.11.2003 um 13:28:20 Uhr)
Mit Zitat antworten
  #5  
Alt 09.11.2003, 13:32:20
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
sparsamer, aber nicht zu empfehlen, da der User dann eingeben kann, was er will, und jede Seite aufrufen, die er will.

Gut, wenn du .php nicht getrennt hättest wär's einiges schlimmer, aber empfehlen würde ich es sowieso niemandem direkt filenamen oder queries über POST/GET zu verschicken, aus Sicherheitsgründen.
Mit Zitat antworten
  #6  
Alt 09.11.2003, 13:46:38
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
Hi Gweilo,

das Verzeichnis in denen die Dateien liegen ist .htaccess geschützt. Zu dem leigen die sicherlich nicht in dem gleichen Verzeichnis wie die aufrufende Datei (Pfad zur Datei ist ja über "...?action=blabla" nicht ersichtlich. Und durch das file_exists prüfe ich ob die Datei existiert wenn nein dann so wie bei switch default die news.php.
__________________
Gruß
René

lange Weile dann --> Webchess 2003

Geändert von René_M (09.11.2003 um 13:49:50 Uhr)
Mit Zitat antworten
  #7  
Alt 09.11.2003, 13:58:47
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
Stimmt,

das ist auch nicht schlecht. Aber dann sollte ich, wenn ich auch nen internbereich so machen will, denn mit htacces schützen oder?? ICh kenn aber nur den .htacces schutz von früher wie man ihn verwendete. Wie funktionert das jetzt in PHP?? Könnt ihr mir da einen Link geben. Ich möchte das Benutzername und Passwort irgendwo auf der Seite abgefragt werden, und nicht, das ein neues Fenster aufgeht wie mit dem alten .htacces-Schutz

Gruss Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #8  
Alt 09.11.2003, 19:20:38
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
Hi Domi,

in dem Fall wie oben geschildert kommt keine Abfrage von Username und Passwort. Das include passiert auf Serverebene nur wer jetzt wüßte wo die Dateien liegen die includet werden und sie direkt im Browser aufruft bekommt das kleine Fenster zum login. Das mit dem Fenster ist immer noch so wie du es kennst.

Wenn du einen solchen Login ohne .htaccess und .htpasswd realisieren möchtest kannst du das so machen. Mit dieser Variante kommt dann das gleiche kleine Fenster wie bei einem echten .htaccess-Schutz Nur das es keine .htaccess gibt.

PHP-Code:
<?php

/***
*
*

So erstellst du dir den Loginzugang:

echo "$ad_name = '" . md5('Admin') . "';<br>rn";
echo "$ad_pass = '" . md5('Admin') . "';";

*
*
***/

$ad_name 'e3afed0047b08059d0fada10f400c1e5';
$ad_pass 'e3afed0047b08059d0fada10f400c1e5';

/**/

if(!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER']) != $ad_name || md5($_SERVER['PHP_AUTH_PW']) != $ad_pass) {
    
header('WWW-Authenticate: Basic realm="Geschützter Bereich"');
    
header('HTTP/1.0 401 Unauthorized');

/*****/

echo <<<code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>401 Authorization Required</title>

</head>
<body>

<h1>Authorization Required</h1>

<b>Die Authentifizierung hat nicht gestimmt, Zugriff verweigert!</b>

<p><hr noshade>
<address>
{$_SERVER['SERVER_SOFTWARE']} auf {$_SERVER['HTTP_HOST']} Port {$_SERVER['SERVER_PORT']}</address></p>

</body>
</html>
code;

/*****/

    
exit();
} else {

    echo 
'ich bin drin';
    exit();
}

?>
__________________
Gruß
René

lange Weile dann --> Webchess 2003

Geändert von René_M (09.11.2003 um 20:46:08 Uhr)
Mit Zitat antworten
  #9  
Alt 10.11.2003, 00:07:23
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
Hi René_M,

das was du mir da gepostet hast, finde ich echt super!! Aber es währe noch besser, wenn der htacces Schutz nich über ein neues Fenster, welches POPUP-artig in den Vordergrund kommt, sondern über ein kleines Usernamefeld und Passwortfeld auf der Seite abgefragt wird. Weisst du wie ich meine??

Nehmen wir mal http://Freemail.de die haben dort auch ein "normales" login system, und nicht so wie bei nem .htacces schutz wie du mir geschildert hast, weil dort wird dann ein neues Fenster aufgehen, (wenn man versucht eine bestimmete Seite zu öffnen). welches dann nach Benutzername und PW fragt.

Ich hoffe du hast verstanden wie ich das meine :) Vielleicht kannst du mir da ja auch noch einen Code zukommen lassen.

Gruss Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #10  
Alt 10.11.2003, 07:42:39
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
Hi Domi,

das mit dem Fenster bei dem Code oben ist aber normal das ist schon immer so und wird auch immer so sein. Ich werde dir dann mal eine Lösung posten die wie auf der von dir genannten Seite ist.
__________________
Gruß
René

lange Weile dann --> Webchess 2003
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:03:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt