kostenloser Webspace werbefrei: lima-city


Header-Befehl hier auf Lima??

lima-cityForumlima-city Allgemeinlima-city Allgemein

  1. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Doch, hier auf Lima gehen header-Befehle (PHP).

    MfG lagerhaus

    //EDIT:
    - Hast du wirklich nichts nichts vorher ausgegeben (auch kein <.html.>) ? AUCH keine Cookies.
    - Richtige Syntax: header("Location: http://pointi....... ");
    - Richtige Adresse

    Beitrag ge?ndert am 10.10.2005 21:55 von lagerhaus
  4. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.


    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
  5. t*****b

    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.
  6. 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
  7. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.


    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

  8. 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 :wink:

    Beitrag ge?ndert am 10.10.2005 22:07 von lagerhaus
  9. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.



    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
  10. Also:

    Hier empfehle ich case. Da ich das aber nicht kann benutze ich dann immer if :biggrin:

    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 :wink:) 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
  11. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.


    Also:

    Hier empfehle ich case. Da ich das aber nicht kann benutze ich dann immer if :biggrin:

    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 :wink:) 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");
    }
    ?>
  12. 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
  13. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.


    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
  14. thoba

    Co-Admin Kostenloser Webspace von thoba

    thoba hat kostenlosen Webspace.

    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
  15. Autor dieses Themas

    pointi

    Kostenloser Webspace von pointi

    pointi hat kostenlosen Webspace.


    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
  16. 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.
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!