Avatar billede tobrukDk Novice
11. juni 2012 - 00:07 Der er 22 kommentarer og
2 løsninger

Notice: Undefined index: email in - problemere,

hej

det er sådan at jeg har bruge min hjemmeside om og det er sådan at når man opret en bruger så gøre den sådan her


<form action="http://xxx.dk/xxx/" method="post" enctype="multipart/form-data">
            <table border="0">
                <tr>
                    <td><p>Email Adresser</p></td>
                    <td>:</td>
                    <td><input type="email" name="email"></td>
                </tr>
                <tr>
                    <td><p>Password</p></td>
                    <td>:</td>
                    <td><input type="password" name="password"></td>
                </tr>
                <tr>
                    <td><p>Password igen</p></td>
                    <td>:</td>
                    <td><input type="password" name="gentag"></td>
                </tr>
                <tr>
                    <td><p>Djnavn</p></td>
                    <td>:</td>
                    <td><input type="text" name="djnavn"></td>
                </tr>
                <tr>
                    <td><p>Facebook</p></td>
                    <td>:</td>
                    <td><input type="text" name="facebook"></td>
                </tr>
                <tr>
                    <td><p>Email Adresser - Booking</p></td>
                    <td>:</td>
                    <td><input type="email" name="booking"></td>
                </tr>
                <tr>
                    <td id="tb-w_a"><p>Kategori</p></td>
                    <td>:</td>
                    <td>
                    <select name="kategori">
                    <?php
                    $query = "SELECT id_katogori, navn FROM kategori";
                    $result = $mysqli->query($query);
                    while(list($id_katogori, $navn) = $result->fetch_row())
                    {
                        echo "<option value=\"$id_katogori\">$navn</option>"; 
                    }
                    ?>
                    </select>
                    </td>
                </tr>
                <tr>
                    <td><p>Upload Profil</p></td>
                    <td>:</td>
                    <td><input type="file" name="file" /></td>
                </tr>
            </table>
        <textarea name="tekst" style="width:500px; height:170px;"></textarea><br />
        <input type="submit" value="Opret Bruger" id="b_topbox" name="godkend_bruger">
    </form>



som sende infomation videre her til...


    <?php
ini_set('display_errors',true);
error_reporting(E_ALL | E_STRICT);
ob_start();
if(isset($_POST["godkend_bruger"]))
{             
        if ($stmt = $mysqli->prepare('SELECT NULL FROM `brugere` WHERE `email` = ?')) {
        $stmt->bind_param('s', $email);
        $email = $_POST['email'];
        $stmt->execute();
        $stmt->store_result();
        $count = $stmt->num_rows;
        $stmt->close();
        if ($count > 0)
        {
            $user_found = 1;
        }
        }
        if(!isset($user_found))
        {
            if($_POST["password"] != $_POST["gentag"])
            {
                $errors = 1;
                echo "<div id=\"box\">";
                echo "<ul><li>Skrive ens password p&#229; siden..</li></ul>";
                echo "</div>";
            }
            if (empty($_POST['password']) && empty($_POST['gentag']))
            {
                $errors = 1;
                echo "<div id=\"box\">";
                echo "<ul><li>Skrive et password p&#229; siden..</li></ul>";
                echo "</div>";
            }
            if($_POST["email"] == "")
            {
                $errors = 1;
                echo "<div id=\"box\">";
                echo "<ul><li>Skrive en email p&#229; siden..</li></ul>";
                echo "</div>";
            }
           
            if(!isset($errors))
            {
                $pb = null;
                include "class.upload.php";
                $handle = new Upload($_FILES['file']);
               
                if($handle->uploaded)
                {
                    //lidt mere store billeder
                    $handle->image_resize = true;
                    $handle->image_ratio_y = true;
                    $handle->image_x = 220;
                    $handle->Process("profil/store");
                   
                    //til profil billede lign..
                    $handle->image_resize = true;
                    $handle->image_ratio_crop = true;
                    $handle->image_y = 75;
                    $handle->image_x = 75;
                    $handle->Process("profil");
                    $pb = $handle->file_dst_name;
                   
                    echo 'Billedet: '.$pb.'<br />';
                    echo "Dit billede blev upload<br />";
                }
                else
                {
                    $pb = 'bruger_intet.png';
                }
                if ($stmt = $mysqli->prepare('INSERT INTO `brugere` (`email`, `katogori`, `djnavn`, `profilbillede`, `profiltekst`, `facebook`, `booking`, `password`, `code`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)')) {
                    /* Bind parametre */
                    $stmt->bind_param('sissssssi', $email, $katogori, $djnavn, $profilbillede, $profiltekst, $facebook, $booking, $password, $code);

                    /* Sæt værdier pÃ¥ parametrene */
                    $email = $_POST['email'];
                    $katogori = $_POST["kategori"];
                    $djnavn = $_POST["djnavn"];
                    $profilbillede = $pb;
                    $profiltekst = $_POST["tekst"];
                    $facebook = $_POST["facebook"];
                    $booking = $_POST["booking"];
                    $password = sha1($_POST['password']);
                    $code = rand(111111111,999999999);

                    $stmt->execute();
                    $stmt->close();
                 
                    $to      = $email; // den som skal modtage mailen!
                    $subject = "Hej xxxx.dk - Godkendt brugere konto"; // sende fra
                    $msg    = "Tak for du vil opret dig på djinfo.dk!. \n \n For at kun activate din konto skal du bare klikke på dette link her: \n \n http://xxxx.dk/activate/$code/ \n \n Du kan ikke besvar den her email!!";
                    $header = "from:xxxx.dk - Godkendt Profil!! <support@xxxx.dk>";               
                 
                if(isset($_POST["godkendt"]))
                {
                    if(mail($to, $subject, $msg, $header))
                    {
                        echo "<div id=\"box\">";
                        echo "<ul><li>Tilsendt e-mail til; $to</li><li>Godkendt brugere</li></ul>";
                        echo "</div>";
                    }
                }
                }
                else {
                    /* Der er opstÃ¥et en fejl */
                    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                }
            }
        }
        else {
            echo "<div id=\"box\">";
            echo "<ul><li>Der findes allerede en bruger med denne mail - G&#248;r et fors&#248;g mere <a href=\"http://xxxx">Fors&#248;ge igen...</a></li></ul>";
            echo "</div>";
        }
}
ob_end_flush();
?>


så når man har klik og det hele så kommer den frem med en fejl

her

Notice: Undefined index: email in /home/jesperbo/public_html/xxx.dk/include/box_info.php on line 5


det vil sige her


<?php
include("include/db.php/db.php");
if($stmt = $mysqli->prepare('SELECT `rank`,`id` FROM `brugere` WHERE `email` = ?')){
  $stmt->bind_param("s", $email);
  $email = $_SESSION["email"];
  $stmt->execute();
  $stmt->bind_result($rank, $id);
  $stmt->fetch();
 
  switch($rank){
    case 1:
      echo "Admin menu";
      break;
    case 2:
      echo "bruger menu";
      break;
    default:
    ?>
    <div id="box_hojre">
        <div id="info">
        <h3>xxxxx Tilbude dig som bruger!</h3>
            <ul>
                <b>Sp&#248;rgsm&#229;l: Koster det at v&#230;re p&#229; djinfo?</b>
                <li>Nej overhovedet ikke, Men du kan st&#248;t os med penge.</li>
                <b>Sp&#248;rgsm&#229;l: Skal jeg godkend min email?</b>
                <li>Ja du skal godkende din email f&#248;r du kan log ind.</li>
                <b>Sp&#248;rgsm&#229;l: Hvorfor skal du have en profil her?</b>
                <li>V&#230;re en heldig Dj som f&#229; noget ud af v&#230;re p&#229; xxxx.dk</li>
                <b>Sp&#248;rgsm&#229;l: Kan du blive kendt??</b>
                <li>Ja det kan V&#230;re du m&#229;ske bliver kendt..</li>
                <b>Sp&#248;rgsm&#229;l: Misbruger din infomation</b>
                <li>Vi holder din oplysninger hemmelig</li>
            </ul>
        </div>
            <div id="not_spam">
            <h3>Vi tilbyder ikke det her!</h3>
                <ul>
                    <b>Sp&#248;rgsm&#229;l: spammer vi din email?</b>
                    <li>Nej. Vi sende kun email til dig n&#229;r du skal godkende din brugere</li>
                    <b>Sp&#248;rgsm&#229;l: Videre give oplysninger</b>
                    <li>Din infomation ville ikke blive videre givet til andre.</li>
                </ul>
            </div>
    </div>
    <?php
  }
  $stmt->close();
} else {
  /* Der er opstået en fejl */
  echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
}
?>


det ligge ind i en file for sig selv, det vil sige at jeg includer filen da jeg bruger den på flere sider.. hmm

Håber du vil hjælp mig frem til det sidste!
Avatar billede inteeeL Nybegynder
11. juni 2012 - 00:15 #1
Er du sikker på, at $_SESSION['email'] er sat? Du kunne prøve at echo'e den og se, om den indeholder den værdi, den skal.
Avatar billede tobrukDk Novice
11. juni 2012 - 12:56 #2
ja den er sat..

den vise værdi inde holde..

den første del af infomation kommer videre til nummer 2 altså hvor den ligger det ind i databasen.. og det sidste kode er som sagt noget som er der hele tiden..
Avatar billede inteeeL Nybegynder
11. juni 2012 - 13:24 #3
Hvis det er en fil for sig selv, mangler du en session_start(); øverst på siden.
Avatar billede tobrukDk Novice
11. juni 2012 - 16:11 #4
har jeg prøvet så siger den sådan her

A session had already been started - ignoring session_start() in /home/jesperbo/public_html/xxxx.dk/include/box_info.php on line 2
xxxx@gmail.com
Notice: Undefined index: email in /home/jesperbo/public_html/xxxx.dk/include/box_info.php on line 7
Avatar billede tobrukDk Novice
11. juni 2012 - 16:16 #5
det vil sige at den ligger i en mappe som hedder include

som du også kan se her

include/box_info.php
Avatar billede inteeeL Nybegynder
11. juni 2012 - 19:39 #6
Kan du prøve at sende hele koden endnu en gang?
Avatar billede tobrukDk Novice
11. juni 2012 - 20:18 #7
den er nok lang


<?php
include ("include/db.php/db.php");
session_start();
?>
<!DOCTYPE html>
<html lang="da">
<head>
    <meta http-equiv="content-language" content="da">
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <link href="http://xxxx..dk/style/style.css" rel="stylesheet" type="text/css">
    <title>Opret Bruger - xxxx</title>
    <script type="text/javascript" src="http://xxxxx.dk/tiny_mce/tiny_mce.js"></script>
    <script type="text/javascript">
        tinyMCE.init({
            mode : "textareas",
            theme : "simple"
        });
    </script>
</head>
<body>
<div id="wrapper">
<div id="top_opret_login">
<?php include ("include/logind_opretbruger_function.php");?>
<?php include ("include/network.php");?>
</div>
<div id="top">
<?php include ("include/logo.php");?>
</div>
<?php include ("include/menu.php");?>
<div id="content">
<h1>Opret Bruger</h1>
<div id="g_b-midt">
    <?php
ini_set('display_errors',true);
error_reporting(E_ALL | E_STRICT);
ob_start();
if(isset($_POST["godkend_bruger"]))
{             
        if ($stmt = $mysqli->prepare('SELECT NULL FROM `brugere` WHERE `email` = ?')) {
        $stmt->bind_param('s', $email);
        $email = $_POST['email'];
        $stmt->execute();
        $stmt->store_result();
        $count = $stmt->num_rows;
        $stmt->close();
        if ($count > 0)
        {
            $user_found = 1;
        }
        }
        if(!isset($user_found))
        {
            if($_POST["password"] != $_POST["gentag"])
            {
                $errors = 1;
                echo "<div id=\"box\">";
                echo "<ul><li>Skrive ens password p&#229; siden..</li></ul>";
                echo "</div>";
            }
            if (empty($_POST['password']) && empty($_POST['gentag']))
            {
                $errors = 1;
                echo "<div id=\"box\">";
                echo "<ul><li>Skrive et password p&#229; siden..</li></ul>";
                echo "</div>";
            }
            if($_POST["email"] == "")
            {
                $errors = 1;
                echo "<div id=\"box\">";
                echo "<ul><li>Skrive en email p&#229; siden..</li></ul>";
                echo "</div>";
            }
           
            if(!isset($errors))
            {
                $pb = null;
                include "class.upload.php";
                $handle = new Upload($_FILES['file']);
               
                if($handle->uploaded)
                {
                    //lidt mere store billeder
                    $handle->image_resize = true;
                    $handle->image_ratio_y = true;
                    $handle->image_x = 220;
                    $handle->Process("profil/store");
                   
                    //til profil billede lign..
                    $handle->image_resize = true;
                    $handle->image_ratio_crop = true;
                    $handle->image_y = 75;
                    $handle->image_x = 75;
                    $handle->Process("profil");
                    $pb = $handle->file_dst_name;
                   
                    echo 'Billedet: '.$pb.'<br />';
                    echo "Dit billede blev upload<br />";
                }
                else
                {
                    $pb = 'bruger_intet.png';
                }
                if ($stmt = $mysqli->prepare('INSERT INTO `brugere` (`email`, `katogori`, `djnavn`, `profilbillede`, `profiltekst`, `facebook`, `booking`, `password`, `code`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)')) {
                    /* Bind parametre */
                    $stmt->bind_param('sissssssi', $email, $katogori, $djnavn, $profilbillede, $profiltekst, $facebook, $booking, $password, $code);

                    /* Sæt værdier pÃ¥ parametrene */
                    $email = $_POST['email'];
                    $katogori = $_POST["kategori"];
                    $djnavn = $_POST["djnavn"];
                    $profilbillede = $pb;
                    $profiltekst = $_POST["tekst"];
                    $facebook = $_POST["facebook"];
                    $booking = $_POST["booking"];
                    $password = sha1($_POST['password']);
                    $code = rand(111111111,999999999);

                    $stmt->execute();
                    $stmt->close();
                 
                    $to      = $email; // den som skal modtage mailen!
                    $subject = "Hej xxx.dk - Godkendt brugere konto"; // sende fra
                    $msg    = "Tak for du vil opret dig på djinfo.dk!. \n \n For at kun activate din konto skal du bare klikke på dette link her: \n \n http://xxxx.dk/activate/$code/ \n \n Du kan ikke besvar den her email!!";
                    $header = "from:xxxx.dk - Godkendt Profil!! <support@xx.dk>";               
                 
                if(isset($_POST["godkendt"]))
                {
                    if(mail($to, $subject, $msg, $header))
                    {
                        echo "<div id=\"box\">";
                        echo "<ul><li>Tilsendt e-mail til; $to</li><li>Godkendt brugere</li></ul>";
                        echo "</div>";
                    }
                }
                }
                else {
                    /* Der er opstÃ¥et en fejl */
                    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                }
            }
        }
        else {
            echo "<div id=\"box\">";
            echo "<ul><li>Der findes allerede en bruger med denne mail - G&#248;r et fors&#248;g mere <a href=\"http://xxx.dk/\">Fors&#248;ge igen...</a></li></ul>";
            echo "</div>";
        }
}
ob_end_flush();
?>
    </div>
</div>
<?php include ("include/box_info.php");?>
<?php include ("include/footer.php");?>
</div>

</body>
</html>


det er den file hvor det gå alt..


<?php
session_start();
include("include/db.php/db.php");
echo $email;
if($stmt = $mysqli->prepare('SELECT `rank`,`id` FROM `brugere` WHERE `email` = ?')){
  $stmt->bind_param("s", $email);
  $email = $_SESSION["email"];
  $stmt->execute();
  $stmt->bind_result($rank, $id);
  $stmt->fetch();
 
  switch($rank){
    case 1:
      echo "Admin menu";
      break;
    case 2:
      echo "bruger menu";
      break;
    default:
    ?>
    <div id="box_hojre">
        <div id="info">
        <h3>xxxx Tilbude dig som bruger!</h3>
            <ul>
                <b>Sp&#248;rgsm&#229;l: Koster det at v&#230;re p&#229; djinfo?</b>
                <li>Nej overhovedet ikke, Men du kan st&#248;t os med penge.</li>
                <b>Sp&#248;rgsm&#229;l: Skal jeg godkend min email?</b>
                <li>Ja du skal godkende din email f&#248;r du kan log ind.</li>
                <b>Sp&#248;rgsm&#229;l: Hvorfor skal du have en profil her?</b>
                <li>V&#230;re en heldig Dj som f&#229; noget ud af v&#230;re p&#229; xxx.dk</li>
                <b>Sp&#248;rgsm&#229;l: Kan du blive kendt??</b>
                <li>Ja det kan V&#230;re du m&#229;ske bliver kendt..</li>
                <b>Sp&#248;rgsm&#229;l: Misbruger din infomation</b>
                <li>Vi holder din oplysninger hemmelig</li>
            </ul>
        </div>
            <div id="not_spam">
            <h3>Vi tilbyder ikke det her!</h3>
                <ul>
                    <b>Sp&#248;rgsm&#229;l: spammer vi din email?</b>
                    <li>Nej. Vi sende kun email til dig n&#229;r du skal godkende din brugere</li>
                    <b>Sp&#248;rgsm&#229;l: Videre give oplysninger</b>
                    <li>Din infomation ville ikke blive videre givet til andre.</li>
                </ul>
            </div>
    </div>
    <?php
  }
  $stmt->close();
} else {
  /* Der er opstået en fejl */
  echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
}
?>


det er den file som hedder box_info.php
Avatar billede inteeeL Nybegynder
11. juni 2012 - 20:58 #8
Er det her, det går galt? :
$email = $_SESSION["email"];
Avatar billede tobrukDk Novice
11. juni 2012 - 21:09 #9
ja :)
Avatar billede inteeeL Nybegynder
12. juni 2012 - 12:10 #10
Det er jo mærkeligt, du siger, at den er sat, men når du så bruger den i et statement, er den ikke sat. Prøv at fjern alt i filen (evt. ved at udkommentere det hele) og sæt dette ind:
<?php

session_start();
include("include/db.php/db.php");

echo $_SESSION['email'];

?>

Hvad siger den så?
Avatar billede tobrukDk Novice
12. juni 2012 - 21:12 #11
Jeg har prøve og det hjælper ikke rigtigt da den siger en email til mig :)
Avatar billede inteeeL Nybegynder
12. juni 2012 - 22:31 #12
Der kommer ingen fejl-meddelelse eller hvad?
Avatar billede tobrukDk Novice
12. juni 2012 - 23:04 #13
Hvis jeg skriver det ind i den file hvor den skal ligge det ind i database. så kommer den ikke frem med nogle problemer overhovedet.. ;)
Avatar billede inteeeL Nybegynder
12. juni 2012 - 23:16 #14
Hvad er det så, problemet er? :-)
Avatar billede tobrukDk Novice
12. juni 2012 - 23:40 #15
Den vise under problem, ligesom jeg skal til at opret bruger. bare den er helt vide uden at den siger echo eller lign.. :) hmm

jeg synes det virker mærkeligt.. :) hmm
Avatar billede tobrukDk Novice
12. juni 2012 - 23:50 #16
Nej der kommer ingen fejl
Avatar billede inteeeL Nybegynder
13. juni 2012 - 00:33 #17
Jeg beklager, men jeg forstår ikke helt, hvad du mener. Er problemet løst? Eller viser den bare en helt hvid side (som jeg tror, du prøvede at forklare) uden yderligere fejl-meddelelser? Eller er det en hel tredje ting?

Det må blive et godnat her fra, klokken er mange. :-)
Avatar billede tobrukDk Novice
13. juni 2012 - 07:46 #18
Det er det sidste du skriver . Problem er dog ikke klare endnu men den vise bare en hvis side eller hvad man skal sige ;).
Avatar billede tobrukDk Novice
13. juni 2012 - 16:42 #19
upss sorry ligge den ind i forkert file, jeg har ligge den over i box_info.php

og der kommer der stadig fejl hmm



<?php
include("include/db.php/db.php");

echo $_SESSION['email'];

?>
Avatar billede inteeeL Nybegynder
13. juni 2012 - 20:00 #20
Du skal jo have en session_start øverst, medmindre den er medtaget i db.php-filen.
<?php

session_start();
include("include/db.php/db.php");

echo $_SESSION['email'];

?>
Avatar billede tobrukDk Novice
13. juni 2012 - 20:03 #21
det gør jeg ikke og hvis jeg tag session_start(); med så siger den også en fejl med den

men Inteeel lige et svar så få du 10 point for du har hjælpe mig!

jeg er kommet frem til at gøre det på en anden måde


if(isset($_SESSION['email'])) {
  #logget ind .. gør noget
} else {
  #ikke logget ind .. gør noget andet
}


Håber det er okay. men hvis jeg gør dette på den her måde så virker det helt fint og godt nok,
Avatar billede inteeeL Nybegynder
13. juni 2012 - 23:40 #22
En lille forklaring på fejl, der kan forekomme ved brug af session, så du så vidt som muligt kan undgå disse i fremtiden.

Eksempel 1: En hel tom siden med nedenstående:
<?php

echo $_SESSION['test'];

?>

- session_start() er ikke medtaget, og $_SESSION['test'] er desuden ikke sat. Jeg får følgende fejl-meddelelse (da session_start() ikke er medtaget):
Notice: Undefined variable: _SESSION in ..

Eksempel 2: En hel tom siden med nedenstående:
<?php

session_start();

echo $_SESSION['test'];

?>

- Her er session_start() medtaget, men  $_SESSION['test'] er ikke sat - derfor udskrives følgende fejlmeddelelse:
Notice: Undefined index: test in...

Eksempel 3: En hel tom siden med nedenstående:
<?php

session_start();

$_SESSION['test'] = 'Hello World';
echo $_SESSION['test'];

?>

- session_start() er medtaget, og $_SESSION['test'] er sat - følgende output fås:
Hello World

Det er altid godt rent praktisk og kvalitativt ved koden at tjekke, om $_POST-værdier, $_GET-værdier, $_SESSION-værdier, $_COOKIE-værdier og andre relevante værdier er sat, før de bruges - ligesom du selv har valgt at gøre:
if(isset($_SESSION['email'])) {

Svar! :-)
Avatar billede tobrukDk Novice
14. juni 2012 - 08:54 #23
Jeg forstår godt det sidste eksempel og jeg har nemlig prøve men jeg har bare den fejl som du få i nummer 2 men det er bare mærkeligt fordi jeg fik den ikke i den gammel kode altså i den gammel version på min hjemmeside.. hmm mærkeligt.. hmm

men jeg gøre bare sådan der som jeg viser i #21 da jeg ikke rigtigt kan få det til at virker lige nu og ønsker bare ikke rigtigt at skulle blive ved og ved og jeg kan bare ikke få klart problem. og jeg forstår det bare ike da jeg gøre det på samme måde i den gamle version på min hjemmeside.. hmm jeg kan ikke rigtigt få det til at gå op men jeg håber du kan se hvad jeg mener og forstår mig men jeg har valgt at bare bruger den kode som jeg havde i #21..

Men jeg kan godt forstår din eksempel men jeg bliver bare ved med at få fejl efter fejl og det bliver ved og ved..

Du må lige kontakt mig Privat hvis det er at vi skal snakke videre omkring det her emne eller at du har noget at sige til mig :)

Jeg håber du er okay med at jeg gået videre sådan at jeg kan få min hjemmeside færdig til den 1-8-2012.. :)
Avatar billede tobrukDk Novice
14. juni 2012 - 08:54 #24
lukker den også lige :)
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



IT-JOB