Ik was pas wat aan het lezen over hoe sessies in PHP ook alweer precies werken (met name het moment van aanmaken van het sessiebestand, bij session_start() of pas bij het schrijven naar $_SESSION? Bij het eerste, blijkbaar).
Daarbij kwam ik de volgende aangedragen juweeltjes tegen:
Ik durf te wedden dat 'ie in de tussentijd gewoon wat heeft lopen rommelen met die $_SESSION['nome'] en er wél een waarde in heeft gezet, en vervolgens met de moed der wanhoop z'n enkele quotes vervangen door dubbele waarna het plotseling werkte, doordat de notice verdween en dus de sessie-cookie-header wel weggeschreven kon worden.
Of deze dan:
Nee, want die zouden hetzelfde sessiebestand lezen en daar ook op locken gedurende het hele request, en dus over dezelfde sessiedata beschikken. De URL-wrapper die het tweede script opent doet echter simpelweg niet aan cookies, dus krijgt een eigen sessie. Vervolgens is de sessiedata uit de include dus gewoon verloren (de volgende include genereert immers net zo goed weer een nieuwe sessie), dus z'n statement over de refresh slaat ook op kaas.
Volgens mij kunnen ze gewoon beter die hele comments-sectie verwijderen van de manual-pages. Hoewel, af en toe is het prima vermaak.
Daarbij kwam ik de volgende aangedragen juweeltjes tegen:
Want het maakt natuurlijk helemaal niet uit dat je een niet-bestaande index probeert te bereiken, die de Notice: Undefined index: nome uitpoept, zodat de cookies niet meer verstuurd kunnen worden.I had a problem with the session_start(); like this: "Warning: session_start(); [function.session-start]: Cannot send session cache limiter - headers already sent".
This is my php code:
PHP:
1 2 3 4 5 6 session_start(); if ($_SESSION['nome'] == ""){ die('Você não pode acessar essa pagina!'); } else { }
The problem is the "" that we need to chango to ''.
Correct code:
PHP:
1 2 3 4 5 6 session_start(); if ($_SESSION['nome'] == ''){ die('Você não pode acessar essa pagina!'); } else { }
Ik durf te wedden dat 'ie in de tussentijd gewoon wat heeft lopen rommelen met die $_SESSION['nome'] en er wél een waarde in heeft gezet, en vervolgens met de moed der wanhoop z'n enkele quotes vervangen door dubbele waarna het plotseling werkte, doordat de notice verdween en dus de sessie-cookie-header wel weggeschreven kon worden.
Of deze dan:
Gewoon totaal niet snappen dat je met het includen van een PHP-script over een URL juist de uitvoer van dat script insluit, wat ook gewoon in de handleiding staat:Persistence of session data in included file also has one more aspects if you are including a file using/over the http connection.
Session will not be available without refresh (it's a separate thread even if you are on the same domain/server), which is again a correct behavior, but if you are including a file from local file system then it should have session data if you are setting and accessing the $_SESSION variable even before page refresh because it is available globally.
PHP:
1 2 3 4 session_start(); $_SESSION['example']="yes"; Include("otherfile");
Session variable will be available in included file.
PHP:
1 2 3 4 session_start(); $_SESSION['example']="yes"; Include("http://domain.com/otherfile.php");
Session will NOT be available in other file.
BUt if both files are on same server then after refresh values will be available.
En het pas beschikbaar zijn van de sessiedata na een refresh als de scripts wel op dezelfde server draaien, bijvoorbeeld include('http://localhost/foobar.php'), toeschrijven aan het uitgevoerd worden door verschillende threads.(Over "URL fopen wrappers"): This is not strictly speaking the same thing as including the file and having it inherit the parent file's variable scope; the script is actually being run on the remote server and the result is then being included into the local script.
Nee, want die zouden hetzelfde sessiebestand lezen en daar ook op locken gedurende het hele request, en dus over dezelfde sessiedata beschikken. De URL-wrapper die het tweede script opent doet echter simpelweg niet aan cookies, dus krijgt een eigen sessie. Vervolgens is de sessiedata uit de include dus gewoon verloren (de volgende include genereert immers net zo goed weer een nieuwe sessie), dus z'n statement over de refresh slaat ook op kaas.
Volgens mij kunnen ze gewoon beter die hele comments-sectie verwijderen van de manual-pages. Hoewel, af en toe is het prima vermaak.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...