Avatar billede php_Damn Nybegynder
02. september 2013 - 08:32 Der er 3 kommentarer og
1 løsning

Undfined index: øv!

Hej jeg sidder som Hovedforløbs studerende og laver denne her opgave. Jeg skal lave et meget basis site med; et login og opret bruger.

Jeg er næsten færdig med min side men så får jeg denne her fejl:

Notice: Undefined index: user in C:\Users\Navn\Dropbox\www\php201\function.php on line 105
Du er logget ind som:

samt min formular til opret bruger er forsvundet.
Har kigget længe på min kode og kan ikke finde nogen fejl. Så måske kan et par nye øjne hjælpe?

Eftersom siden skal være færdig til i morgen d. 03.08.13

Her er min kode:

<?php
///Menu
function menu($db)
{   
    echo '<!----MENU START--->
   
        <nav class="navbar navbar-default" role="navigation">
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Brand</a>
          </div>

          <!-- Collect the nav links, forms, and other content for toggling -->
                    <div class="collapse navbar-collapse navbar-ex1-collapse">
                        <ul class="nav navbar-nav">';
                       
                $sql = "select * from pages where visible = 1";
                $sqlQuery = $db->query($sql) or die ($db->error);
                while($sqlFetch = $sqlQuery->fetch_object())
                {
                echo "<li class=''><a href='index.php?page={$sqlFetch->slug}'>{$sqlFetch->title}</a></li>";
                }
                echo '</ul>
                    </div><!-- /.navbar-collapse--></nav>
<!-----Menu slut------->';
}
///Menu End

///Content
function content($db)
{
    if(isset($_GET['page']))
    {
        $sql = "select * from pages where slug = '{$_GET['page']}'";
        $sqlQuery = $db->query($sql) or die ($db->error);
        $sqlFetch = $sqlQuery->fetch_object();
        echo "<h3>($sqlFetch->headline)</h3>";
        if(function_exists($sqlFetch->content))
        {
            call_user_func($sqlFetch->content,$db);
        }
        else
        {
            echo "<p>{$sqlFetch->content}</p>";
        }   
    }
}
///Content End

///Login
function login($db)
{
    if(!isset($_SESSION['user']))
    {
    echo "
        <form method='post'>
                E-Mail: <input type='text' placeholder='E-Mail' name='formLoginEmail'><br />
                Adgangskode: <input type='password' placeholder='Adgangskode' name='formLoginPassword'><br/>
                <input type='submit' value='Log In' name='formLoginSubmit'><br />
            </form>
        ";
        if(isset($_POST['formLoginSubmit']))
        {
            if(empty($_POST['formLoginEmail']))
            {
                $_SESSION['msg']['warning'][]= "Ups dit email felt er tomt";
            }
            if(empty($_POST['formLoginPassword']))
            {
                $_SESSION['msg']['warning'][] = "Ups du har ikke indtastet password";
            }
        if(empty($_SESSION['msg']['warning']))
            {
            $email = $db->real_escape_string($_POST['formLoginEmail']);
            $password = md5 ($_POST['formLoginPassword']);
                $sql = "select * from user
                                        where
                                            email = '{$email}'
                                        and
                                            password = '{$password}'
                                            ";
                $sqlQuery = $db->query($sql) or die ($db->error);
                $intQuery = $sqlQuery->num_rows;
                if($intQuery == true)
                {
                $sqlFetch = $sqlQuery->fetch_object();
                $_SESSION ['user']['email'] = $sqlFetch->email;
                $_SESSION ['user']['id'] = $sqlFetch->id;
                header('location: index.php');
                }
                else
                {
                header('location: index.php');
                }       
            }
        }
        else
        {
            echo "Du er logget ind som: {$_SESSION['user']['email']}";
        }
    }
}
///Login End

///Messenges
function messeges()
{
    if(!empty($_SESSION['msg']['info']))
    {
        echo "<div class='alert alert-success' alert-dismissable'>
        <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
        <strong>Success!</strong>";
            foreach ($_SESSION['msg']['success'] as $msg){
                echo "<p>$msg</p>";
                }
        echo "</div>
        ";
    }   
    unset($_SESSION['$msg']);
}
///Messenges End

///Createuser
function createuser($db)
{
    if(isset($_SESSION['createuser']))
    {
    echo "
        <form method='post'>
                E-Mail: <input type='text' placeholder='E-Mail' name='formOpretEmail'><br />
                Adgangskode: <input type='password' placeholder='Adgangskode' name='formOpretPassword'><br/>
                <input type='submit' value='Opret' name='formOpretSubmit'><br />
            </form>
        ";
    if(isset($_POST['formOpretSubmit']))
    {
        if(empty($_POST['formOpretEmail']))
        {
        $_SESSION ['msg']['warning'][] ="Du mangler Email for at oprette dig";
        }
        if(empty($_POST['formOpretPassword']))
        {
        $_SESSION ['msg']['warning'][] ="Du mangler Password for at oprette dig";
        }
    if(empty($_SESSION['msg']['warning']))
        {
        $email($_POST['formOpretEmail']);
        $password = md5 ($_POST['formOpretPassword']);
        $sql = "insert into user
                                set
                            email = '{$email}'
                                and
                            password = '{$password}'";
                           
            $sqlQuery = $db->query($sql) or die($db->error);
                $intQuery = $sqlQuery->num_rows;
                if($intQuery == true)
                {
                    $sqlFetch = $sqlQuery->fetch_object();
                    $_SESSION['user']['email'] = $sqlFetch->email;
                    $_SESSION['user']['id'] = $sqlFetch->id;
                    header('location: index.php');
                }
            }
            else
            {
            header('location: index.php');
            }
    }
        echo "Du er oprettet som: {$_SESSION['user']['email']}";
    }
}
///Createuser End
?>
Avatar billede michael_stim Ekspert
02. september 2013 - 09:20 #1
Det er formodentlig en variabel der ikke er sat.

Måske denne session:  echo "Du er logget ind som: {$_SESSION['user']['email']}";
Avatar billede php_Damn Nybegynder
02. september 2013 - 09:32 #2
Jep tænker jeg også, men hvordan definere man så 'user'?
Laver man bare en variable der hedder:

$user = ($db[user]);

Ved ikke om det er skrevet rigtigt, men min tanke er at jeg vel skal
få den til at tage bruger informationerne fra databasen, og echo dem ud.
Men så er det lige hvordan man gør det :/
Avatar billede michael_stim Ekspert
02. september 2013 - 10:58 #3
Du kan sagtens lægge dem i en session, men så skal du huske session_start() i toppen.
Avatar billede php_Damn Nybegynder
03. september 2013 - 14:55 #4
Her er så hvad det blev rettet til i min klasse:


<?php
/////////MENU//////////
function menu($db){
          echo '<!-- Menu start -->
         
                  <nav class="navbar navbar-default" role="navigation">
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Brand</a>
          </div>
       
          <!-- Collect the nav links, forms, and other content for toggling -->
          <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">';
            $sql = "select * from pages where visible = 1";
            $sqlQuery = $db->query($sql) or die($db->error);
            while($sqlFetch = $sqlQuery->fetch_object()){
                echo "<li class=''><a href='index.php?page={$sqlFetch->slug}'>{$sqlFetch->title}</a></li>"; 
            }
if(isset($_SESSION['user']) && $_SESSION['user']['level'] > 1){
   
        echo '
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Admin <b class="caret"></b></a>
              <ul class="dropdown-menu">
        ';
            $sql = "select * from pages where level <= {$_SESSION['user']['level']} and admin = 1";
            $sqlQuery = $db->query($sql) or die($db->error);
            while($sqlFetch = $sqlQuery->fetch_object()){
                echo "<li><a href='index.php?page={$sqlFetch->slug}'>{$sqlFetch->title}</a></li>";
               
            };
        echo '</ul>
            </li>
        ';
}


echo '</ul>
          </div><!-- /.navbar-collapse -->
        </nav>
         
          <!-- Menu Slut -->';

}

//////////CONTENT/////////////
function content($db){
    if(isset($_GET['page'])){
        $sql = "select * from pages where slug = '{$_GET['page']}'";
        $sqlQuery = $db->query($sql) or die($db->error);
        $sqlFetch = $sqlQuery->fetch_object();
        if($sqlFetch->level == 0){
            echo "<h3>{$sqlFetch->headline}</h3>";
            if(function_exists($sqlFetch->content)){
                call_user_func($sqlFetch->content,$db);
            }else{
                echo "<p>{$sqlFetch->content}</p>";
            }
        }else{
            if($sqlFetch->level > @$_SESSION['user']['level']){
                echo "<h3>403!</h3>";
                echo "<p>Du har ikke rettigheder til at se denne side.</p>";
            }else{
                echo "<h3>{$sqlFetch->headline}</h3>";
                if(function_exists($sqlFetch->content)){
                    call_user_func($sqlFetch->content,$db);
                }else{
                    echo "<p>{$sqlFetch->content}</p>";
                }
            }
        }
    }else{
        $sql = "select * from pages where frontpage = 1";
        $sqlQuery = $db->query($sql) or die($db->error);
        $sqlFetch = $sqlQuery->fetch_object();
        echo "<h3>{$sqlFetch->headline}</h3>";
        if(function_exists($sqlFetch->content)){
            call_user_func($sqlFetch->content,$db);
        }else{
            echo "<p>{$sqlFetch->content}</p>";
        }
    }
}

////////////LOGIN/////////////
function login($db){
    if(!isset($_SESSION['user'])){
        echo "
            <form method='post'>
                E-Mail: <input type='text' placeholder='E-Mail' name='formLoginEmail'><br />
                Adgangskode: <input type='password' placeholder='Adgangskode' name='formLoginPassword'><br/>
                <a href='index.php?page=createuser'>Opret Bruger</a><input type='submit' value='Log In' name='formLoginSubmit'><br />
            </form>
        ";
        if(isset($_POST['formLoginSubmit'])){
            if(empty($_POST['formLoginEmail'])){
                $_SESSION['msg']['warning'][] = "DIT EMAIL FELT ER TOMT";
            }
            if(empty($_POST['formLoginPassword'])){
                $_SESSION['msg']['warning'][] = "DIT ADGANGSKODE FELT ER TOMT";
            }
           
           
            if(empty($_SESSION['msg']['warning'])){
                $email = $db->real_escape_string($_POST['formLoginEmail']);
                $password = md5($_POST['formLoginPassword']);
                $sql = "select * from users
                                        where
                                            email = '{$email}'
                                        and
                                            password = '{$password}'
                                        ";
                $sqlQuery = $db->query($sql) or die($db->error);
                $intQuery = $sqlQuery->num_rows;
                if($intQuery == true){
                    $sqlFetch = $sqlQuery->fetch_object();
                    $_SESSION['user']['email'] = $sqlFetch->email;
                    $_SESSION['user']['id'] = $sqlFetch->id;
                    $_SESSION['user']['level'] = $sqlFetch->level;
                    header('location: index.php');
                }
            }else{
                header('location: index.php');
            }
        }
    }else{
        echo "
            Du er logget ind som: {$_SESSION['user']['email']}<br />
            <a href='index.php?page=logout'>Log Ud</a>
        ";
    }
}
//////////////MESSAGES/////////////
function messages(){
    if(!empty($_SESSION['msg']['success'])){
        echo "
            <div class='alert alert-dismissable alert alert-success'>
                <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
                <strong>Success!</strong>
                ";
                foreach($_SESSION['msg']['success'] as $msg){
                    echo "<p>{$msg}</p>";
                }
            echo "</div>
        ";   
    }
    if(!empty($_SESSION['msg']['info'])){
        echo "
            <div class='alert alert-dismissable alert alert-info'>
                <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
                <strong>Info!</strong>
                ";
                foreach($_SESSION['msg']['info'] as $msg){
                    echo "<p>{$msg}</p>";
                }
            echo "</div>
        ";   
    }

    if(!empty($_SESSION['msg']['warning'])){
        echo "
            <div class='alert alert-dismissable alert alert-danger'>
                <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
                <strong>Warning!</strong>
                ";
                foreach($_SESSION['msg']['warning'] as $msg){
                    echo "<p>{$msg}</p>";
                }
            echo "</div>
        ";   
    }
    unset($_SESSION['msg']);
}
///////////////CREATEUSER//////////
function createuser($db){
    echo "
        <form method='post'>
            <input name='formCreateUserEmail' type='text' placeholder='E-Mail' /><br />
            <input name='formCreateUserPassword' type='password' placeholder='Adgangskode' /><br />
            <input name='formCreateUserSubmit' type='submit' value='Opret Bruger' /><br />
        </form>
    ";
    if(isset($_POST['formCreateUserSubmit'])){
        // Er felterne tomme
        if(empty($_POST['formCreateUserEmail'])){
            $_SESSION['msg']['warning'][] = "Du har ikke udfyldt E-Mail.";
        }
        if(empty($_POST['formCreateUserPassword'])){
            $_SESSION['msg']['warning'][] = "Du har ikke udfyldt Adgangskode.";
        }
       
        // Er der allerede en bruger med angivne informationer
        if(empty($_SESSION['msg']['warning'])){
            $email = $db->real_escape_string($_POST['formCreateUserEmail']);
            $password = md5($_POST['formCreateUserPassword']);
            $sql = "select * from users where email = '{$email}'";
            $sqlQuery = $db->query($sql) or die($db->error);
            $intQuery = $sqlQuery->num_rows;
            if($intQuery == true){
                $_SESSION['msg']['warning'][] = "Der eksisterer allerede bruger med de angivne informationer.";
            }else{
                $sql = "insert into users set email = '{$email}', password = '{$password}'";
                $db->query($sql) or die($db->error);
                $_SESSION['msg']['success'][] = "Tillykke, din bruger er nu oprettet.";
            }
        }
        header('location: index.php');
    }
}

    header('location:index.php');
}
?>
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