Du hast ja den Text, der die fehlerhafte Stelle ausgaben soll, auskommentiert. So sieht man natürlich nix.
PHP MVC Sessions
Einklappen
X
-
Zitat von h3ll Beitrag anzeigenDu hast ja den Text, der die fehlerhafte Stelle ausgaben soll, auskommentiert. So sieht man natürlich nix.
Ich weiß es ist etwas viel verlangt. Ich würde den gesamten code gerne auf Gitlab stellen. Würdest du ihn dir vl ansehen?
Kommentar
-
Du sollst dir ja auch den ausgegebenen HTML-Code anschauen und nicht irgendwelche Buttons.
Wenn du möchtest, dass jemand anders die Arbeit für dich macht, musst du ein Jobangebot erstellen. Ich wäre aber nicht interessiert, da ich schon einen Vollzeitjob als Programmierer habe und Programmierforen als meine Freizeitbeschäftigung sehe.
Kommentar
-
wie soll ich mir die Ausgabe ansehen, wenn der button auf den ich klicken muss, damit das Formular per POST übersendet wird nicht angezeigt wird ?
ich mach das nur just for fun und zur übung.
und BTW:
Einen Mitarbeiter der Firmencodes postet wird wohl nicht lange seinen Job haben. Also ich würde ihn sofort kündigen und wenn möglich sogar entlassen.
Kommentar
-
Zitat von jenny258 Beitrag anzeigenwie soll ich mir die Ausgabe ansehen, wenn der button auf den ich klicken muss, damit das Formular per POST übersendet wird nicht angezeigt wird ?
Zitat von jenny258 Beitrag anzeigenich mach das nur just for fun und zur übung.
und BTW:
Einen Mitarbeiter der Firmencodes postet wird wohl nicht lange seinen Job haben. Also ich würde ihn sofort kündigen und wenn möglich sogar entlassen.
Kommentar
-
an den Rollen lag es nicht
Jetzt bekomme ich wieder einen neuen Fehler und es wird überhaut kein Token mehr erzeugt:
string(17) "sess CONTROLLER: " bool(false) string(10) "POST TOKEN" string(233) "Header bereits gesendet in A:\Meine Programme\Ampps\www\mvcJennyNeu\app\views\layouts\navbar.php in Zeile 47 Redirect nicht moeglich, klicken Sie daher statt dessen
in der Navbar ist nur der Link:
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/create">Registrieren</a>
</li>
private static function sessionStart(){
/* if( empty(session_id()) && !headers_sent()){
session_start();
} */
if( session_status() !== PHP_SESSION_ACTIVE ){
if (!headers_sent($filename, $linenum)) {
session_start();
// Wahrscheinlich wollen Sie hier eine Fehlermeldung auslösen
}
else {
echo "Header bereits gesendet in $filename in Zeile $linenum\n" .
"Redirect nicht moeglich, klicken Sie daher statt dessen <a ";
//exit;
}
}
}
Ich werde wohl wieder mit der Session Helper Funktion arbeiten. Dort werden mir zumindest die tokens erzeugt.
umbauen kann ich es ja immer wieder zum testen.
danke nochmal für deine Hilfe
Kommentar
-
Seit #3 scheint sich der Code ja doch schon wieder verändert zu haben, was es unübersichtlich und nicht einfach nachvollziehbar macht.
Grundsätzlich sei gesagt, dass ein headers already sent bereits durch ein einfaches Leerzeichen oder eine Leerzeile geworfen werden kann.
Beispiel, richtig:
PHP-Code:<?php
session_start();
PHP-Code:
<?php
session_start();
https://www.php-rocks.de/thema/65-ca...eady-sent.html
Du müsstest Deine Codes am besten auch mal in PHP-Tags hier im Editor packen, dann sind die besser zu lesen.
Kommentar
-
Zitat von ArneDrews Beitrag anzeigenSeit #3 scheint sich der Code ja doch schon wieder verändert zu haben, was es unübersichtlich und nicht einfach nachvollziehbar macht.
Grundsätzlich sei gesagt, dass ein headers already sent bereits durch ein einfaches Leerzeichen oder eine Leerzeile geworfen werden kann.
Beispiel, richtig:
PHP-Code:<?php
session_start();
PHP-Code:
<?php
session_start();
https://www.php-rocks.de/thema/65-ca...eady-sent.html
Du müsstest Deine Codes am besten auch mal in PHP-Tags hier im Editor packen, dann sind die besser zu lesen.
Bei mir ist es leider wohl ein anderes Problem. Es befindet sich kein Leerzeichen. Leider.
session_start() befindet sich in der Session Klasse in einer eigenen Methode.
Dieselbe Klasse funktioniert bei einem einfachen externen LoginScript problemlos. Das Problem kann demnach "fast" nicht an der Klasse ansich liegen.
Alles was ich bisher versucht habe, hat mir nicht weitergeholfen. Bekomme immer wieder den selben Fehler.
Kommentar
-
session_start() befindet sich in der Session Klasse in einer eigenen Methode.
Dieselbe Klasse funktioniert bei einem einfachen externen LoginScript problemlos. Das Problem kann demnach "fast" nicht an der Klasse ansich liegen.
Bevor - ob lange oder kurz davor spielt keine Rolle - session_start() loslegen möchte, ist bereits eine Ausgabe an den Browser gesendet worden! Das Leerzeichen war nur ein Beispiel, es kann alles andere mögliche sein.
Du wirst Deine Scripte von Beginn an bis zum session_start() prüfen müssen. Irgendwo findet dort eine "Ausgabe" statt.
Kommentar
-
session_start() wird bis dato bei mir nur an zwei stellen genutzt. Zur Überprüfung der Tokens.
Die erste Ausgabe findet statt, wenn man auf den Link klickt der den View mit dem Formular lädt.
Header bereits gesendet in A:\Meine Programme\Ampps\www\mvcJennyNeu\app\views\layouts\navbar.php
Allerdings ist hier nirgendwo ein Leerzeichen Problem. Habe das schon mehrmals gecheckt.
Kommentar
-
Zitat von h3ll Beitrag anzeigenIch vermute dass du die Navigation ausgibst, bevor du die Session startest. Vor dem Start der Session darf aber keinerlei Ausgabe stattfinden.
Was mich jetzt aber doch noch interessieren würde. Wie könnte ich es bewerkstelligen, dass ich die session und den token direkt vom hidden field aus erzeugen kann.
Jetzt mache ich es so:
PHP-Code:<input type="hidden" name="_token" value="<?php echo $sess;?>">
PHP-Code:<input type="hidden" name="_token" value="<?php echo Session::init()->setCsrf();?>">
Kommentar
Kommentar