Avatar billede tobrukDk Novice
24. april 2012 - 18:34 Der er 12 kommentarer og
1 løsning

er email i databasen mysqli

hej

Jeg har prøve frem og tilbage med at finde ud af omkring at den "klare" om den er nogle af den email man $_post om den findes i databasen,

jeg har prøve søge rundt på google, men jeg har dog selv lavet det her men det virker dog heller ikke


if($bruger = $mysqli->query("SELECT NULL FROM `brugere` WHERE email = '".$mysqli->real_escape_string($_POST['email'])."'")) {
                    $row_cnt = $result->num_rows;
                        //udeskriver om den findes i databasen.
                        printf("<div id=\"box\"><ul><li>Email er optaget, Pr&#248;ve igen</li></ul></div>");
                }


fandt den her på nette


if ($result = $mysqli->query("SELECT NULL FROM `brugere` WHERE email = '".$mysqli->real_escape_string($_POST['email'])."'")) {

                    /* determine number of rows result set */
                    $row_cnt = $result->num_rows;

                    printf("Result set has %d rows.\n", $row_cnt);

                    /* close result set */
                    $result->close();
                }


Håber du kan hjælp mig, dog er jeg helt lost omkring hvordan jeg skal klare gøre det og lign..
Avatar billede tobrukDk Novice
24. april 2012 - 20:59 #1
har prøve sådan her


if($sql = 'SELECT NULL FROM brugere WHERE email = ?'){
                    $stmt->prepare($sql);
                    $stmt->bind_param('s', $_POST['email']);
                    $stmt->execute();
                    $numrows = $stmt->num_rows;
                }

men kommer frem med fejl her ;

Warning: mysqli_stmt::prepare() [mysqli-stmt.prepare]: Couldn't fetch mysqli_stmt in /home/jesperbo/public_html/djinfo.dk/include/opret_del/opret.php on line 32

Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Couldn't fetch mysqli_stmt in /home/jesperbo/public_html/djinfo.dk/include/opret_del/opret.php on line 33

Warning: mysqli_stmt::execute() [mysqli-stmt.execute]: Couldn't fetch mysqli_stmt in /home/jesperbo/public_html/djinfo.dk/include/opret_del/opret.php on line 34

Warning: main() [function.main]: Couldn't fetch mysqli_stmt in /home/jesperbo/public_html/djinfo.dk/include/opret_del/opret.php on line 35
Avatar billede inteeeL Nybegynder
24. april 2012 - 21:23 #2
Prøv nedenstående:
if($stmt = $mysqli->query("SELECT email FROM `brugere` WHERE email = ?")) {
    $stmt->bind_param('s', $email);
    $email = $_POST['email'];
    $stmt->execute;
    $stmt->store_result();
    if( $stmt->num_rows > 0) {
        echo '<div id="box"><ul><li>Email er optaget, Pr&#248;v igen</li></ul></div>';
    }
}
Avatar billede tobrukDk Novice
25. april 2012 - 22:25 #3
Takker det hjælpe en på fejl ! lige et svar så for du din point :) smiler D:
Avatar billede tobrukDk Novice
25. april 2012 - 23:39 #4
jeg har gøre sådan her

<?php
            if(!empty($_POST))
            {
                /*
                $billedefilnavn = null;
                include ("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/big_img");
                   
                    //til profil billede lign..
                    $handle->image_resize = true;
                    $handle->image_ratio_crop = true;
                    $handle->image_y = 75;
                    $handle->image_x = 75;
                    $handle->Process("profil");
                   
                    $billedefilnavn = $handle->file_dst_name;
                       
                            echo '<p>Billedet: ' . $billedefilnavn . '<br></p>';
                            echo "<p>Dit billede blev upload<br></p>";
                }else{
                    $billedefilnavn = 'bruger_intet.png';
                }
                */
               
                if($stmt = $mysqli->query("SELECT NULL FROM `brugere` WHERE email = ?")) {
                    $stmt->bind_param('d', $email);
                    $email = $_POST["email"];
                    $stmt->execute;
                    $stmt->store_result();
                    if( $stmt->num_rows = 1) {
                        echo '<div id="box"><ul><li>Email er optaget, Pr&#248;v igen</li></ul></div>';
                    }
                }
                else
                {
                    //sende email til brugere
                    $code = rand(111111111, 999999999);
                    //sendere info til brugere.
                    $to = $email;
                    $subject = "Activate din brugere";
                    $headers = "From: support@.....dk";
                    //indhold til email
                    $body = "Hej, \n \n Du er opret og du skal her med nu activate din konto. \n \n klik p&#65533; det her link eller kopie det oppe i din URL bar i din browser \n \n http://....dk/activate.php?code=$code \n \n Takker for det Hilsen Djinfo.dk \n \n Du kan ikke svar p&#65533; den her email";
                   
                   
                    if(empty($errors))
                    {
                        if ($stmt = $mysqli->prepare('INSERT INTO `brugere` (`email`, `password`) VALUES (?, ?)')) {
                                /* Bind parametre */
                                $stmt->bind_param('dd', $email, $password);

                                /* Sæt værdier på parametrene */
                                $email = $_POST["email"];
                                $password = $_POST["password"];

                                $stmt->execute();
                                /* Luk statement */
                                $stmt->close();
                            }else {
                                /* Der er opstået en fejl */
                                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                            }       
                        }
                           
                            if(!$stmt)
                            {
                                echo "fejl";
                            }
                            else
                            {
                                echo "<div id=\"box\"><ul><li>Godkendt brugere</li></ul></div>";
                            }
                        }
                }
        ?>


Men den bliver ved med at sige Godkendt brugere selv om jeg opret flere af den samme email..
Avatar billede tobrukDk Novice
26. april 2012 - 00:04 #5
jeg har også prøve sådan her ;


<?php
            if(!empty($_POST))
            {               
                if ($stmt = $mysqli->prepare('SELECT * FROM brugere WHERE email = ?')) {
                $stmt->bind_param("s", $findemail);
                $stmt->execute();
                $stmt->store_result();
                $count=$stmt->num_rows;
                $stmt->close();
                }
                if ($count > 0)
                {
                    echo 'Der findes allerede en bruger med denne email';
                    exit;
                }
                else
                {
                    //sende email til brugere
                    $code = rand(111111111, 999999999);
                    //sendere info til brugere.
                    $to = $email;
                    $subject = "Activate din brugere - .....dk";
                    $headers = "From: support@...dk";
                    //indhold til email
                    $body = "Hej, \n \n Du er opret og du skal her med nu activate din konto. \n \n klik p? det her link eller kopie det oppe i din URL bar i din browser \n \n http://....dk/activate.php?code=$code \n \n Takker for det Hilsen Djinfo.dk \n \n Du kan ikke svar p? den her email";
                   
                   
                    if(empty($errors))
                    {
                        if ($stmt = $mysqli->prepare('INSERT INTO `brugere` (`email`, `password`) VALUES (?, ?)')) {
                                /* Bind parametre */
                                $stmt->bind_param('dd', $email, $password);

                                /* Sæt værdier på parametrene */
                                $email = $_POST["email"];
                                $password = $_POST["password"];

                                $stmt->execute();
                                /* Luk statement */
                                $stmt->close();
                            }else {
                                /* Der er opstået en fejl */
                                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                            }       
                        }
                           
                            if(!$stmt)
                            {
                                echo "fejl";
                            }
                            else
                            {
                                echo "<div id=\"box\"><ul><li>Godkendt brugere</li></ul></div>";
                            }
                        }
                }
        ?>

___________________


<form action="" method="post" enctype="multipart/form-data">
        <table border="0">
        <tr>
            <td><p>Email Adresse</p></td>
            <td>:</td>
            <td><input type="email" name="email"></td>
            <td>
            <span onmouseover="showText('message', 0, event)" onmouseout="hideText('message')">
                <img src="http://.....dk/img/opret_del/question.gif" alt="" height="20" width="20" border="0" />
            </span>
            <div id="message" class="box">&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td><p>Adgangskode</p></td>
            <td>:</td>
            <td><input type="password" name="password"></td>
            <td>
            <span onmouseover="showText('message', 1, event)" onmouseout="hideText('message')">
                <img src="http://....dk/img/opret_del/question.gif" alt="" height="20" width="20" border="0" />
            </span>
            <div id="message" class="box">&nbsp;</div>
            </td>
        </tr>
        <tr>
            <td><p>Gentag Adgangskode</p></td>
            <td>:</td>
            <td><input type="password" name="gentag"></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td><input type="submit" name="godkendt" value="Opret Bruger" /></td>
        </tr>
    </table>
    </form>
Avatar billede inteeeL Nybegynder
26. april 2012 - 10:21 #6
Du definerer jo ikke $findemail. Prøv nedenstående:
<?php
    if(!empty($_POST))
    {             
    if ($stmt = $mysqli->prepare('SELECT * FROM brugere WHERE email = ?')) {
        $stmt->bind_param("s", $findemail);
        $findemail = $_POST['email'];
        $stmt->execute();
        $stmt->store_result();
        $count = $stmt->num_rows;
        $stmt->close();
    }
Avatar billede tobrukDk Novice
26. april 2012 - 11:25 #7
Test det lige når jeg kommer hjem InteeeL, da jeg lige pt nu og her er i skole men jeg tror også det vil virker, men finde lige ud af det når jeg kommer hjem :D
Avatar billede inteeeL Nybegynder
26. april 2012 - 12:06 #8
Det burde virke.. Jeg smider lige et svar. :-)
Avatar billede tobrukDk Novice
26. april 2012 - 14:39 #9
Okay inteeel hvordan skal jeg gøre sådan at den kommer frem og siger "Der findes allerede en bruger med denne email" f.eks?
Avatar billede tobrukDk Novice
26. april 2012 - 18:17 #10
gør sådan her

if($stmt = $mysqli->prepare(' SELECT * FROM brugere WHERE email = ?' ))
                    {
                        $stmt->bind_param("s", $findemail);
                        $findemail = $_POST["email"];
                        $stmt->execute();
                        $stmt->store_result();
                        $count = $stmt->num_rows;
                        $stmt->close();
                       
                        if ($count > 0)
                        {
                          echo "<div id=\"box\"><ul><li>Email er optaget, Pr&#248;ve igen</li></ul></div>";
                        }
                    }
Avatar billede inteeeL Nybegynder
26. april 2012 - 21:18 #11
Jeg har lige prøvet at rette lidt i din kode, prøv nedenstående:
<?php

if(!empty($_POST))
{             
    if ($stmt = $mysqli->prepare('SELECT * 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;
        }
    }
    else {
        /* Der er opstået en fejl */
        echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
    }
    if( !isset( $user_found)) {
        //sende email til brugere
        $code = rand(111111111, 999999999);
        //sendere info til brugere.
        $to = $email;
        $subject = "Activate din brugere - .....dk";
        $headers = "From: support@...dk";
        //indhold til email
        $body = "Hej, \n \n Du er opret og du skal her med nu activate din konto. \n \n klik p? det her link eller kopie det oppe i din URL bar i din browser \n \n http://....dk/ (...) \n \n Takker for det Hilsen Djinfo.dk \n \n Du kan ikke svar p? den her email";
             
        if(empty($errors))
        {
            if ($stmt = $mysqli->prepare('INSERT INTO `brugere` (`email`, `password`) VALUES (?, ?)')) {
                /* Bind parametre */
                $stmt->bind_param('ss', $email, $password);

                /* Sæt værdier på parametrene */
                $email = $_POST["email"];
                $password = $_POST["password"];

                $stmt->execute();
                /* Luk statement */
                $stmt->close();
               
                echo "<div id=\"box\"><ul><li>Godkendt brugere</li></ul></div>";
               
            } else {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
    }
    else {
        echo 'Der findes allerede en bruger med denne mail';
    }
}

?>
Avatar billede inteeeL Nybegynder
26. april 2012 - 21:21 #12
Og forresten, nu når du har kastet dig ud i mysqli og prepared statements, kan du lige så godt få håndtering af mysqli-fejl ordentlig gjort.

http://www.eksperten.dk/guide/1479
Avatar billede tobrukDk Novice
27. april 2012 - 11:15 #13
okay, tak , så læret jeg noget nyt igen at hvor jeg kan tilføje "fejl", eller hvad man kalder det :D
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