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 ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.05.2002, 20:34:04
Chilla Chilla ist offline
Anfänger
 
Registriert seit: May 2002
Beiträge: 2
Weiterleitung in if-Schleife

Mit Location kann wohl auf eine Seite weitergeleitet werden, doch muss hierzu der Befehl ganz oben stehen.

Will ich jetzt eine Weiterleitung in eine if Schleife einbauen, z.b.
If $user==hans ... leite an Adresse http://www.irgendwas.de

Mit welchem Befehl kann ich das Gewünschte erreichen?

Thx für Hilfe
__________________

Greez

Chilla
Mit Zitat antworten
  #2  
Alt 08.05.2002, 20:42:18
Coda Coda ist offline
Anfänger
 
Registriert seit: May 2002
Alter: 39
Beiträge: 134
if($user == "hans") header("Location: http://www.irgendwas.de");

das musst du aber vor jeder HTML ausgabe machen

btw if is keine schleife, sondern ne kontroll-struktur
Mit Zitat antworten
  #3  
Alt 08.05.2002, 21:56:38
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
@Coda

Das meint er ja, das es mitten drin ist

das hat er ja auch geschrieben ;-)
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #4  
Alt 08.05.2002, 22:56:39
Chilla Chilla ist offline
Anfänger
 
Registriert seit: May 2002
Beiträge: 2
jo nev hat das richtig erkannt. das problem ist ja, dass die header information (logsicherweise) zu oberst stehen muss.
da dies für mich unpraktsich ist, wollte ich wissen, wie man eine weiterleitung an einen beliebigen ort der datei setzen kann.

aber thx schon mal für die schnellen antworten :)
__________________

Greez

Chilla
Mit Zitat antworten
  #5  
Alt 24.11.2003, 13:51:43
Christen Christen ist offline
Anfänger
 
Registriert seit: Nov 2003
Beiträge: 12
Ist auch eine Weiterleitung wie mit Javascript möglich.

<script> if (document.URL == 'http://mysite.com/test.html') { location.href = 'http://mysite.com/test.php' } </script>
Mit Zitat antworten
  #6  
Alt 24.11.2003, 17:27:21
Ben20
Guest
 
Beiträge: n/a
Oder einfach an den Anfang des Scriptes:

PHP-Code:
 ob_start(); 
und ans Ende

PHP-Code:
 ob_end_flush(); 

dann kannst Du header() auch in der Mitte des Scriptes verwenden!
Mit Zitat antworten
  #7  
Alt 24.11.2003, 17:34:04
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
if($user == 'hans') @header('Location: http://www.irgendwas.de/');
__________________
Gruß
René

lange Weile dann --> Webchess 2003
Mit Zitat antworten
  #8  
Alt 05.05.2004, 12:11:50
DangerLes DangerLes ist offline
Anfänger
 
Registriert seit: Jul 2003
Ort: Hückelhoven
Beiträge: 37
DangerLes eine Nachricht über ICQ schicken DangerLes eine Nachricht über AIM schicken
include von if abhängig machen

Der Thread ist zwar schon einige Zeit alt, aber dennoch habe ich eine ähnliche Frage und wollte dafür nicht einen neuen Tread starten. Und zwar habe ich eine Eingabemaske (sell.php), in der einige alle möglichen Variablen bestimmt werden. Im eigentlichen Template dieser Datei ist ein Dropdownmenü eingebaut, welches ich nun mit verschiedenen Tempaltes verknüpfen möchte. Im Klartext sollte es so aussehen:

Ich wähle im Dropdown den Eintrag mit der ID 5, dann soll er ein bestimmtes Template laden, bei der ID 12 eben ein anderes Template. Wie muss ich das dann in der sell.php eigeben? Etwa so?

PHP-Code:
.....
if (
$objekt==5)
{
include 
"templates/template_sell_php_a.html";
}
.....
if (
$objekt==12)
{
include 
"templates/template_sell_php_b.html";
}
.....
if (
$objekt==35)
{include 
"templates/template_sell_php_c.html";

Ich habe leider keine Ahnung, ob es so funktionieren könnte, das ist einfach zusammengebastelt, nachdem ich in selfphp gestöbert habe.
Mit Zitat antworten
  #9  
Alt 05.05.2004, 13:10:58
Dago Dago ist offline
Member
 
Registriert seit: Mar 2002
Beiträge: 548
@DangerLes
Dein Beispiel würde zwar funktionieren aber es ist nicht sehr effizient, da bei jeder Anfrage alle IF's durchlaufen werden - selbst wenn das übereinstimmende Objekt schon längst gefunden wurde.

Es gibt vielerlei Möglichkeiten dies zu umgehen.
Z.B. elseif, switch in Verbindung mit break, array oder eine Datenbank.

Elseif-Schlangen arbeiten wie normale If-Abfragen, mit dem Unterschied, dass nach einem gefundenen Objekt Schluss ist.

Switch könnte man als "andere Schreibweise" für If- oder Elseif-Abfragen bezeichnen.

Arrays haben den Vorteil, dass man mit einer einzigen Anfrage sofort zum gewünschten Datensatz gelangt. Allerdings müssen diese erstmal erzeugt werden, was wiederum Performance kostet.

Eine Datenbank zu nutzen, wäre bei wenigen Objekten wie "mit Kanonen auf Spatzen schießen" - also in dem Fall die langsamste Methode. Allerdings relativiert sich dies, je mehr Objekte vorhanden sind. Bei vielen hunderten oder gar tausenden Objekten, sind Datenbänke unerlässliche Werkzeuge, da sie mit wenigen Anfragen zum gewünschten Datensatz springen können.

Beispiel für elseif:
PHP-Code:
<?php

.....
if (
$objekt==5) {
     include(
'templates/template_sell_php_a.html');
}
.....
elseif (
$objekt==12) {
     include(
'templates/template_sell_php_b.html');
}
.....
elseif (
$objekt==35) {
     include(
'templates/template_sell_php_c.html');
}

?>
Beispiel für switch:
PHP-Code:
<?php

switch ($objekt) {

     case 
5:
          include (
'templates/template_sell_php_a.html');
          break;

     case 
12:
          include(
'templates/template_sell_php_b.html');
          break;

     case 
35:
          include(
'templates/template_sell_php_c.html');

}

?>
Achtung: "break" ist wichtig, da sonst (wie bei normalen If-Abfragen) alle Elemente durchlaufen werden.

Beispiel für Array:
PHP-Code:
<?php

$templates 
= array(
     
=> 'templates/template_sell_php_a.html'
     
,12 => 'templates/template_sell_php_b.html'
     
,35 => 'templates/template_sell_php_c.html'
);

include(
$templates[$objekt])

?>
Beispiel für Datenbank (MySQL):
PHP-Code:
<?php

$result 
mysql_unbuffered_query('SELECT `template_path` FROM `templates` WHERE `objekt` = '.$objekt);

$result mysql_fetch_assoc($result);

include(
$result['template_path']);

?>

Geändert von Dago (05.05.2004 um 15:34:52 Uhr)
Mit Zitat antworten
  #10  
Alt 05.05.2004, 14:48:20
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von Chilla
>das problem ist ja, dass die header information (logsicherweise) zu oberst stehen muss.

Das stimmt so nicht. Es ist bei HTTP nur zwingend, daß erst der Header und dann der Content gesendet werden muß.

>da dies für mich unpraktsich ist,

Kein Problem, wenn Du alle Ausgaben in Variablen sammelst und sie erst dann mit Echo/Print rausbläst, wenn es sinnvoll ist.

zB.:
PHP-Code:
$content '<html>';
$content .= '<body>';
$content .= 'allerlei Zeuch...';
if (
$irgend_was $sonst_was)
{
  
header ('...');
  exit;
}
else

# weiter an der Ausgabe basteln)

$content .= '</body></html>';
print (
$content); 
Natürlich könntest Du auch mal über die Verwendung einer Template Klasse nachdenken...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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:38:01 Uhr.


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


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