Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Probleme mit PHP Script nach Umstellung von PHP Version 5.0.3 auf PHP Version 5.2.4

Empfohlene Antworten

Veröffentlicht

Hallo,

falls das Thema besser in ein anderes Forum passt, verschiebt mich bitte ;)

Also, ich habe ein für mich momentan unlösbares Problem, und hoffe Ihr könnt mir etwas weiter helfen.

Ich hatte Probleme mit einer meiner Website, weshalb mein Provider einen Serverwechel einiger meiner Domains vorgenommmen hat.

Jetzt sind meine Probleme anders, aber für mich unlösbar :(

Die Webseite, wo die Fehler auftreten ist folgende:

http://www.bridge-club-luedenscheid.de/de/ergebnisse/ergebnisse.php

Das Script sieht so aus:

<?
$seite_vorher = $_GET["seite"];
$bereich = "Ergebnisse";
include ("checkuser.php");
$titel = "Bridge Club Medardus";
$titel2 = "Ergebnisse";
$keyword = "Bridge, Bridgeclub, Club, Bridge Club, Lüdenscheid, Medardus, DVB, dbv, bridge, Karten, Kartenspiel, Bietbox, Mitchell, Howell";
$path = "../";
require ("../variablen.inc");
require ("ergebnisse.inc");
require ("../head.inc");
?>

<br><br>
 <font class="mittel-fett">Hier die Ergebnisse von:</font><br><br><br>
<table>
<tr>
<td>
<?
hrefintern ("20090429.php", "Mittwoch, dem 29.04.2009");
?>
<br><br>
</td>
</tr>
<tr>
<td>
<?
hrefintern ("20090427.php", "Montag, dem 27.04.2009");
?>
<br><br>
</td>
</tr>
<tr>
<td>
<?
hrefintern ("20090422.php", "Mittwoch, dem 22.04.2009");
?>
<br><br>
</td>
</tr>
<tr>
<td>
<?
hrefintern ("20090420.php", "Montag, dem 20.04.2009");
?>
<br><br>
</td>
</tr>
<tr>
<td>
<?
hrefintern ("ergebnisse_alt.php", "Ältere");
?>
<br><br>
</td>
</tr>
</table>

<?
require ("../foot.inc");
?>[/PHP]

foot.inc und head.inc könnt Ihr Euch hier anschauen:

http://www.bridge-club-luedenscheid.de/head.inc

http://www.bridge-club-luedenscheid.de/foot.inc

Von der Seite soll ein Script zum Login geladen werden, so der Besucher das noch nicht getan hat.

Die checkuser.php sieht folgendermaßen aus:

[PHP]<?php
session_start ();

$_SESSION["seite_vorher"] = $seite_vorher;

if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>

Die formular.php so:

<?
session_start ();
$bereich = "Ergebnisse";
$titel = "Bridge Club Medardus";
$titel2 = "Login";
$keyword = "Bridge, Bridgeclub, Club, Bridge Club, Lüdenscheid, Medardus, DVB, dbv, bridge, Karten, Kartenspiel, Bietbox, Mitchell, Howell";
$path = "../";
require ("../variablen.inc");
require ("ergebnisse.inc");
require ("../head.inc");
?>


<span class="mittel-fett">
Damit Sie sich einloggen können, müssen Cookies aktiviert sein.
</span>
<span class="mittel-fett-rot">
<br>
<?
hrefinternrot ("../cookies.php", "Hier");
?>
</span>
<span class="mittel-fett">
können Sie nachlesen wie sie Cookies aktivieren können.
</span>
<br><br>


<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
<?
$link = "<form action=\"";
$link .= "login.php";
$link .= "\" method=\"post\">";
?>
<br>
<span class="mittel-fett">Um die Ergebnisse einsehen zu können müssen Sie sich einloggen.<br>Geben Sie dazu bitte Ihre Zugangsdaten ein und klicken Sie auf 'Login':</span>
<? echo $link; ?>
<table>
<tr>
<td class="normal-fett">Name:</td>
<td><input tabindex="1" class="normal-fett" type="text" name="name" size="20" autocomplete="off"></td>
<td rowspan="2" valign="middle">     <input tabindex="3" class="button-normal" type="submit" value="Login"></td>
</tr>
<tr>
<td class="normal-fett">Kennwort:</td>
<td><input tabindex="2" class="normal-fett" type="password" name="pwd" size="20"></td>
</tr>
</table>

</form>
</body>
</html>
<?php
require ("../foot.inc");
?>[/PHP]

Die formular.php und die checkuser.php habe ich von einem externen bekommen, und liefen bisher auch ohne Probleme. Die formular.php habe ich natürlich mit meinen Felder angepasst, aber wieder gesagt, lief einwandfrei.

Die Fehlermeldung ist diese:

[PHP]Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/bridge-club-luedenscheid.de/httpdocs/de/head.inc:99) in /var/www/vhosts/bridge-club-luedenscheid.de/httpdocs/de/ergebnisse/checkuser.php on line 8

Wo liegt mein Problem, und wie kann ich das lösen?

Ich hoffe mir kann jemand helfen :(

LG Sabine

Die Fehlermeldung ist diese:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/bridge-club-luedenscheid.de/httpdocs/de/head.inc:99) in /var/www/vhosts/bridge-club-luedenscheid.de/httpdocs/de/ergebnisse/checkuser.php on line 8

Die Meldung bedeutet, dass Du den Header schon versendet hast und danach versuchst noch Daten des Headers zu manipulieren:

Als Bsp:


echo "<html>";
header(.....);
[/PHP]

würde genau den Fehler bringen. Schaue einmal bitte nach, wann Du wie, Informationen versendest, es wird irgendwo nicht die Reihenfolge korrekt sein. Get und Post Parameter solltest Du verarbeiten, bevor der Header versendet wird.

Phil

Vielleicht ein Tipp fuer dein naechstes Projekt mit PHP:

Generiere zuerst die HTML-Ausgabe und gebe sie erst nach Ablauf des Programmes an den Client ab. Die einzelnden HTML-Bausteine kannst du in Funktionen packen und so mehrmals verwenden. Den Rueckgabewert dieser Funktionen haengst du einer Variable an. Du kannst sie auch so erstellen das du zum Beispiel Arrays uebergibtst und dann die Funktion auch das Erstellen einer DropDown-Box uebernimmt. So hast du das aus deinem eigentlichen Programmcode raus und behaeltst besser die Uebersicht.

Beispiel:

$HTML_Kopf = $HTML_Kopf.HTML_Kopf($Eingabewerte, $Sprache);

$HTML_Suchleiste = ...

Vorteile:

- Du kannst einzelnde Elemente deiner Webseite trennen

- Die einzigen Funktionen die HTML-Code enthalten sind extra dafuer erstellt und du behaeltst so die Uebersicht

- Du kannst durch neue Funktionen weitere HTML-Elemente an die bereits generierten Ausgaben dranhaengen

- Du kannst die HTML-Variablen noch mal nachtraeglich Filtern (z.B. Zeichenfolgen in Smilis umwandeln, Zeichennotation in gewoehnliche Zeichen Umwandeln usw.)

- Die erstelltzen Variablen kannst du in einer HTML-Maske ausgeben

- Downloads lassen sich einfach realisieren

Und Vieles mehr! Dein Problem ist durch diese Vorgehensweise ausserdem ausgeschlossen ;)

Bearbeitet von FfFCMAD

Die einzelnden HTML-Bausteine kannst du in Funktionen packen und so mehrmals verwenden.

Dies halte ich bei einer Neuentwicklung für nicht mehr zeitgemäß. Hier würde mann doch eher auf ein OOP Konzept bzw Zend o.ä. setzen

Phil

Dies halte ich bei einer Neuentwicklung für nicht mehr zeitgemäß. Hier würde mann doch eher auf ein OOP Konzept bzw Zend o.ä. setzen

Phil

Ich bin bei meiner Aussage davon ausgegangen das man etwas selbst macht.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.