Frage von RaceShafter, 59

Warum funktioniert das PHP local, aber online nicht?

Ich programmiere z.Z. local eine Website. Und gerade habe ich sie auf meinen Webhost hochgeladen, da funktioniert etwas nicht. Und zwar folgendes: http://pastebin.com/6AYezYMh

Der Code soll für eine Matheaufgabenerstellung sein. Local macht er das. Eine Aufgabe kommt und er übernimmt das Ergebnis als Session. Online nicht. Habe versucht cal1, cal2 und equal über echo auszulesen, aber es wird nichts angezeigt. Somit übernimmt der das gar nicht. Anscheinend funktioniert der Code nicht. Was läuft da falsch?

Antwort
von Flash8acks, 27

Ist die Ablage deines PHP Script korrekt? Ist PHP aktiv auf deinem content? Wenn es lokal funktioniert und Online nicht, dann liegt es oft an dem Ordner/Pfad auf dem du das PHP-Script ablegst. (ggf. auch Berechtigungen auf zu schreibende Objekte?)

Kommentar von RaceShafter ,

Ja, die Ablage und alle Verlinkungen stimmen. PHP ist aktiv, ja. Sonst würde der ja nichtmal die Seite importiere. Habe alles so hochgeladen, wie ich es lokal hatte.

Kommentar von RaceShafter ,

Habe herausgefunden, dass die Funktion ihre Sache macht. Es wird eine Zahl generiert. Aber dann anscheinend nicht via Session übertragen. Und gestartet ist die Session schon.

Antwort
von xGlumi, 17

PHP-Version deines Localhosts und die des Servers?

MFG xGlumi

Kommentar von RaceShafter ,

Server: 5.6.23

Local: XAMPP: 7.0.8

Antwort
von PeterKremsner, 27

Schalte mal das Error Logging ein:

einfach die beiden Zeilen zuerst ins Script.

error_reporting(E_ALL);
ini_set('display_errors', '1');

Danach solltest du eventuell Fehlermeldungen sehen, es kann sein dass dein Host die Funktion rand gesperrt hat und es deswegen nicht funktioniert.

Kommentar von RaceShafter ,

PHP Fehler sind an und auch mit dem Code wird nichts angezeigt. Die Funktion an sich funktioniert, wie ich gerade getestet hatte. Aber dann schlägt das bei dem SESSION fehl. Und eine Session ist gestartet. Sonst würde er ja einen Fehler ausgeben.

Kommentar von RaceShafter ,

Sprich, wie ich herausgefunden habe, funktioniert die Funktion rand. Aber die Session überträgt das nicht, was sie ja eigentlich sollte. Wie gesagt, gestartet ist sie.

Kommentar von PeterKremsner ,

Kannst du mit print_r das SESSION_Array auslesen?

Prüfe den Rückgabewert von session_start, der muss true sein.

Kommentar von RaceShafter ,

Weiß nicht, was du mit Array meinst. Habe mal das eingegeben:

if ($_SESSION) {
print_r ($_SESSION);
}

Das kam raus:

Array ( [LoggedIn] => false )

Kommentar von RaceShafter ,

Ich habe vieles versucht mit "Array". Aber ich kriege immer nur den einen Wert. Anscheinend werden die anderen gar nicht in die Session mit reingenommen. Aber warum?

Kommentar von PeterKremsner ,

Die SESSION Variable ist in PHP ein assoziatives Array, das meinte ich damit.

Komisch ist in diesem Zusammenhang dass du nur den einen Wert in deiner Session hast.

Kann es sein, dass du irgendwo deine Session schließt?

Hat dein Serverbetreiber eine Beschränkung auf der Sessiongröße? (ist oft der Fall bei Gratis Servern)

Kannst du mal einen Link zu deinem kompletten Code schicken, also mit Index.php etc.

Wenn du das Skript lokal ausführst zeigt es Warnings oder dergleichen an?

Übrigens hast du den Rückgabewert von session_start nicht geprüft mach, das bitte noch.

Kommentar von RaceShafter ,

So, hier sind alle Dateien: demopanel.de/Download/Files.zip Nur die config.php ist nicht mit drin, da stehen die Mail und MySQL Zugangsdaten drin. Alles nur Variablen, also nichts, was irgendwas verändert.

Kommentar von RaceShafter ,

Ich schließe die Session vorher nirgends. Beschränkung der Session Größe? Nein. Und nein, lokal funktioniert ja alles :(.. Ich weiß nicht, wie man einen Rückgabewert ausgibt. Habe dazu nichts gefunden. Vielleicht session_status?

Kommentar von RaceShafter ,

Ok, einer im Forum hat den Fehler gefunden. Es war 

<!DOCTYPE HTML>.
... Danke für die Hilfe :D

Kommentar von PeterKremsner ,

Ich verstehe den Fehler aber so nicht ganz, der Doctype ist eine Anweisung im HTML und hat nichts mit PHP zu tun....

Btw den Rückgabewert von session_start ausgeben kannst du mit var_dump(session_start());

Kommentar von RaceShafter ,

Poste ich heute Nachmittag. Ich gehe jetzt erstmal schlafen :) Danke für die Hilfe

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten