Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Mittels php Seite aufrufen.

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
devolo01
PostRank 8
PostRank 8
Beiträge: 843
Registriert: 13.12.2008, 17:57

Beitrag von devolo01 » 24.07.2010, 17:25

Hi @ all

Stehe gerade etwas auf dem Schlauch. Und zwar möchte ich mittels PHP nach der Prüfung einer Bedingung automatisch eine neue Seite aufrufen lassen.

Sprich Beispiel:

Code: Alles auswählen

if ($wert = true) {
    öffne test.php;
}
else {
   echo 'Fehler bitte nochmal versuchen';
}
Entweder stehe ich nun gerade voll auf dem Schlauch, oder es gibt keine entsprechende Funktion. Daher meine Frage wie kann ich mittels PHP eine neue Seite Laden lassen?

Mittels header('Location:https://www.adressen.tld/geheim.htm'); komme ich leider nicht weiter, da die Bedingung am ende des Scripts geprüft wird.

VG und hoffe auf Feedback

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

daniel5959
PostRank 8
PostRank 8
Beiträge: 891
Registriert: 20.04.2010, 22:25

Beitrag von daniel5959 » 24.07.2010, 17:29

Hallo,

es darf nur noch keine Ausgabe gegeben haben, dann ist es egal ob header(...) am Ende des Codes steht.

Mal mehr Infos zum Script nennen, dann lässt sich evtl. eine Lösung finden.

daniel5959 :)

devolo01
PostRank 8
PostRank 8
Beiträge: 843
Registriert: 13.12.2008, 17:57

Beitrag von devolo01 » 24.07.2010, 17:45

Hi,

Jup das mit der Ausgabe ist mir bekannt, daher auch mein Problem.

Das Beim Script handelt ist der Aufbau wie folgt, da es mittlerweile mehr als 1000 Zeilen hat verzichte ich darauf es hier einzustellen :-).

Beim Aufruf des Scriptes werden Daten über MySQL in ein Formular eingeladen. Nun besteht die Möglichkeit entsprechende Daten zu ändern, die dann mittels Update in der DB Aktualisiert werden.

Nun wollte will ich mittels Bedingung ausgeben lassen, wenn das Update ohne Fehler ausgeführt worden ist auf eine neue Seite Springen zu lassen. Beim Fehler wird das Formular neu geladen.

Entweder stehe ich nun wirklich auf dem Schlauch oder ich habe Ihrgentetwas falsches eingegeben, da wenn ich in der Methode die URL Eingebe, wird nach bestätigen des Submit Buttons zwar gewechselt aber keine Prüfung durchgeführt.

VG

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


devolo01
PostRank 8
PostRank 8
Beiträge: 843
Registriert: 13.12.2008, 17:57

Beitrag von devolo01 » 24.07.2010, 19:01

So,

habe nun nach etwas Suchen eine passable Lösung für mich gefunden.

Lasse nun in der Bedingen wenn Sie erfüllt wird einfach einen html refresh ausgeben.

Code: Alles auswählen

echo '<meta http-equiv=refresh content="0; url=../index.php">';
zwar nicht die Schönste Lösung aber funktional :-).

Java Script kam bei mir leider nicht in Frage daher dieser umständliche weg.

Grüße

Pheidippides
PostRank 8
PostRank 8
Beiträge: 690
Registriert: 29.08.2007, 07:58
Wohnort: Marathon

Beitrag von Pheidippides » 24.07.2010, 19:29

So mache ich es auch, es scheint keine bessere Lösung zu geben.
Setze noch nach dem refresh ein exit;

Anonymous

Beitrag von Anonymous » 24.07.2010, 19:36

du kannst in PHP die gesamte Ausgabe erstmal abfangen und nach der Abfrage dann entweder die Ausgabe ausgeben oder eben eine weiterleitung auf die andere seite... optimal wäre eine weiterleitung auf eine leere seite die direkt ein metarefresh auf die Zielseite macht, so könnte der User nicht einfach versehentlich durch die zurück taste im browser die formulareingabe nochmal absenden...

infos: https://www.php.net/manual/de/ref.outcontrol.php

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 24.07.2010, 20:11

devolo01 hat geschrieben:So,

habe nun nach etwas Suchen eine passable Lösung für mich gefunden.

Lasse nun in der Bedingen wenn Sie erfüllt wird einfach einen html refresh ausgeben.
ich mach keine echo( $text );
sondern $content.=$text;

und er Echo kommt erst ganz am Ende
so kann ich überrall den "header" Befehl anwenden
Pheidippides hat geschrieben:So mache ich es auch, es scheint keine bessere Lösung zu geben.
Setze noch nach dem refresh ein exit;
Wenn doch Echos gemacht wurden,

kann man mit ob_start() dafür sorgen das diese nicht wirklich ausgegeben werden, sondern in einen Puffer
https://php.net/manual/de/function.ob-start.php
dann funktionierts auch mit dem HeaderBefehl obwohl vom Scriptcode schon Ausgaben gemacht wurden

devolo01
PostRank 8
PostRank 8
Beiträge: 843
Registriert: 13.12.2008, 17:57

Beitrag von devolo01 » 24.07.2010, 20:50

Vielen Dank euch nochmal,

werde mich in die Thematik der Output-Control-Funktionen einmal einlesen, und versuchen Es in Zukunft zu berücksichtigen.

ich mach keine echo( $text );
sondern $content.=$text;

Ansich eine super Idee, werde es mal versuchen beim nächsten Script entsprechend umzusetzen. Denke aber auch das hierfür ein komplettes Umdenken von meinen jetzigen Programmier Stiel notwendig ist.

VG

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 26.07.2010, 09:30

800XE hat geschrieben: ich mach keine echo( $text );
sondern $content.=$text;

und er Echo kommt erst ganz am Ende
so mach ichs auch meistens. erstmal den ganzen kram in einer variablen buffern (oder mehrere, z.b. fuer title und body) und dann diese variable an die entsprechende stelle auf der seite setzen. so kann man jederzeit umleiten, session setzen oder das script komplett abbrechen wenn was faul ist.

derHund
PostRank 5
PostRank 5
Beiträge: 296
Registriert: 08.01.2005, 14:39

Beitrag von derHund » 26.07.2010, 10:35

Normalerweise macht man das nicht per OB oder gar Meta-Refresh.

Wenn das Formular abgesendet wird und du die Daten geprüft hast, dann leitest du einfach bei gültigen Daten per header() weiter. Es hat vorher ja keine Ausgabe stattgefunden, was solltest du denn ausgegeben haben? Wenn du das Formular an sich selber sendest, kannst du dich bei ungültigen Daten sogar direkt auf den Inhalt vom POST beziehen.

Eingabe -> Verarbeitung -> Ausgabe lautet eigentlich das Prinzip, das dir ne Menge Ärger spart.

Dass du bei mehr als 1000 Zeilen, die die drei Teile mischen, Schwierigkeiten bekommst, kann ich nachvollziehen. Mit den Techniken meiner Vorposter machst du dir die Sache aber meiner Meinung nach nicht unbedingt einfacher.

Output Buffering (und ähnliche Techniken) sind, auch wenn es an dieser Stelle 'funktioniert', nicht für diesen Zweck vorgesehen.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag