PDA

Vollstndige Version anzeigen : Verlinkungs problem???HELP ME !!!


SK85
17-06-2004, 09:52
Hi,

will nach ablauf eines skriptes und dessen auswertung in ein weiters per Link gehen ohne aber das ich diesen dann bettigen msse (Automatisiert).

bin fr alle TIPs offen

RDJ
17-06-2004, 10:13
Es funktioniert mit Header

Header ("Location: http://www.google.de"); // Beispiel

Allerdings darf vor aufruf, bzw. senden des Headers keine Ausgabe an den browser erfolgen

http://de3.php.net/manual/de/function.header.php

Zitat php.net
Anmerkung: Die HTTP Status Header Zeile wird immer die erste zum Client gesendete sein, egal ob der aktuelle header() - Aufruf der erste ist oder nicht. Der Status kann mittels header() jederzeit mit einer neuen Statuszeile berschrieben werden, es sei denn, dass die HTTP Header bereits gesendet wurden.


Ansonsten kannst du s mit JavaScript lsen

Gru RDJ

SK85
17-06-2004, 10:26
sorry verstehe ich nicht was msste ich schrieben wenn ich an den Punkt angekommen bin

echo "<FORM ACTION='self_php' METHOD='post'>";
if(a==1)
{
...Link...
}
else
{
... Anweisungen...
}
echo "<INPUT TYPE="submit" VALUE="Abspeichern">


und wie weiter

RDJ
17-06-2004, 10:39
Also da wird Header nicht mehr funktionieren, da du mit echo ''
schon einen Header an den User (Browser) sendest....

Hab ich dich berhaupt richtig verstanden ?

Du willst dann auf eine andere url / link springen wenn ein ereigniss eintrifft?

Wenn du aber eine Datei einbinden willst

hilft dir ein include ();

http://de3.php.net/manual/de/function.include.php

SK85
17-06-2004, 10:43
JA, ich will dann auf eine andere url / link springen wenn ein ereigniss eintrifft!!!


eine Datei in dem Sinne will ich nicht ein binden.

Danke

RDJ
17-06-2004, 11:17
wie gesagt, dann musst du mit JavaScript arbeiten, da du bereits mit echo einen Header an den Browser sendest

feuervogel
17-06-2004, 13:09
nein muss er nicht.

du kannst mit header( "location:./index.php?prgm=irgendwas" ); verweisen, wenn davor noch kein output an den browser stattgefunden hat.

so.

du schreibst in die erste zeile des scriptes

ob_start( "ob_gzhandler" );

das muss, falls du mit sessions arbeitest vor session_start.

in die letzte zeile schreibst du nun:

ob_end_flush();

mit der ersten zeile wird dein output komprimiert und erst mit ob_end_flush gesendet. somit kannst du zwischendurch schn mit header den benutzer auf ne andere seite verweisen.

RDJ
17-06-2004, 15:25
du kannst mit header( "location:./index.php?prgm=irgendwas" ); verweisen, wenn davor noch kein output an den browser stattgefunden hat.


Meine Rede... ich hab auch nix anderes gesagt...

und wie ich seinen quellcode verstanden hab, sollte zwischen der ausgabe eine "verlinkung" stattfinden .... und dat geht net !


Gugst du :

echo "<FORM ACTION='self_php' METHOD='post'>";
if(a==1)
{
...Link...<-- Hier sollte der Header(Location blablpp stehen
}
else
{
... Anweisungen...
}
echo "<INPUT TYPE="submit" VALUE="Abspeichern">

SK85
18-06-2004, 10:19
Kann mir jemand bitte noch einen Linke schicken fr mich sind das alles bmische Drfer

Danke

feuervogel
18-06-2004, 10:40
@rdj und sk85:

rdj, teste mal bitte beide folgende scripte, sk85, hoffentlich verstehst du anhand der bsps was ich meine:

1. bsp.:


<?php
echo "hallo welt";

header( "location:./index.php" );
?>


gibt fehlermeldung "headers already sent...blabla..."

so, 2. bsp.:


<?php
ob_start( "ob_gzhandler" );

echo "hallo welt";

header( "location:./index.php" );

ob_end_flush();
?>


geht, da erst in der letzten zeile der output an den browser gesendet wird.

RDJ
18-06-2004, 11:37
Ja gut es funktioniert, aber ich kriege mein "hallo Welt" ja dann nicht mehr zu sehen... und das ist ja wiederrum das selbe...

du unterdrckst die ausgabe an den browser damit du einen Header (und jetzt kommts ;-)) als erstes senden kannst...

Einigen wir uns an der Tatsache dass vor dem Header ("")
Nichts ! an den browser gesendet werden darf, ok ?

feuervogel
18-06-2004, 18:14
@rdj: jups, ich hab ja auch nie was andres behauptet, ging mir nur um den satz:

Also da wird Header nicht mehr funktionieren, da du mit echo ''
schon einen Header an den User (Browser) sendest....

:) man kann halt umgehen, dass echo was an den browser sendet...

SK85
20-06-2004, 11:58
hi hoffe ihr knnt mir nochmal weiter helfen habe die
echo "<FORM ACTION='self_php' METHOD='post'>";
echo "<FORM ACTION='self_php' METHOD='post'>";
if(a==1)
{
...Link...
}
else
{
... Anweisungen...
}
echo "<INPUT TYPE="submit" VALUE="Abspeichern">

genommen habe aber ein weiters Problem das ich vor her eine datensatz aus einer Tabelle auslesen muss und das aber zu fehler fhrt weil er es ja jedes mal wieder tut

bitte helft mir nochmal

feuervogel
20-06-2004, 21:00
ich kapier wirklich nicht, was das hier soll:

echo "<FORM ACTION='self_php' METHOD='post'>";

echo "<FORM ACTION='self_php' METHOD='post'>";

und zweitens:

>das ich vor her eine datensatz aus einer Tabelle auslesen muss und das aber zu fehler fhrt weil er es ja jedes mal wieder tut

wo vorher liest du einen datensatz aus? wieso erzeugt das nen fehler? und wenn das jedesmal wieder passiert, machs doch einfach nicht...