Jag har skapat ett inloggningsscript som inte funkar på min localhost. Jag får följande felmeddelande.
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Men när jag kör samma script på webbhotellet jag använder på nätet så funkar det.
Det låter som om du har ett index i din sessionsarray som är samma som namnet på en variabel.
Typ om du i ditt skript har både $_SESSION['id'] och $id. När register_globals är satt så kommer även $_SESSION['id'] att finnas som $id, och du har en varibelkrock.
Försök att sätta unika index för dina sessionsvariabler, t.ex genom att använda ett prefix typ $_SESSION['sess_var'] eller $_SESSION['sVar'].
Förstår ärligt talat inte vad du försöker göra i skriptet.
Vad är t.ex.
$epost = $epost;
$lösenord = $lösenord;
Tag en koll på vilka variabler du sätter med session_register() och vilka variabler du sedan använder.
Använd inte session_register/session_unregister överhuvudtaget, utan använd dig av sessionsarrayen $_SESSION för att sätta och hämta dina sessionsvariabler.
Använd där index som du inte använder som variabelnamn.
I logga ut, lägg din header efter du kört session_destroy().
<?php
// Skapa en session med viktig information
session_start();
require '../inkludera/databas.php';
// Kolla om användaren finns
mysql_select_db("databasen");
$sql = "
SELECT id FROM användare
WHERE epost = '{$_POST['epost']}'
AND lösenord = '{$_POST['lösenord']}'
AND status = '1'
";
$get = mysql_query($sql);
if(mysql_num_rows($get) > 0)
{
$_SESSION['sess_id'] = mysql_result($get, 0, 'id');
$_SESSION['sess_passwd'] = $_POST['lösenord'];
$_SESSION['sess_epost'] = $_POST['epost'];
$_SESSION['sess_active'] = 1;
// Gå till admin.php
echo "ADMIN";
}
else
{
// Gå till logga_ut.php
echo "NEJ";
}
// Stäng databasen
mysql_close($open);
?>
Jag la till att hämta och spara `id` som sessionsvariabel, då detta oftast är det snabbast sättet att identifiera användaren när man hämtar från databasen.
För du har väl en id-kolumn ?
Matte: Tack för din hjälp! Jag har en id kolumn för varje användare ja. Jag ska testa scriptet snart. Måste bara sola lite först! Solen steker på bra här!
261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a