Avatar billede tobrukDk Novice
24. marts 2012 - 22:29 Der er 14 kommentarer og
1 løsning

blocker brugere til at for adgang

Hej


det er sådan jeg vil gerne kun gøre sådan at bruger ikke ville kun for adgang til hjemmesiden f.eks hvis bruger har sagt eller skrevet noget som ikke skulle blive skrevet eller sagt. :) det er sådan at jeg har bygge rank system op ind på hjemmesiden :)


jeg sidde med en lille idé om at bygge det op via at klik på et link eller lign så bliver brugers blocker men så tænker jeg også lidt hvordan skal jeg så gøre at han/hun ikke er blocker. jeg gider ikke skulle gå ind i databasen hver gang og finder bruger..


Men håber du har en ide til at hvordan jeg kan bygge det op på :)
Avatar billede heinzdmx Nybegynder
25. marts 2012 - 00:06 #1
I forlængelse af dit rank-system som er en int, så kunne du jo sætte rank til -1 ved blokkering - så er det rimelig nemt at tilføje en WHERE RANK > -1

I dit login script. Hvis brugeren så skal have adgang igen, må du jo sætte den nye rank når han unblokkes
Avatar billede tobrukDk Novice
25. marts 2012 - 00:18 #2
sådan her ser mit log ind ud når man prøve at log ind


<?php
    session_start();
 
    include("include/database/db.php");
 
    $email = $_POST["email"];
    $password = $_POST["password"];
    $error = "";
 
    $userQuery = mysql_query("SELECT id,email,password,rank FROM brugere WHERE email='$email'") or die(mysql_error());
 
    if(mysql_num_rows($userQuery) < 1)
    {
        $error .= "Brugeren eksisterer ikke.<br>";
    }
    else
    {
        $userArray = mysql_fetch_array($userQuery);
 
        if($userArray["password"] != sha1($password))
        {
            header("Location: index.php");
            exit();
        }
    }
    if($error != "")
    {
        header("Location: index.php");
        exit();
    }
    else
    {
        $_SESSION["logged_in"] = 1;
        $_SESSION["user_id"] = $userArray["id"];
        if ($userArray['rank']==1) {
            header("Location: admin_index.php");
            exit();
        }
        header("Location: user.php");
        exit();
    }   
?>


og mit rank er bygge op på tinyint(1)

så admin har 1 og normalt bruger har 0. men skal jeg bygge sådan at admin har 2 og blocker bruger har 1 og normal bruger har 0.. :) eller hvad??


spørger hvis der er mere du vil vide ?
Avatar billede heinzdmx Nybegynder
25. marts 2012 - 01:17 #3
Hvis skal til at lave om på rækkefølgen, så synes jeg du skal sætte blokkerede til 0, fordi du så stadig kan bruge en WHERE RANK > 0

I tilfælde af at rank er 1 skal du jo tjekke for både RANK=0 og RANK=2 hvilket jo gør det en del mere besværligt.

Alternativt kan du jo sætte blokkeret til den højeste mulige og da en tinyint går fra 0 to 255, så 255, så skal din where være: WHERE RANK < 255
Avatar billede tobrukDk Novice
25. marts 2012 - 01:42 #4
heinzdmx Jeg forstår ikke helt hvor det er du ville henne jeg misforstår nok den måde som du forklare det over for mig eller hvad?.. ;) men kan jeg ikke gøre sådan at tinyint start på 1??
Avatar billede tobrukDk Novice
25. marts 2012 - 01:51 #5
Fordi hvis man kan gør sådan at den bare start på 1 hele tiden. så bliver det jo meget nemt at gøre det :)

Så kan jeg gøre sådan at hvis man klik ja altså blocker bruger eller hvad man skal kalde det så bliver den nej og hvis man har klik ja. så kan man klik nej så kommer den tilbage på 1 :)


Det er sådan jeg tænker lige nu :)
Avatar billede tobrukDk Novice
25. marts 2012 - 13:14 #6
skal jeg bare find ud af hvordan man gør sådan at tinyint hele tiden start på 1 :)
Avatar billede heinzdmx Nybegynder
25. marts 2012 - 13:24 #7
Du kan sætte en standard værdi når du opretter databasen med
default '0'


Men det kan du jo også bare sætte når du opretter brugeren, i dit INSERT script.


Det jeg mener med ovenstående er at når du skal lade en bruger logge ind, så bliver du jo nødt til at tjekke om brugeren er blokkeret eller ej, hvis blokkeret er 1 og almindelig bruger er 0, og admin er 2, så skal du jo udføre et tjek på om værdien ikke er lig 1, og hvis du så tilføjer andre der ikke må kunne logge ind, så skal du tilføje endnu mere til din WHERE når du lader folk logge ind.

Hvis du deridmod siger at alt over 240 er blokkeret, så har du rig mulighed for forskellige ranks, og forskellig grad af blokkering, og din WHERE statement i dit login script skal så bare tjekke om RANK er mindre end 240.

Håber du kan se hvad jeg mener nu
Avatar billede tobrukDk Novice
25. marts 2012 - 13:31 #8
ja jeg godt se lidt hvad du mener med det :)

http://localhostr.com/files/lzdCLiq/capture.png

er det sådan jeg skal gøre med


<?php
            if(!empty($_POST))
            {
                $email = mysql_real_escape_string($_POST["email"]);
                $password = mysql_real_escape_string($_POST["password"]);
                $gentag = mysql_real_escape_string($_POST["gentag"]);
                $djnavn = mysql_real_escape_string($_POST["djnavn"]);
                $profiltekst = mysql_real_escape_string($_POST["profiltekst"]);
                $facebook = mysql_real_escape_string($_POST["facebook"]);
                $club = mysql_real_escape_string($_POST["club"]);
                $booking = mysql_real_escape_string($_POST["booking"]);
                $hemmelig = mysql_real_escape_string($_POST["hemmelig"]);
                $pris = mysql_real_escape_string($_POST["pris"]);
               
               
                $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';
                            }
               
                $bruger = mysql_query("SELECT NULL FROM brugere WHERE email='$email'");
                if(mysql_num_rows($bruger) > 0)
                {
                    echo "<p style=\"color:#f00;\">Email er optaget, Prøve igen</p>";
                }
                else
                {
                   
                    $errors = array
                (
                    "email" => "Husk du skal indtaste en email som brugernavn.",
                    "password" => "Husk du skal indtaste et password.",
                    "gentag" => "Husk de to passwordfelter skal have ens indhold og password.",
                    "djnavn" => "Husk at indsæt Djnavn.",
                    "profiltekst" => "Husk at tilføj noget profil tekst.",
                    "facebook" => "Husk at tilføj ritgit facebook.",
                    "booking" => "Husk Booking Email.",
                    "hemmelig" => "Husk hemmelig kode ord.",
                    "pris" => "Husk en pris.",
                    "club" => "Husk club sted."
                    );
                   
                    if(!empty($pris))
                    {
                        unset($errors["pris"]);
                    }
                    if(!empty($club))
                    {
                        unset($errors["club"]);
                    }
                    if(!empty($email))
                    {
                        unset($errors["email"]);
                    }
                    if(!empty($password))
                    {
                        unset($errors["password"]);
                    }
                    if(!empty($gentag) && $gentag == $password)
                    {
                        unset($errors["gentag"]);
                    }
                    if(!empty($djnavn))
                    {
                        unset($errors["djnavn"]);
                    }
                    if(!empty($profiltekst))
                    {
                        unset($errors["profiltekst"]);
                    }
                    if(!empty($facebook))
                    {
                        unset($errors["facebook"]);
                    }
                    if(!empty($booking))
                    {
                        unset($errors["booking"]);
                    }
                    if(!empty($hemmelig))
                    {
                        unset($errors["hemmelig"]);
                    }
                   
                    if(empty($errors))
                    {
                        $password = sha1($password);
                        $insert = mysql_query("INSERT INTO brugere (email,password,profilbillede,djnavn,profiltekst,facebook,club,pris,booking,hemmelig)
                        VALUES ('$email', '$password','$billedefilnavn','$djnavn','$profiltekst','$facebook','$club','$pris','$booking','$hemmelig')");
                       
                        if(!$insert)
                        {
                            header('Location: fejl.php');
                            exit();
                        }
                        else
                        {
                            header('Location: index.php');
                            exit();
                        }
                    }
                    else
                    {
                        echo "<div id=\"box\"><h4>HUSK DET HER!!</h4><ul><li>" . implode("</li><li>", $errors) . "</li></ul></div>";
                    }
                }
            }
        ?>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="email" name="email" placeholder="Email Adresse" id="brugerinfomation">
    <br>
    <input type="password" name="password" placeholder="Adgangskode" id="brugerinfomation">
    <br>
    <input type="password" name="gentag" placeholder="Gentag Adgangskode" id="brugerinfomation">
    <br>
    <h3>Privat Infomation Indhold</h3>
    <input type="text" name="djnavn" placeholder="Djnavn" id="brugerinfomation">
    <br>
    <input type="text" name="club" placeholder="Club steder" id="brugerinfomation">
    <br>
    <input type="text" name="pris" placeholder="Pris" id="brugerinfomation">
    <br>
    <input type="email" name="booking" placeholder="Booking email" id="brugerinfomation">
    <br>
    <input type="text" name="facebook" placeholder="Facebook Fan side" id="brugerinfomation">
    <br>
    <h3>Profil Tekst</h3>
    <textarea name="profiltekst" style="width:605px; height:155px;"></textarea><br />
    <input type="file" name="file"><br>
    <input type="text" name="hemmelig" placeholder="Hemmelig kodeord" id="brugerinfomation">
    <br>
    <input type="submit" value="Godkendt Profil">
    <script>
        $(function(){
            $('#box').hide().fadeIn(3000);
        });
    </script>


sådan her ser det ud når man opret en bruger .. :) Håber du kan hjælp mig lidt videre på det?
Avatar billede heinzdmx Nybegynder
25. marts 2012 - 13:41 #9
Nu bruger jeg ikke MySQL tit nok til at kunne se det udfra hvilken rækkefølge at det står i uden at se kolonnenavnene, men det er jo nok meget rigtigt for dit opret script
Avatar billede tobrukDk Novice
25. marts 2012 - 13:47 #10
Ja det ved jeg godt at du synes men jeg vil også gerne have bruger opret alle input ting ting?.. :)

men kan du se det hele ; http://localhostr.com/files/cQxF5bA/capture.png
Avatar billede heinzdmx Nybegynder
25. marts 2012 - 14:05 #11
hvis empty($array) ikke virker kunne du jo prøve Count

http://php.net/manual/en/function.count.php

$food = array('username' => 'brugernavn existere allerede',
              'password' => 'Password skal indtastes');

// normal count
echo count($food); // output 2


så den bliver

if (count($errors) > 0)
{
    // fejl besked
}
else
{
    // insert
}



Hvis det ikke er det der er galt, må du lige uddybe
Avatar billede tobrukDk Novice
25. marts 2012 - 14:11 #12
lige nu skal jeg bare arbejde på at for lave det der med rank første før jeg kigge på noget andet :) desværre :)
Avatar billede tobrukDk Novice
25. marts 2012 - 15:01 #13
havde tænkt at lave sådan her


<input type="hidden" name="rank" value="<?php echo $row["rank"];?>">


men nu skal jeg bare gør sådan at rank altså 0 bliver til 1 og der efter lige sig over i databasen ..

hmm nogle som har ide ?


<?php
            if(!empty($_POST))
            {
                $email = mysql_real_escape_string($_POST["email"]);
                $password = mysql_real_escape_string($_POST["password"]);
                $gentag = mysql_real_escape_string($_POST["gentag"]);
                $djnavn = mysql_real_escape_string($_POST["djnavn"]);
                $profiltekst = mysql_real_escape_string($_POST["profiltekst"]);
                $facebook = mysql_real_escape_string($_POST["facebook"]);
                $club = mysql_real_escape_string($_POST["club"]);
                $booking = mysql_real_escape_string($_POST["booking"]);
                $hemmelig = mysql_real_escape_string($_POST["hemmelig"]);
                $pris = mysql_real_escape_string($_POST["pris"]);
               
               
                $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';
                            }
               
                $bruger = mysql_query("SELECT NULL FROM brugere WHERE email='$email'");
                if(mysql_num_rows($bruger) > 0)
                {
                    echo "<p style=\"color:#f00;\">Email er optaget, Prøve igen</p>";
                }
                else
                {
                   
                    $errors = array
                (
                    "email" => "Husk du skal indtaste en email som brugernavn.",
                    "password" => "Husk du skal indtaste et password.",
                    "gentag" => "Husk de to passwordfelter skal have ens indhold og password.",
                    "djnavn" => "Husk at indsæt Djnavn.",
                    "profiltekst" => "Husk at tilføj noget profil tekst.",
                    "facebook" => "Husk at tilføj ritgit facebook.",
                    "booking" => "Husk Booking Email.",
                    "hemmelig" => "Husk hemmelig kode ord.",
                    "pris" => "Husk en pris.",
                    "club" => "Husk club sted."
                    );
                   
                    if(!empty($pris))
                    {
                        unset($errors["pris"]);
                    }
                    if(!empty($club))
                    {
                        unset($errors["club"]);
                    }
                    if(!empty($email))
                    {
                        unset($errors["email"]);
                    }
                    if(!empty($password))
                    {
                        unset($errors["password"]);
                    }
                    if(!empty($gentag) && $gentag == $password)
                    {
                        unset($errors["gentag"]);
                    }
                    if(!empty($djnavn))
                    {
                        unset($errors["djnavn"]);
                    }
                    if(!empty($profiltekst))
                    {
                        unset($errors["profiltekst"]);
                    }
                    if(!empty($facebook))
                    {
                        unset($errors["facebook"]);
                    }
                    if(!empty($booking))
                    {
                        unset($errors["booking"]);
                    }
                    if(!empty($hemmelig))
                    {
                        unset($errors["hemmelig"]);
                    }
                   
                    if(empty($errors))
                    {
                        $password = sha1($password);
                        $insert = mysql_query("INSERT INTO brugere (email,password,profilbillede,djnavn,profiltekst,facebook,club,pris,booking,hemmelig)
                        VALUES ('$email', '$password','$billedefilnavn','$djnavn','$profiltekst','$facebook','$club','$pris','$booking','$hemmelig')");
                       
                        if(!$insert)
                        {
                            header('Location: fejl.php');
                            exit();
                        }
                        else
                        {
                            header('Location: index.php');
                            exit();
                        }
                    }
                    else
                    {
                        echo "<div id=\"box\"><h4>HUSK DET HER!!</h4><ul><li>" . implode("</li><li>", $errors) . "</li></ul></div>";
                    }
                }
            }
        ?>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="hidden" name="rank" value="<?php echo $row["rank"];?>">
    <input type="email" name="email" placeholder="Email Adresse" id="brugerinfomation">
    <br>
    <input type="password" name="password" placeholder="Adgangskode" id="brugerinfomation">
    <br>
    <input type="password" name="gentag" placeholder="Gentag Adgangskode" id="brugerinfomation">
    <br>
    <h3>Privat Infomation Indhold</h3>
    <input type="text" name="djnavn" placeholder="Djnavn" id="brugerinfomation">
    <br>
    <input type="text" name="club" placeholder="Club steder" id="brugerinfomation">
    <br>
    <input type="text" name="pris" placeholder="Pris" id="brugerinfomation">
    <br>
    <input type="email" name="booking" placeholder="Booking email" id="brugerinfomation">
    <br>
    <input type="text" name="facebook" placeholder="Facebook Fan side" id="brugerinfomation">
    <br>
    <h3>Profil Tekst</h3>
    <textarea name="profiltekst" style="width:605px; height:155px;"></textarea><br />
    <input type="file" name="file"><br>
    <input type="text" name="hemmelig" placeholder="Hemmelig kodeord" id="brugerinfomation">
    <br>
    <input type="submit" value="Godkendt Profil">
    <script>
        $(function(){
            $('#box').hide().fadeIn(3000);
        });
    </script>
Avatar billede tobrukDk Novice
25. marts 2012 - 15:47 #14
jeg er kommet frem til det var sådan her jeg skulle gøre det


$rank = "1";
                        $password = sha1($password);
                        $insert = mysql_query("INSERT INTO brugere (rank,email,password,profilbillede,djnavn,profiltekst,facebook,club,pris,booking,hemmelig)
                        VALUES ('$rank','$email', '$password','$billedefilnavn','$djnavn','$profiltekst','$facebook','$club','$pris','$booking','$hemmelig')");
                       
Avatar billede tobrukDk Novice
25. marts 2012 - 16:14 #15
Lukker den selv :)
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