# Weiterleiten ohne header



## Wambo (7. September 2006)

Hallo
Ich wollte mal Fragen ob es in PHP eine Weiterleitung gibt.
header() habe ich schon ausprobiert nur ich kann die Vorraussetzungen (keine Ausgaben davor)
in meinem Script nich realisieren warum auch immer...
gibt es eine andere Möglichkeit (ausser Java Script...das hab ich schon ausprobiert. wenn man das im Browser ausstellt kann man das umgehen und ist ohne überprüfung im Innenbereich)?

Also ich möchte die Weiterleitung nutzen um bei meinem loginsystem nach der überprüfung der daten (mit if) wieder zum Formular oder in den Innenbereich zu kommen
danke x-mal


----------



## birnkammer (7. September 2006)

Mit PHP geht das nur per header(), Du könntest aber die Ausgabe mit den Funktionen zur Ausgabesteuerung (ob_start(), ob_end_flush()) verzögern.

Mit HTML kannst du mit  

```
<meta http-equiv="refresh" content="5; URL=...">
```
(http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung)


----------



## Wambo (8. September 2006)

birnkammer hat gesagt.:
			
		

> Mit HTML kannst du mit
> 
> ```
> <meta http-equiv="refresh" content="5; URL=...">
> ```


Hab ich gerade mal getestet. Man wird jetzt weitergeleitet egal ob das passwort und der username richtig oder falsch ist. Im Innen bereich kann man auch seine daten nachgucken aber das klappt jetzt mit meta auch nicht mehr


----------



## Djunix (8. September 2006)

hi, falls du zugriff auf deine php.ini hasst, kannst du das auch so einstellen das das mit dem header funktioniert. die option dafür heißt "output_buffering".

Auszug aus der php.ini:


> Output buffering allows you to send header lines (including cookies) even
> after you send body content, at the price of slowing PHP's output layer a
> bit.


wobei so wie du das vorhast ist das sowieso nicht sonderlich sicher, da wenn man einmal eingeloggt war, kann man ja jedes mal direkt über den link wieder in den gesicherten bereich. ich würde hier mit sessions oder cookies arbeiten und dann eine art gerüst bauen. es wird überprüft ob die login-daten korrekt sind, wenn ja dann soll er die datei (z.B:innen.php) includieren, ansonsten die datei in der das login-formular ist (z.B.: login.php).

hoffe ich konnte weiterhelfen

mfg 
Daniel


----------



## birnkammer (8. September 2006)

Dafür braucht man aber gar nicht Zugriff auf die php.ini, nur die Funktionen zur Ausgabesteuerung:

ob_start()
ob_end_flush()
z.B.:

```
<?php
     ob_start();
     //HTML-Code oder andere Ausgabe
     header("..."); //Weiterleitung oder andere Header
     ob_end_flush(); //Daten an den Browser senden
?>
```


----------



## Wambo (8. September 2006)

Djunix hat gesagt.:
			
		

> eine art gerüst bauen. es wird überprüft ob die login-daten korrekt sind, wenn ja dann soll er die datei (z.B:innen.php) includieren, ansonsten die datei in der das login-formular ist (z.B.: login.php).


Was meinst du mit einer Art Gerüst. Kannst du eventuell ein Beispiel schicken


----------



## Online-Skater (8. September 2006)

1. Logindaten abgleichen
2. Wenn erfolgreich Daten in Session speichern z.B. Name und Id
3. Bei internen Seiten Abfragen if (isset($_SESSION['id'])) //code else echo 'hau ab';


----------



## birnkammer (8. September 2006)

Schau mal auf http://tut.php-q.net/login.html, da gibts ein super Tutorial über eine Login-System mit PHP und MySQL


----------



## Wambo (8. September 2006)

Danke schön
Das hab ich schon aus probiert und ausgedruckt das hab ich aber nicht verstanden. Das Tutorial von dieser Site war immer noch das beste bis jetzt


----------



## Ninetonine (20. Juli 2017)

Ich weiß, dass dieses Thema nicht aktuell ist, aber du könntest es so machen.

if "$name"=="$selectedname" {
if "$passwort"=="$selectedpasswort" {
echo "<meta http-equiv="refresh" content="5; URL=...">"
// oder auch mit JS
echo "<script>document.href = url;</script>
}
}


----------



## EnesE (27. Juli 2017)

Ninetonine hat gesagt.:


> Ich weiß, dass dieses Thema nicht aktuell ist, aber du könntest es so machen.
> 
> if "$name"=="$selectedname" {
> if "$passwort"=="$selectedpasswort" {
> ...




Du hast in deinem Code einige Fehler hier die Korrektur:

```
<?php
if($name == $selectedname){
     if($passwort == $selectedpasswort){
         echo '<meta http-equiv="refresh" content="5; URL=...">';
         // oder auch mit JS
         echo '<script>document.href = url;</script>';
    }
}
?>
```

Ps: Ich will nur helfen


----------



## Ninetonine (4. August 2017)

Oh..


EnesE hat gesagt.:


> Du hast in deinem Code einige Fehler hier die Korrektur:
> 
> ```
> <?php
> ...


 Ja. Hab vorher mit Batch programmiert. Und da werden if-Abfragen immer so geschrieben. Aber danke.


----------

