Avatar billede cronaldo Nybegynder
24. januar 2009 - 14:00 Der er 10 kommentarer og
2 løsninger

Fejl 500, internal server error

Hej eksperter..
Jeg får denne fejl, når jeg prøver at udføre en form på min hjemmeside..
er der nogle ideer om hvad jeg kan have gjort forkert omkring denne form?
Avatar billede majbom Novice
24. januar 2009 - 14:01 #1
du kan jo poste koden ,så vi kan se hvad du har gjort og ikke gjort ;)
Avatar billede cronaldo Nybegynder
24. januar 2009 - 14:06 #2
ER igang med at optimere koden.. her er selve formen, som jeg trykker på:

<?
IF($_SESSION['status'] == "login"){
    $sesprofid = $_SESSION['profilid'];
    echo "<b>Velkommen, ";
    $result_user_name = mysql_query("SELECT * FROM login WHERE id = \"$sesprofid\" ORDER BY id DESC LIMIT 1") or die(mysql_error());
    while($data = mysql_fetch_array($result_user_name)){
        $fornavn = $data[fornavn];
        $efternavn = $data[efternavn];
                           
        echo $fornavn;   
    }
    echo "</b>";
    echo "<br>";
    echo "Rediger profil";
    echo " - ";
    echo "Se indlæg";
   
   
    IF($_SESSION['kontotype'] == "4" && $_SESSION['niveau'] > "1"){
        echo '<a href="index.php?page=2275" class="fleft">administration</a>';
        echo '<br />';
    }
   
    echo '<a href="index.php?page=3&action=logout" class="fright">Logud</a>';
   
                   
} ELSE { ?>
    <form action="index.php?page=3" method="POST">
        <input type="hidden" name="action" value="login" />
        navn
        <input type="text" name="brugernavn" class="input" />
        password
        <input type="password" name="kodeord" class="input" />
        <input type="image" class="input1" name="login" value="yes" src="images/login.gif" />
        <br />
        <div class="fright"><a href="#">glemt password?</a></div>
    </form>
               
<?
}
?>

Filen, der gerne skulle logge en ind kommer i næste kommentar :) ..
Avatar billede cronaldo Nybegynder
24. januar 2009 - 14:08 #3
Det skal til mit forsvar siges jeg er rimelig ny ang. funktioner så det er ikke sikkert at dette er den optimale måde at gøre det på, men jeg er også kun igang med at optimere systemet MEST muligt ;-)
----------------------------------

<?php

include("config.php");
$usernameLogInName        = mysql_real_escape_string($_POST['brugernavn']);
$passwordLogInPass        = mysql_real_escape_string(md5($_POST['kodeord']));
$password = md5($pass_salt.$loginpass12345);


function logUserOut()
{
    session_destroy();
    echo "Du er nu logget ud";
    echo "<meta http-equiv=\"refresh\" content=\"0;url=/index.php\">";
}

function whatHasHappenedInForum()
{
    global $usernameLogInName, $passwordLogInPass, $password;
   
    //////////////////////////////////////
    // Check what has happened in the forum since last login
    //
    IF($row['kontotype'] == "2"){
        $resultCheckWhatHasHappenedForum = mysql_query("
                                            SELECT * FROM forumanswers as fA INNER JOIN forumTopics as fT
                                            WHERE fT.forfatter = '".$row['id']."'
                                                AND fA.dato > '".$row['sidstelogin']."'
                                                AND fA.tiltopic = fT.id
                                            ORDER BY id DESC") or die(mysql_error());
        $numRowsCheckWhatHasHappenedForum = mysql_num_rows($resultCheckWhatHasHappenedForum);
    } ELSE IF($row['kontotype'] == "3"){
        $resultCheckWhatHasHappenedForum = mysql_query("
                                            SELECT * FROM forumtopics
                                            WHERE dato > '".$row['sidstelogin']."'
                                            ORDER BY id DESC") or die(mysql_error());
        $numRowsCheckWhatHasHappenedForum = mysql_num_rows($resultCheckWhatHasHappenedForum);
    } ELSE IF($row['kontotype'] == "4"){
        $resultCheckWhatHasHappenedForum = mysql_query("
                                            SELECT * FROM forumtopics, forumanswers
                                            WHERE dato > '".$row['sidstelogin']."'
                                            ORDER BY dato,id DESC") or die(mysql_error());
        $numRowsCheckWhatHasHappenedForum = mysql_num_rows($resultCheckWhatHasHappenedForum);
    }
   
    IF($numRowsCheckWhatHasHappenedForum > 0){
        while($recentFora = mysql_fetch_array($resultCheckWhatHasHappenedForum)){
       
        }
    } ELSE {
        echo "Intet nyt i forummet siden dit seneste login!";
    }
   
    //
    // End of the check
    ///////////////////////////////////////

}

function getUserData()
{
   
    global $usernameLogInName, $passwordLogInPass, $password;
   
    IF($_POST['action'] == "login"){
        IF(!empty($usernameLogInName) AND !empty($passwordLogInPass)){
            $resultLogInUser9987 = mysql_query("SELECT * FROM login WHERE brugernavn = \"$usernameLogInName\" AND kodeord = \"$passwordLogInPass\" ORDER BY id DESC LIMIT 1") or die(mysql_error());
   
            $numresultLogInUser9987 = mysql_num_rows($resultLogInUser9987);   
       
            IF($numresultLogInUser9987 > 0){
                while($row = mysql_fetch_array($resultLogInUser9987)){
                   
                    $userInfo[$row['id']] = Array (
                        'id'            => $row['id'],
                        'brugernavn'    => $row['brugernavn'],
                        'niveau'        => $row['niveau'],
                        'adminniv'        => $row['adminniv'],
                        'virkniv'        => $row['virkniv'],
                        'grafikniv'        => $row['grafikniv'],
                        'kontotype'        => $row['kontotype'],
                        'banned'        => $row['banned']
                    );
                   
                    logInUser();
                   
                } // end of while loop
            } ELSE { // Check if there was any hits from the database
                echo "De indtastede data blev ikke matchet i databasen, prøv igen!";
            }
        } ELSE {
            /////////////////////////////////////
            // If one of the input's is not filled!
            //
           
            echo "Du har glemt at udfylde brugernavn eller kodeord. Prøv igen!";
           
            // end of the check about input's
            /////////////////////////////////////
        }
    } ELSE IF($_GET['action'] == "logout"){
        logUserOut();
    }
   
    global $userInfo;
}


function logInUser()
{
    global $usernameLogInName, $passwordLogInPass, $password;
   
    getUserData();
   
    foreach ((array) $userInfo as $userData){

        /////////////////////////////////////
        // If the user is not banned create sessions
        //
        $_SESSION['profilid'] = $userData['id'];
        $_SESSION['status'] = "login";
        $_SESSION['brugernavn'] = $userData['brugernavn'];
        $_SESSION['banned'] = $userData['banned'];
        $_SESSION['kontotype'] = $userData['kontotype'];
        $_SESSION['niveau'] = $userData['niveau'];
        $_SESSION['adminniv'] = $userData['adminniv'];
        $_SESSION['grafikniv'] = $userData['grafikniv'];
        $_SESSION['virkniv'] = $userData['virkniv'];   
        $_SESSION['brugerip'] = getRealIpAddr();
       
        // End of create sessions
        //////////////////////////////////////
   
    }
       
    echo    "Du er nu logget ind som: ".$_SESSION['brugernavn'];
    echo    "<br />";
    echo    "Siden dit sidste login er der: ";           
    echo    whatHasHappenedInForum();   

}   


getUserData();

       
       
?>
Avatar billede cronaldo Nybegynder
24. januar 2009 - 14:11 #4
*Opdateret antal point*
Avatar billede majbom Novice
24. januar 2009 - 14:34 #5
umidelbart kan jeg ikke lige se nogle fejl...

du kan prøve at udkommentere det meste af den kode i din login-fil, som bliver kørt ved login, og lidt efter lidt "lukke" op for mere kode, og på den måde finde ud af hvor det går galt. den plejer jeg at bruge, når jeg ikke kan finde fejlen...
Avatar billede cronaldo Nybegynder
24. januar 2009 - 15:20 #6
Jeg ved netop nu, at det er funktionen logInUser() der er fejl med :) resten virker..
Avatar billede cronaldo Nybegynder
24. januar 2009 - 15:29 #7
aaaah, den kører jo "i ring" .. har kaldt getUserData() i logInUser .. så den vil blive ved uendeligt antal gange :)
Avatar billede majbom Novice
24. januar 2009 - 15:42 #8
ja, det er sa rigtigt, den havde jeg ikke set :)
Avatar billede cronaldo Nybegynder
24. januar 2009 - 15:48 #9
hehe ;) .. skal vi ikk dele pointene ? :)
Avatar billede majbom Novice
24. januar 2009 - 16:07 #10
jeg skal ikke have halvdelen da...
Avatar billede cronaldo Nybegynder
24. januar 2009 - 17:04 #11
du ledte mig til fejlen :)

takker..
Avatar billede majbom Novice
24. januar 2009 - 17:10 #12
det er så i orden, tak 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