PHP Skript läuft nach Apache Update nicht mehr

atlantyz

Erfahrenes Mitglied
Hallo zusammen,

ich habe letzte Woche meinen Webserver auf Ubuntu 14.04 geupdatet und in dem Zuge natürlich auch den Apache auf Version 2.4.7 und PHP auf Version 5.5.9 geupdatet.

Nun läuft auf meinem Webserver aber mein selbst geschriebenes Admin- Interface nicht mehr, ich bekomme immer die Meldung: Syntax Error - Unexpected End of File. Bis vor dem Update lief alles noch, ich finde auch einfach keinen Fehler.

Kann jemand von euch einmal drüber schauen und gucken, ob irgendwas fehlt? Eine Klammer, ein Semikolon, irgendwas?
Was mich wundert: der Apache war ja schon immer zickig, wenn man was vergessen hat, daher wundert es mich, dass das Skript erst seit dem Update nicht mehr läuft.

PHP:
<?php
session_start();
include_once "../global/funktionen.php";

if (isset($_POST["login"])) {

db_connect();
$sqlab = sprintf("select * from bearbeiter where name = '" . $_POST["ben"] . "' and passwort = '" . sha1($_POST["pass"]) . "'",
        mysql_real_escape_string($_POST["pass"]),
        mysql_real_escape_string($_POST["ben"]));

    $res=@mysql_query($sqlab); // Fehlermeldungen mit @ unterdrücken
    $num=@mysql_num_rows($res); // keine Ãœbereinstimmung von Anmeldeinfo und Daten darf keinen SQL Fehler ausgeben
//echo $sqlab;
if ($num !=0) {

$_SESSION["id"] = mysql_result($res,0,"id");

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <title>Teamspeak3-4you.de Adminbereich</title>
    <meta name="author" content="Joanne Schloss, Copyright JS-Webdesign.de">
    <meta name="keywords" content="Teamspeak3, Teamspeak 3, Teamspeak 3 mieten">
    <meta name="robots" content="all">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href = "../global/ts.css"  />
    <link rel="stylesheet" type="text/css" href = "../global/formulare.css"  />
    <link rel="stylesheet" type="text/css" href = "./global/button.css"  />
    <link href='http://fonts.googleapis.com/css?family=Karla' rel='stylesheet' type='text/css'>
    <script type="text/javascript" src = "../global/js/lib.js"></script>
</head>
<body>
<div id = "wrapper">
    <div id = "main">
        <div class = "schrift">
            <div id = "header">
                <img src = "../global/gfx/header.png">
            </div>
            <div id = "status">
                <div id = "info">
                    Willkommen im Admin- Bereich!
                </div>
                <div id = "button">
                <input type = "button" class = "btnlogout" value = "Logout" onclick = "location.href='logout.php'">
                </div>
            </div>
            <div id = "navi">
                <ul>
                    <li id ="active">&Uuml;bersicht</li>
                    <li><a href = "bestellung.php?status=1" target = "webcontent" onclick = "link('navi_laden.php?navi=offen', 'navi');">Neue</a></li>
                    <li><a href = "bestellung.php?status=5" target = "webcontent" onclick = "link('navi_laden.php?navi=aenderung', 'navi');">&Auml;nderungen</a></li>
                    <li><a href = "bestellung.php?status=2" target = "webcontent" onclick = "link('navi_laden.php?navi=aktiv', 'navi');">Aktive</a></li>
                    <li><a href = "bestellung.php?status=3" target = "webcontent" onclick = "link('navi_laden.php?navi=storniert', 'navi');">Storniert</a></li>
                    <li><a href = "bestellung.php?status=4" target = "webcontent" onclick = "link('navi_laden.php?navi=eis', 'navi');">Auf Eis</a></li>
                    <li><a href = "kunden.php" target = "webcontent" onclick = "link('navi_laden.php?navi=kunde', 'navi');">Kunden</a></li>
                </ul>
            </div>
            <div id = "content">
                <iFrame name = "webcontent" src = "uebersicht_bestellungen.php" width = "100%" height = "400px" frameborder = "0">

                </iFrame>
            </div>
            <div id ="footer">
                <p>&copy; by JS-Webdesign 2012</p>
            </div>
        </div>
    </div>
    <div id ="lightbox" class = "schrift">

    </div>
</div>
</body>
</html>
<?}
else { echo "Du kommst hier nicht rein";  }} else { ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Teamspeak3-4you.de Adminbereich</title>
<meta name="author" content="Joanne Schloss, Copyright JS-Webdesign.de">
    <meta name="keywords" content="Teamspeak3, Teamspeak 3, Teamspeak 3 mieten">
    <meta name="robots" content="all">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href = "../global/ts.css"  />
    <link rel="stylesheet" type="text/css" href = "../global/formulare.css"  />
    <link href='http://fonts.googleapis.com/css?family=Karla' rel='stylesheet' type='text/css'>
    <script type="text/javascript" src = "../global/js/lib.js"></script>
</head>
<body onload="self.focus();document.login.ben.focus()" >
<div id = "main">
    <form name = 'login' action="index.php" method= "post">
        <fieldset id = "login_form">
        <legend>Loginseite Teamspeak3-4you.de</legend>
    <ul>
        <li>
            <label for="benname">Benutzer</label>
            <input name="ben">
        </li>
        <li>
            <label for="password">Passwort</label>
            <input type="password" name="pass">
        </li>
        <li>
            <input type="submit" name="login" value="Einloggen" class = "btnSend">
            <input type ="button" name = "cancel" value="Abbrechen" class = "btnCancel" onclick = "location.href='../index.php'">
        </li>
    </ul>
    </fieldset>
</form>
    </div>
</body>
</html>
<?}?>
 
Hallo atlantyz

Das erste Problem ist schon mal, dass du das veraltete MySQL-Interface verwendest, steht ja auch in der Dokumentation, z.B. http://php.net/mysql_result
Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wird in der Zukunft entfernt werden. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und denzugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

Viele Grüsse
Cromon
 
Hi,

ich denke mal dass die Short-Open-Tags (<?) nicht mehr aktiv sind. Ersetze die mal durch die "normalen" (<?php)

Grüsse,
BK
 
Cromon, vielen Dank für deine Antwort, aber das ist schonmal nicht das Problem, weil die Funktion ja noch unterstützt wird. Alle anderen Skripts laufen ja auch noch, nur die index.php von meinem Admin- Interface wirft diese Meldung. Ich werde sicher aber in ferner Zukunft auf Mysqli umsteigen und kann dann auch die Funktionen umbasteln.

Braktkartoffel, die Short- Open- Tags habe ich jetzt ersetzt, Fehlermeldung bleibt. Die index.php meiner eigentlichen Webseite wirft auch - trotz Short- Open- Tags - nicht eine solche Fehlermeldung. :-(
 
aber das ist schonmal nicht das Problem

Nein, die Funktionen werden mit php 5 nicht unterstützt, sie sind als deprecated markiert und es wird auch entsprechend ein Fehler generiert, wenn du auf eine Datenbank verbindest, nämlich E_DEPRECATED. Also kurz gesagt: Es ist nicht das Problem des Threads, aber ein massives Problem deines Skripts.
 
Cromon, das ist Blödsinn, die Funktionen werden mit PHP 5 noch unterstützt und ich bekomme auch keine Fehlermeldung, wenn ich mich auf die Datenbank verbinde.

Aber ich habe das Problem gefunden: es sind fehlende Leerzeichen in der letzten Zeile. <?}?> aneinander geschrieben geht nicht mehr.
Vielen Dank für eure Hilfe.
 
Cromon, das ist Blödsinn, die Funktionen werden mit PHP 5 noch unterstützt
Nein. Und wenn du keine Fehlermeldungen hast ist deine
gesamte Installation für Entwicklungszeug nicht richtig eingestellt.

Aber jedem das Seine... das sind dann die Webseiten, die jeder mit etwas Grundlagenwissen leicht übernehmen kann.
 
Liegt wohl daran, dass es ein Livesystem und keine Entwicklungsumgebung ist. Das ist auch überhaupt nicht das Problem in meinem Post. Ich wollte lediglich wissen warum das Skript nicht läuft und das hatte ja wohl jetzt mit dem Datenbankzugriff überhaupt nichts zu tun, dass Apache in der neuen Version unbedingt Leerzeichen zwischen den Open- Tags und den Klammern braucht. Ich werde auch den Teufel tun und jetzt die Datenbank Zugriffe auf meinem Livesystem umstellen, nur weil Ubuntu 14.4 unbedingt PHP 5.5 installieren musste. Solange es noch läuft, läuft es.

Aber schön, dass wenigstens einer sich die Mühe gemacht hat auf meine Frage zu antworten (Bratkartoffel), während die anderen wieder nur schwafeln und nichts konstruktiv zu der Fehlermeldung beitragen.
 
Zurück