PHP-Einsteiger bekommt die Seite einfach nicht online

Ludvigo

Grünschnabel
Hi!

Ok fang ich mal von vorne an. Erstmal ich hab grad erst mit php angefangen. Hab mich vorher schon viel mit Html beschäftigt und irgendwann ist (grade als Fachinformatiker für systemintegration) php auch unabdingbar.

Da ich leider wenige leute kenne, die es können, habe ich es mir selbst beigebracht, und zunächst ein paar "lokal" seiten mit hilfe von Xammp erstellt.

Nun haben wir in der Berufsschule ein Projekt, in dem wir eine Internetseite stellen wollen, auf der nur eben ein username und ein passwort auf ausgegeben werden soll.
Danach wird der Entsprechende user in der Mysql datenbank auf aktiv gesetzt (spalte aktiv wird von 0 auf 1 gesetzt).

Ich habe die Seite wieder local geschrieben, und mit xammp getestet, und es lief auch alles wunderbar.

Dann der erste Versuch, die Seite ins Internet zu stellen:
Ich habe mich bei Tripod registriert, die Datenbanken eingerichtet (id, username, passwort, timestamp, aktiv) die Seite auf die Daten von Tripod eingerichtet (username usw. für mysql) und die Seite hochgeladen.. und ich bekam.... nichts.. eine weiße seite.

Also bin ich ins dazugehörtige forum, hab mein problem geschildert. Angebliche lösung, anderer Webspace, da Tripod nicht alles unterstützt.

Also hab ich auf meinen eigenen Webspace zurückgegriffen, den ich mir mit einer .de domain vor jahren gekauft habe.

Alles eingerichtet, hochgeladen.... das selbe problem.. eine weiße seite...
Der support sagt er hilft nicht bei Programmier Problemen.

Also hab ich erstmal geschaut ob eine seite nur mit <?php phpinfo() ?> funktioniert.

Tut sie.

Also nochmal mein Script genommen, ein phpinfo() direkt an den anfang gestellt.... und immernoch nur eine weiße seite...

ich weiß so langsam nicht mehr weiter...

ich versuch jetzt schon seit 2 wochen diese seite hoch zu bekommen, und komm einfach nicht weiter. Und finde keinen der mir helfen kann... vielleicht hat einer von euch ja eine Idee.

Hier mal der Quellcode (hab natürlich die logindaten der mysql datenbanken verändert )
PHP:
<?php
$db = @new mysqli("localhost", "", "", "test");
if (mysqli_connect_errno()) {
    die('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno(  ).')');
}
 else {
    $sql = 'SELECT
                user,
                passwort
            FROM
                software1
            WHERE
                active=0
            ORDER BY
                id
            LIMIT
                1';
    $result = $db->query($sql);
    if (!$result) {
        die('Der Query konnte nicht ausgeführt werden: '.$db->error);
    }
                            if ($result->num_rows) {
        while ($row = $result->fetch_assoc()) {
            echo '<div class="beitrag">'."\n";
            echo '<span class="user">'.htmlspecialchars($row['user'])."</span>\n";
            echo '</a>';
            echo "    <p>\n";
            echo nl2br(htmlspecialchars(preg_replace('~\S{30}~', '\0 ', $row['passwort'])));
            echo "    </p><hr>\n";
            echo "</div>\n";
        }
        
    }
        else {
        echo '<p class="info">Es konnte kein freier User mehr gefunden werden!</p>';
    }
}
$db = @new mysqli("localhost", "", "", "test");
$active="1";
if (mysqli_connect_errno()) {
    die('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno(  ).')');
}

    $sql = 'Update software1
                set active=1
            Where active=0
            Limit 1';
    $stmt = $db->prepare($sql);
    if (!$stmt) {
        die ('Es konnte kein SQL-Query vorbereitet werden: '.$db->error);
    }
    $stmt->bind_param('i', $active);
    if (!$stmt->execute()) {
        die ('Query konnte nicht ausgeführt werden: '.$stmt->error);
    }
?>




so und hier nochmal die php info^^

http://lordvigo-ddl.de/ise71projekt/test.php
 
Die Lösung ist recht einfach: Du hast in der phpinfo() eine Ausgabe

a) welche PHP-Version verwendet wird
b) welche Extension (Erweiterungen) verfügbar sind.

Da du PHP4 auf der phpinfo ausgegeben hast, ist es auch relativ klar, warum die Seite nicht funktioniert. MySQLi ist eine Erweiterung, die erst mit PHP5 Einzug gehalten hat. Nachlesen kannst du das hier: http://de.php.net/manual/de/mysqli.installation.php

Desweiteren wäre zu erwähnen, das die im Test-Zeitraum keinesfalls ohne Fehler-Ausgabe arbeiten solltest:

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

..... weiterer PHP Code
?>

Das @-Zeichen vor einem Befehl unterdrückt die Fehler-Ausgabe. "new mysqli()" wird mit sehr hoher Wahrscheinlichkeit auf deinem Web-Space fehlschlagen. Das gleiche wird wahrscheinlich auch bei Tripod der Fall sein.

Du hast nun 3 Möglichkeiten:
1. Du fragst den Provider deines Webspaces, ob du PHP5 mit MySQLi-Erweiterung bekommen kannst.
2. Du schreibst den Code so um, das nur die PHP4-kompatiblen Befehle verwendet werden.
3. Du schreibst dir eine mysqli-Klasse in PHP, welche die Funktionalität der MySQLi-Schnittstellen nachbildet. Möglicherweise kannst du das hiermit erreichen: http://phpclasses.mirrors.php-homepage.de/browse/package/4837.html

 
Zurück