Avatar billede noodrem Nybegynder
03. maj 2006 - 18:23 Der er 4 kommentarer og
1 løsning

Problemer med brug af sessions

Hej eksperter

Har for nyligt skiftet webhotel, hvilket har medført at jeg har fået et problem når jeg bruger SESSIONS. Min webserver melder nemlig følg tilbage:

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


Følgende kode er et system der gør sådan at man kan redigere i forskellige forum indlæg, og så teksten der stod der før, kommer ind i textarea og textbox, så den kan redigeres derfra.

side 1:
<?

if(!isset($_SESSION['admin'])) {
    include("admincheck.php");
} else {
    $_SESSION['id'] = $_GET['id'];
   
    $conn = mysql_connect("XXX") or die(mysql_error());
    mysql_select_db("XXX") or die(mysql_error());
   
    $query = mysql_query("SELECT * FROM nyheder WHERE id ='$id'") or die(mysql_error());
    $row = mysql_fetch_assoc($query);
   
    $overskrift = $row['overskrift'];
    $nyhed = $row['nyhed'];
    $_SESSION['id'] = $row['id'];
   
    echo "<form action='index.php?side=rednyhed' method='post'>";
    echo "<p>Overskrift:  </p><input type='text' name='overskrift' value='$overskrift'>";
    echo "<p>Nyhed:  </p><textarea name='nyhed' rows='10' cols='40'>".str_replace("<br />", "", $nyhed)."</textarea><br /><br />";
    echo "<input type='submit' name='submit' value=' Tilføj nyhed'>";
    echo "</form>";
}

?>


Side 2, der indsætter det nye tekst ind i databasen:



<?

if(!isset($_SESSION['admin'])) {
    include("admincheck.php");
    } else {
        $id = $_SESSION['id'];
        $nyhed = $_REQUEST['nyhed'];
        $overskrift = $_REQUEST['overskrift'];
        $submit = $_REQUEST['submit'];
       
        if(!isset($submit)) {
            echo "Intet at redigere - FEJL";
        } elseif($overskrift == "" || $nyhed == "") {
            echo "Begge felter skal udfyldes";
        } else {
            $conn = mysql_connect("AAA") or die(mysql_error());
            mysql_select_db("AAA") or die(mysql_error());
           
            $opdater_overskrift = mysql_query("UPDATE nyheder SET overskrift='$overskrift' WHERE id='$id'") or die(mysql_error());
            $opdater_nyhed = mysql_query("UPDATE nyheder SET nyhed='$nyhed' WHERE id='$id'") or die(mysql_error());
           
            header("location:index.php");
        }
    }
   

?>
           

Bruger på siden ovenstående sider inkluderes på

ob_start();
session_start();

og

ob_end_flush();



Nogen der ved hvad problemet er eller hvordan det kan løses?
Avatar billede jakobdo Ekspert
03. maj 2006 - 19:47 #1
Din kode her:
$query = mysql_query("SELECT * FROM nyheder WHERE id ='$id'") or die(mysql_error());

er $id $_GET['id'] eller $_SESSION['id']??
Prøv at ret $id til: $_GET['id'];
Avatar billede webstuff Nybegynder
03. maj 2006 - 20:55 #2
session_start() skal stå på ALLER FØRSTE LINJE! :-)
Avatar billede noodrem Nybegynder
04. maj 2006 - 19:25 #3
Virker nu, ændrede til GET_ID som du sage jakobdo

Takker :)
Avatar billede jakobdo Ekspert
04. maj 2006 - 22:04 #4
Svar!
Avatar billede jakobdo Ekspert
05. maj 2006 - 19:42 #5
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester