Webstatt.org - Community seit 2006 - 2012 (2024?)

Skript sauber einbinden

Avatar user-282
16.07.2007 22:54

Guten Tag,

wie ich in einem anderen Thread mal erwähnt hatte schreibe ich an einem Login und will mich langsam auch steigern. Ich habe dieses Problem, zwar in abgewandelter Form in einem anderen Forum geschrieben. Dort waren die Lösungsvorschläge nicht so der Renner, deshalb möchte ich mir noch eine Art Bestätigung holen.


Also wie man aus der Überschrift schon erkennen kann geht es ums einbinden von meinem Skript.
Ich habe nun einen ganz passablen Login geschrieben und möchte ihn nun in mein Design einbinden. Das Formular und die Auswertung sind jeweils beide in der Datei "login.php" und ich dachte mir eigentlich, dass ich diese in die Datei "index.php" mit include() einfach einbinden könnte.
Das Problem an der ganzen Sache ist nur, dass ich bei der Login Prozedur später auf eine "aktuelle"Seite verweise via header(), aber diese Funktion mekert dann natürlich das vorher nichts kommen darf. Ich möchte ungern die Funktion ob_start() nutzen um das so hinzubiegen.

Gibt es also eine saubere ordentliche Lösung ohne die Funktion ob_start()?

Gruß, pyth0n lächeln


P.S. Ich bin gespannt, was ihr mir für Vorschläge bringt oder ob sie Deckungsgleich sind. zwinkern

zwinkern Don't Panic! - Die Antwort lautet: 42
Avatar user-162
16.07.2007 23:04

Die einzige Möglichkeit ohne ob_start ist sauber zu Coden. Du musst halt die Ausgabe vom Rest deines Scriptes trennen, damit dein Script funktioniert.

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-282
16.07.2007 23:12

Ja schon, aber wie sähe das aus?

Gruß, user-282 lächeln

zwinkern Don't Panic! - Die Antwort lautet: 42
user-152
17.07.2007 05:16

Ich würde das ganze so programmieren, dass vor der Header-Anweisung keine Ausgabe zum Browser erzeugt wird, wozu auch.

Es ist natürlich mist, wenn in der PHP-Datei noch HTML mit eingebunden ist, schon dies ist auf dauer keine saubere Lösung.
Ansonsten zum Prinzip:


<?php
if ( isset($_POST etc....) ) {

if ( $_POST abfragen ) {
Header(Location: erfolgreich )
} else {
Header(Location: wieder zum formular)
}

} else {

// hier das Formular

}
?>


Also die eigentliche Überprüfung an den Anfang vom Script setzen, und dafür sorgen, dass vor Header keine Leerzeichen, Zeilenumbrüche oder irgendwelche echo oder print-Ausgaben erfolgen.

Avatar user-282
17.07.2007 07:14

Original von user-152
Ich würde das ganze so programmieren, dass vor der Header-Anweisung keine Ausgabe zum Browser erzeugt wird, wozu auch.

Es ist natürlich mist, wenn in der PHP-Datei noch HTML mit eingebunden ist, schon dies ist auf dauer keine saubere Lösung.
Ansonsten zum Prinzip:


<?php
if ( isset($_POST etc....) ) {

if ( $_POST abfragen ) {
Header(Location: erfolgreich )
} else {
Header(Location: wieder zum formular)
}

} else {

// hier das Formular

}
?>


Also die eigentliche Überprüfung an den Anfang vom Script setzen, und dafür sorgen, dass vor Header keine Leerzeichen, Zeilenumbrüche oder irgendwelche echo oder print-Ausgaben erfolgen.


So ist mein Login-Skript selbst aufgebaut, aber nun stellt soch halt die Frage wegen Einbindung oder gibt es alternative Funktionen zu header()?

Gruß, user-282 lächeln

zwinkern Don't Panic! - Die Antwort lautet: 42
Avatar user-159
17.07.2007 07:30

du könntest noch eine meta weiterleitung machen ala
<meta http-equiv="refresh" content="site.php">


nicht ganz schön, weiss nicht ob es valide ist, aber funktioniert.

user-152
17.07.2007 08:56

Wenn schon, dann so:
<meta http-equiv="refresh" content="0; URL=blabla.php">

Avatar user-271
17.07.2007 14:00

naja....oder das ganze über templates lösen...also eine template klasse, damit wirklich gerwährleistet ist, dass er das ganze gesocks nur am Schluss ausgibt zwinkern

#!/bin/bash
traurig){ neutral:& };:
user-220
17.07.2007 14:18

Joa, wäre auch sehr saubere Methode, so gesehen.

Avatar user-282
17.07.2007 15:56

:O Template Klasse hat man mir in dem anderen Forum auch geratten. Eigentlich bin ich ja noch mehr Anfänger als Profi, vondaher werfen sich mir nun einige Fragen auf.

Ich habe zwar schon in der letzten Zeit etwas über Klassen und Objekte gelesen, aber wie verhält sich das ganze nun mit Formularen und halt Fehlermeldungen in diesen selbst (Also Feld leer oder so)?
Und nun die zweite Frage erstmal wie würde ich dann den klassischen Aufbau:
if(Session == true)
{
... verarbeiten blabla
}
else
{
... Formular
}


Und gibt es irgendwo eine Seite wo das Umgehen mit Klassen und Objekten so erklärt wird, dass am Ende keine Fragen mehr bleiben?

Naja das war es ersteinmal. zwinkern user-158ke euch schon mal. lächeln

Gruß, user-282 lächeln

zwinkern Don't Panic! - Die Antwort lautet: 42
user-220
17.07.2007 16:37

Joa. Z.b.: php.net/oop oder oder oder. . . Kommt drauf an, welche PHP Version du nutzt. Bzw. Arbeiten möchtest.