Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
05.12.10, 14:36
|
#1
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
PHP Fehler nach Umzug
Hallo,
google hilft mir auch nicht mehr weiter und ich hoffe ihr könnt mir bei folgendem Problem helfen:
ich habe mir eine kleine Website gebastelt die auch so funktioniert wie sie soll. Sie liegt momentan noch bei funpic. Ich habe mir nun aber einen vServer gemietet. Darauf läuft apache2. Wenn ich jetzt die Seite auf diesen kopiere bekomme ich beim einloggen immer die Fehlermeldungen:
Code:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/ftp_upload/index.php:13) in /var/www/ftp_upload/geschuetzt/login_pruefen.php on line 21
Warning: Cannot modify header information - headers already sent by (output started at /var/www/ftp_upload/index.php:13) in /var/www/ftp_upload/geschuetzt/login_pruefen.php on line 22
An den entsprechenen Stellen in login_pruefen.php sollen einfach nur 2 cookies gesetzt werden und in index.php wird an der Stelle ein Bild eingebunden.
Ich hoffe ihr könnt mir helfen und ich habe euch alle nötigen Informationen gegeben.
|
|
|
05.12.10, 15:20
|
#2
|
Stammi
Registriert seit: Jan 2010
Beiträge: 1.142
Bedankt: 1.457
|
kommst Du an den alten Server noch ran oder kennst einfach so die php version, die dort gelaufen ist ?
hlrt sich danach an als wärst Du jetzt auf einer neueren php version oder in der php.ini jetzt ist etwas deaktiviert, das es vorher nicht war.
ein anderer grund können auch zugriffsrechte auf einer datei sein, die du evtl. innerhalb der index.php versuchst zu benutzen. greifst Du auf eine Datei zu also lesen schreiben etc. ?
|
|
|
05.12.10, 15:41
|
#3
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
Ja ich komm an den alten Server noch ran hier mal ein Aufruf von phpinfo() auf dem alten Server:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
und hier vom neuen:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
index.php selber greift auf keine Datei zu außer die die sie includen soll. In dem Fall die login_pruefen.php greift auf eine Textdatei wobei ich für die Datei testweise mal CHMOD 777 gesetzt habe.
|
|
|
05.12.10, 19:14
|
#4
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Die Fehlermeldung besagt, dass Du schon die Headerdaten abgesendet hast und nun versuchst weitere hinzuzufügen.
Warum es auf dem einen Server klappt und auf dem anderen nicht, kann daran liegen, das entweder der Apache bereits einen Handler hat womit er die Daten sendet (was aber eher unwahrscheinlich ist) oder Du einen Fehler im S***** hast und die Header z.B. in der index.php bereits abgesendet hast und nun in der login...php den Header um die Cookie-Einträge zu erweitern versuchst.
|
|
|
05.12.10, 19:31
|
#5
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
Ja die Header werden schon in index.php gesendet soweit ich das erkennen kann aber auf dem neuen Server sind ja exakt die gleichen Dateien wie auf dem Alten. Hast du oder jemand anders eine Lösung dafür oder muss ich jetzt das ganze Loginskript umbauen?
|
|
|
05.12.10, 19:43
|
#6
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Sende die Headerdaten ab, nachdem Du aus dem Aufruf zur Deiner login_pruefen.php zurückkommst. Das sollte das Problem lösen.
|
|
|
05.12.10, 19:49
|
#7
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
Sorry wenn ich mich gerade ein bisschen blöd anstelle aber wie sende ich die Header daten denn am Ende ab? Hier mal meine index.php:
PHP-Code:
<?php session_start(); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!-- Seitenkopf -->
<img id="kopf" src="images/Webablage.png" onclick="http://revolutionfight.re*****pic.de/"/>
<!-- Seitenkopf dem sein Ende -->
<div id="menue" align="center">
<table border="0" align="center" height="top">
<tr><td>
<a href="index.php?page=home.php"><img src="images/button_home2.png" alt="Home" border="0" width="95%" height="32%"/></a>
</td><td><a href="index.php?page=Download.php"><img src="images/button_downloads2.png" alt="Downloads" border="0" width="95%" height="32%"/></a>
</td><td><a href="index.php?page=geschuetzt/upload.php"><img src="images/button_upload.png" alt="Upload" border="0" width="95%" height="32%"/>
</td><td><a href="index.php?page=geschuetzt/login.php"><img src="images/button_geschuetzter_bereich2.png" alt='Geschuetzter Bereich' border="0" width="95%" height="32%"/></a></td></tr>
</table>
</div>
<!-- menü ende -->
<div id="loginbox">
<?php
//wenn eingeloggt, ausloggen button anzeigen
if($_COOKIE['login']=="XXXXX")
{
$username = $_COOKIE['username'];
echo ('<br><br>Hallo, '.$username.'.');
echo('<form action="index.php?page=geschuetzt/logout.php" method="POST"><input type="submit" value="Ausloggen"></form>');
}else{
include('geschuetzt/login.php');
}
?>
</div>
<!-- Seiteninhalt -->
<div id="inhalt">
<?php
//wenn ?page nicht gesetzt include home.php sonst include ?page
$_page = $_GET['page'];
if ($_page==""){
include("home.php");
} else {
echo '';
include ($_page);
echo '';
}
?>
</div>
<div id="copyright">
<p>© by Alexander Hurtado</p>
</div>
<!-- seiteninhalt ende -->
</body>
</html>
Ich hoffe du kannst mir damit weiter helfen.
|
|
|
05.12.10, 20:24
|
#8
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Überlege mal selbst, wie Du das machen kannst. Ein Webserver gibt immer zu allererst den HTTP-Header aus. In dem Header stehen unter anderem die Cookies, die der Browser setzen soll.
Danach gibt er das eigentliche HTML-Dokument aus. Du sendest jedoch schon die Header, danach ein Teil des HTML-Dokuments und versuchst mit Deiner login-Routine, weitere Header zu setzen, was aber nicht geht.
Das heißt, alles was Du im HTTP-Header hinzufügen willst, muss an den Anfang. Und erst danach kommt das HTML-Dokument.
|
|
|
05.12.10, 20:33
|
#9
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
Ok dann bin ich jetzt genau so weit wie vorher. Ichd achte es gibt irgendeinen Trick das zu umgehen oder so. Ich werde das ganze dann wohl anders lösen müssen. Naja trotzdem danke.
|
|
|
05.12.10, 23:24
|
#10
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
das wird zu 95% an dem error_reporting von php liegen. der neue server verhält sich anders als der neue.
probier mal als _erste_ php-anweisung:
Code:
error_reporting (22519); // <- der wert vom alten server lt. phpinfo()
// oder
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING);
// oder
error_reporting(E_ALL & ~E_NOTICE);
// oder kombinationen
siehe auch [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
entropie erfordert keine wartung
|
|
|
05.12.10, 23:25
|
#11
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Das dürfte aber sein Problem nicht lösen, dann wird die Fehlermeldung unterdrückt, aber das Cookie dennoch nicht gesendet?
|
|
|
06.12.10, 16:32
|
#12
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
Also erstmal danke für deinen Hilfeversuch aber Xalir hat Recht. Der Fehler wird nur unterdrückt und Cookies werden trotzdem nicht gesetzt. Ich hab auch alle möglichen Kombinationen der Befehle ausprobiert.
|
|
|
06.12.10, 17:15
|
#13
|
Anfänger
Registriert seit: Apr 2010
Beiträge: 7
Bedankt: 1
|
So habs jetzt geschafft.  Ich hab jetzt einfach die Seiten auf denen cookies gesetzt werden alleine aufgerufen und nicht über die index.php included. Jetzt werden vorher keine Header mehr gesendet und die Cookies werden ordnungsgemäß gesetzt.
Danke nochmal an alle, die mir geholfen haben.
Von mir aus kann jetzt hier geschlossen werden.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.
().
|