Header-Befehl hier auf Lima??
lima-city → Forum → lima-city Allgemein → lima-city Allgemein
aufruf
ausgabe
ausgeben
befehl
befehlen
beitrag
deswegen
dokument
erste
formular
gel
grad
login
pawort
skript
startseite
stehen
syntax
tip
zwischenspeicher
-
hi
kann es sein dass der header befehl hier bei lima nicht funktioniert??
hab ihn n?mlich jetzt schon ?fters getestet mit vielen verschiedenen seiten!
aber es kommt immer eine fehlermeldung, (cannot modify header information,...)
wei? da jemand mehr??
mfg
pointi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Doch, hier auf Lima gehen header-Befehle (PHP).
MfG lagerhaus
und warum gehts dann bei mir nicht?
habs ja (denk ich mal) richtig geschrieben, offline funktionierts ja auch ;)
header("Location: index.php");
&&
$header = "Location: registrieren.php?reg=1";
header($header);
die 2. version hab ich auch schon mal irgendwo verwenden m?ssen damits funktioniert hat, aber auch das geht ned :(
EDIT
was meinst du genau mit "nichts ausgegeben"??
Beitrag ge?ndert am 10.10.2005 21:58 von pointi -
Oh! Du musst den kompletten Pfad angeben!
Du darfst nicht relative Pfade angeben.
Deswegen habe ich (wegen Wechsel der Verzeichnisse) alle Header-Adressen in einer externen Datei (bei Bedarf includen), und nur die muss ich dann ?ndern.
MfG lagerhaus -
Du darfst keine Ausgaben (zB echos oder include) vor dem Aufruf haben und vor dem <?php wo das drin steht darf NICHTS stehen, nichtmals ein Leerzeichen.
uaaahhhhh
so n?schei? !
was mach ich jetzt blo??? jemand ne idee wie man das anders machen kann! ich will ja blo? dass man nach dem einloggen zur startseite geleitet wird und nach dem registrieren zum login!
EDIT
@lagerhaus
das mit den absoluten pfaden glaub ich nicht! denn ich hab selbst schon relative verwendet wos geht ;)
Beitrag ge?ndert am 10.10.2005 22:04 von pointi -
pointi schrieb:
Du darfst keine Ausgaben (zB echos oder include) vor dem Aufruf haben und vor dem <?php wo das drin steht darf NICHTS stehen, nichtmals ein Leerzeichen.
uaaahhhhh
so n?schei? !
was mach ich jetzt blo??? jemand ne idee wie man das anders machen kann! ich will ja blo? dass man nach dem einloggen zur startseite geleitet wird und nach dem registrieren zum login!
Vielleicht
<meta http-equiv="refresh" content="3; URL=startseite.html">
Dann wirst du in 3 Sekunden zu startseite.html geleitet.
Warum machst du nichts ein Extra-PHP-Skript, indem z.B. das Passwort gepr?ft wird, und dann wird weitergeleitet?
Du darfst includen und Befehle geben. Nur nicht ausgeben an den Browser (kein echo, kein print, kein cookie, keine sessions ... )
MfG lagerhaus
EDIT
@lagerhaus
das mit den absoluten pfaden glaub ich nicht! denn ich hab selbst schon relative verwendet wos geht ;)
Beitrag ge?ndert am 10.10.2005 22:04 von pointi
Hatte ich mal so gelesen. VIelleicht war das in einer alten PHP-Version...
Mist! Warum mach ich mir mehr Arbeit
Beitrag ge?ndert am 10.10.2005 22:07 von lagerhaus -
pointi schrieb:
Du darfst keine Ausgaben (zB echos oder include) vor dem Aufruf haben und vor dem <?php wo das drin steht darf NICHTS stehen, nichtmals ein Leerzeichen.
uaaahhhhh
so n?schei? !
was mach ich jetzt blo??? jemand ne idee wie man das anders machen kann! ich will ja blo? dass man nach dem einloggen zur startseite geleitet wird und nach dem registrieren zum login!
Vielleicht
<meta http-equiv="refresh" content="3; URL=startseite.html">
Dann wirst du in 3 Sekunden zu startseite.html geleitet.
Warum machst du nichts ein Extra-PHP-Skript, indem z.B. das Passwort gepr?ft wird, und dann wird weitergeleitet?
Du darfst includen und Befehle geben. Nur nicht ausgeben an den Browser (kein echo, kein print, kein cookie, keine sessions ... )
MfG lagerhaus
hm mit dem refresh wollt ichs wirklich nicht machen :)
ich habs ja im moment so dass alles in einem dokument passiert, also nachdem das formular abgeschickt wird wird einfach gefragt ob es abgeschickt wurde wenn ja werden die daten ausgewertet und halt in die db etc eingetragen, wei? nicht obs so ideal w?r wenn ich den quellcode poste, ist ja doch ne menge ;). muss mal schaun ob ich etwas ausgebe vorm header befehl, z?hlt das erst dann wenn ich wieder das formular abgeschickt hab oder von vorher auch noch?? fragen ?ber fragen, am besten ich probier mal ein wenig -
Also:
Hier empfehle ich case. Da ich das aber nicht kann benutze ich dann immer if
Naja, ich w?rde sagen, dass du zuerst pr?fst, ob du nichts vom Formular empfangen hast (als erstes: $HTTP_POST_VARS[-.-]; )
Wenn du nichts hast, dann kommt das Formular.
Wenn du alles hast, dann kommt (ohne Ausgabe vorher ) die Auswertung. Auch ohne Ausgabe. Ich vermute mal, dass Passwort wird md5 versch??sselt und dann vberglichen mit der DB, oder anders.
Wenn alles richtig ist, dann wird "geheadert". Da ja vorher das Formular nicht ausgegeben wurde (in diesem Durchgang) klappt der Header.
MfG lagerhaus -
Also:
Hier empfehle ich case. Da ich das aber nicht kann benutze ich dann immer if
Naja, ich w?rde sagen, dass du zuerst pr?fst, ob du nichts vom Formular empfangen hast (als erstes: $HTTP_POST_VARS[-.-]; )
Wenn du nichts hast, dann kommt das Formular.
Wenn du alles hast, dann kommt (ohne Ausgabe vorher ) die Auswertung. Auch ohne Ausgabe. Ich vermute mal, dass Passwort wird md5 versch??sselt und dann vberglichen mit der DB, oder anders.
Wenn alles richtig ist, dann wird "geheadert". Da ja vorher das Formular nicht ausgegeben wurde (in diesem Durchgang) klappt der Header.
MfG lagerhaus
lol^^ genau so hab ichs eigentlich!!
aber das design muss ja auch ausgegeben werden?
ach was ich poste jetzt mal den code!
<?php $reg = $_GET['reg']; if($reg!=1) { ?> <form name=eintragen method=post action='registrieren.php'> <input type='hidden' name='a' value='1'> <table width="300" class=tabelle0> <tr> <td>Name*</td> <td align="right"><input name=name type=text class=input value="" size=30></td> </tr> <tr> <td>Homepage</td> <td align="right"><input name=homepage type=text class=input value="" size=30></td> </tr> <tr> <td>E-Mail</td> <td align="right"><input name=email type=text class=input value="" size=30></td> </tr> <tr> <td>ICQ</td> <td align="right"><input name=icq type=text class=input value="" size=30></td> </tr> <tr> <td valign="top">Interessen</td> <td align="right"><textarea name=interessen class=input rows="5" cols="26"></textarea></td> </tr> <tr> <td>Passwort*</td> <td align="right"><input name=password type=password class=input value="" size=30></td> </tr> <tr> <td>Passwort Whdg*</td> <td align="right"><input name=password2 type=password class=input value="" size=30></td> </tr> <tr> <td colspan="2" align="right"><input class=button name='Submit' type='Submit' value='registrieren'></td> </tr> </table> </form> <?php if($a!="") { if(($name!='') && ($password==$password2)) { $sql = "SELECT * FROM user WHERE Name = '$name'"; $resultArray = mysql_query($sql); $row = mysql_num_rows($resultArray); if ($row > 0) { echo "Unter dem angegebenen Namen existiert leider schon ein Account!"; } else { $sql = "SELECT MAX(ID) FROM user"; $resultArray = mysql_query($sql); $row = mysql_fetch_array($resultArray); $anzuser = $row[0] + 1; $heute = date("Y-m-d"); $password_verschluesselt = md5($password); $sql = "INSERT INTO user VALUES('$anzuser','$name','$interessen','$homepage','$email','$icq','$password_verschluesselt','$heute','0','','')" or die ("geht ned"); //echo $sql; $resultArray = mysql_query($sql); $header = "Location: registrieren.php?reg=1"; header($header); } } else { echo "Du hast nicht alle notwenigen Felder ausgef?llt, oder zwei verschiedene Passw?rter angegeben!"; } } ?> <?php } else { echo "<table class=tabelle0><tr><td>Danke f?r deine Registration! Viel Spa? beim fadisieren! :-)<br>Du kannst dich nun im untenstehenden Formular mit deinen Daten einloggen!<br></td></tr></table>"; include("inc_login.php"); } ?>
-
Ich habe eine Idee:
Du hast geschreibselt:
$header = "Location: registrieren.php?reg=1";
header($header);
Die Syntax sieht aber so aus:
header(" Location: ... ");
Da gibts nochmal die Anf?hrungszeichen ( " ).
Deswegen kann er die Header-Information nicht verstehen.
Wenn es schon eine Ausgabe gab, w?rde da "Header already been send" stehen.
Sorry, ist mir eben grad aufgefallen.
MfG lagerhaus
//EDIT: Also so sollte es aussehen:
header(" $header ");
Beitrag ge?ndert am 11.10.2005 00:21 von lagerhaus -
Ich habe eine Idee:
Du hast geschreibselt:
$header = "Location: registrieren.php?reg=1";
header($header);
Die Syntax sieht aber so aus:
header(" Location: ... ");
Da gibts nochmal die Anf?hrungszeichen ( " ).
Deswegen kann er die Header-Information nicht verstehen.
Wenn es schon eine Ausgabe gab, w?rde da "Header already been send" stehen.
Sorry, ist mir eben grad aufgefallen.
MfG lagerhaus
//EDIT: Also so sollte es aussehen:
header(" $header ");
Beitrag ge?ndert am 11.10.2005 00:21 von lagerhaus
hm das macht keinen unterschied :(
EDIT
Die gesamte fehlermeldung nochmal:
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/pointi/html/_fad/inc_layout_1.php:10) in /home/webpages/lima-city/pointi/html/_fad/inc_login.php on line 41
Beitrag ge?ndert am 11.10.2005 17:02 von pointi
EDIT 2
habs jetzt anders gel?st, mit zwei weiteren dateien!
anzusehen unter: http://pointi.milten.lima-city.de/_fad
Beitrag ge?ndert am 11.10.2005 18:09 von pointi -
Auch wenn du das Problem jetzt schon gel?st hast, gebe ich dir einen Tip f?r's n?chste Mal. Du musst die Header ausgaben zwischenspeichern.
Das tust du, indem du in die Zeile 1 "ob_start();" und in die allerletzte Zeile des Dokumente "ob_end_flush();"schreibst. Damit w?re dein Problem gel?st gewesen.
Ich habe den Tip von Alopex erhalten. Weiter Info's, gibt es hier: http://de.php.net/manual/de/function.ob-start.php
Beitrag ge?ndert am 11.10.2005 18:17 von thoba -
Auch wenn du das Problem jetzt schon gel?st hast, gebe ich dir einen Tip f?r's n?chste Mal. Du musst die Header ausgaben zwischenspeichern.
Das tust du, indem du in die Zeile 1 "ob_start();" und in die allerletzte Zeile des Dokumente "ob_end_flush();"schreibst. Damit w?re dein Problem gel?st gewesen.
Ich habe den Tip von Alopex erhalten. Weiter Info's, gibt es hier: http://de.php.net/manual/de/function.ob-start.php
Beitrag ge?ndert am 11.10.2005 18:17 von thoba
mist h?tt ich das fr?her gewusst h?tt ich mir einiges an kopierarbeit sparen k?nnen^^
naja und zwei dateien auch noch,... *G*
nee jetzt funktionierts und es ist auch gut so!!
danke auf jedenfall an alle die mit geholfen haben oder wollten!
EDIT
scheint doch nicht so zu funktionieren hab die zwei funktionen an anderer stelle ausprobiert - ging aber nicht!!
Beitrag ge?ndert am 11.10.2005 18:24 von pointi -
oder du kannst es so machen, wie ich:
Du schreibst anstelle von
echo
immer
$ausgabe.='neuer Ausgabetext';
Und so klebst du dann die gesammte Ausgabe hintereinander zu einer Variable, die du dann erst ganz zum Schluss ausgibst. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage