Avatar billede Kenz Praktikant
09. august 2016 - 01:20 Der er 14 kommentarer

Tjek om status = 1 i database før visning af filen

Hey.. Jeg sidder med et problem som jeg ikke kender løsningen på..

Jeg har et table i min mysql (gammel database, ikke mysqli - jeg ved det)
som hedder chat_brugere.

Jeg har så et script, som jeg gerne vil have at brugeren af siden skal kunne bruge, hvis denne bruger er logget ind, og har status 1 i databasen.. status er en column i chat_brugere.

Indtil videre, tjekker den om brugeren er aktiv, dog kan jeg ikke lige hitte ud af hvordan den oven i det, også tjekker om status = 1?

Scriptet ser sådan her ud:

    <?php
    if(isset($_SESSION['logget_ind']) && $_SESSION['logget_ind'] == true) {
    if (isset($_POST['opret'])) {
   
                $bruger = mysql_real_escape_string($_POST['bruger']);
                $kontanter = mysql_real_escape_string($_POST['kontanter']);


                        mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."'");
                       

                        echo 'Brugeren har fået ændret sine kontanter!';
                } else {
                    echo '';
                }
           
            echo '
            <form action="" method="POST">

                <div>
                    <table>
                        <tr>
                            <td><center><b>Ændre Kontanter</b></center>
                    </td>
                        </tr>
                        <tr>
                            <td>bruger:<input id="bruger" type="text" name="bruger" maxlength="10" style="width: 100px" onkeypress="return textonly(event);" /> </td>
                        </tr>
                        <tr>
                        <td>Antal kontanter:<input id="kontanter" type="text" name="kontanter" maxlength="10" style="width: 100px" onkeypress="return isNumber(event);" /> </td>
                        </td>
                        </tr>
                        <tr>
                            <td><center><input type="submit" name="opret" value="Giv!" /></center></td>
                        </tr>
                    </table>
                </div>
            </form>
            ';
                    } else {
            echo 'Fail dude...';
        }


Håber der er en som kan hjælpe!
Avatar billede arne_v Ekspert
09. august 2016 - 02:19 #1
mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."' AND status=1");

maaske
Avatar billede Kenz Praktikant
09. august 2016 - 02:40 #2
Nej, Den kode gør bare sådan at den kun giver kontanterne til en bruger med status 1..

Det som jeg vil have, er at det kun er muligt for brugere med status 1, at se siden hvor man kan give andre kontanter.. Jeg har brugt if(isset($_SESSION['logget_ind']) && $_SESSION['logget_ind'] == true) {

Til at tjekke om brugeren som prøver at se siden er logget ind.. Og det er der at jeg vil tilføje at den også tjekker om brugeren er status 1, før den viser siden :P

Håber du forstår
Avatar billede arne_v Ekspert
09. august 2016 - 02:55 #3
Ah.

Saa skal du have fat i brugernavn. Det er vel i session.

Og saa en query mod databasen som henter status for det brugernavn.
Avatar billede Kenz Praktikant
09. august 2016 - 03:01 #4
Kan du give et eksempel? Jeg har ikke kodet i 100 år, og dengang jeg gjorde, var det meget lidt
Avatar billede arne_v Ekspert
09. august 2016 - 03:10 #5
Jeg kender jo ikke din kode.

Men til inspiration:

$me = $_SESSION['logget_ind_som_bruger'];
$q = mysql_query("SELECT status FROM enellerandentabel WHERE brugernavn='$me'");
$row = mysql_fetch_array($q);
$status = $row['status'];
if($status === 1) {


} else {


}
Avatar billede Kenz Praktikant
09. august 2016 - 03:24 #6
Kan du tilpasse det til dette? Det er hele filen.. (og beklager at det er så gammel kode.)

<?php
session_start();
require_once("includes/config.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/chat.css" />
        <title></title>
        <script type="text/javascript">
function textonly(e){
var code;
if (!e) var e = window.event;
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
var character = String.fromCharCode(code);
//alert('Character was ' + character);
    //alert(code);
    //if (code == 8) return true;
    var AllowRegex  = /^[\ba-zA-Z\s-]$/;
    if (AllowRegex.test(character)) return true;   
    return false;
}
function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
        </script>
    </head>
    <body>

    <center>
    <?php
   
    if(isset($_SESSION['logget_ind']) && $_SESSION['logget_ind'] == true) {
    if (isset($_POST['opret'])) {
   
                $bruger = mysql_real_escape_string($_POST['bruger']);
                $kontanter = mysql_real_escape_string($_POST['kontanter']);


                        mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."'");
                       

                        echo 'Brugeren har fået ændret sine kontanter!';
                } else {
                    echo '';
                }
           
            echo '
            <form action="" method="POST">

                <div>
                    <table>
                        <tr>
                            <td><center><b>Ændre Kontanter</b></center>
                    </td>
                        </tr>
                        <tr>
                            <td>bruger:<input id="bruger" type="text" name="bruger" maxlength="10" style="width: 100px" onkeypress="return textonly(event);" /> </td>
                        </tr>
                        <tr>
                        <td>Antal kontanter:<input id="kontanter" type="text" name="kontanter" maxlength="10" style="width: 100px" onkeypress="return isNumber(event);" /> </td>
                        </td>
                        </tr>
                        <tr>
                            <td><center><input type="submit" name="opret" value="Giv!" /></center></td>
                        </tr>
                    </table>
                </div>
            </form>
            ';
                    } else {
            echo 'Fail dude...';
        }

        ?>
    </body>
    </html>
Avatar billede arne_v Ekspert
09. august 2016 - 03:36 #7
Nej. Der er flere ting jeg ikke ved om konteksten.
Avatar billede Kenz Praktikant
09. august 2016 - 04:02 #8
Jeg har prøvet lidt forskellige ting nu, men ingen af dem gider at virke.
Ser det her ud til at være nogenlunde tæt på?

    <?php
    if(isset($_SESSION['logget_ind']) && $_SESSION['logget_ind'] == true) {
    if($status === 1) {
    if (isset($_POST['opret'])) {
   
                $bruger = mysql_real_escape_string($_POST['bruger']);
                $kontanter = mysql_real_escape_string($_POST['kontanter']);
                $row = mysql_fetch_array($q);
                $status = $row['status'];

                        mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."'");
                        $q = mysql_query("SELECT status FROM chat_brugere WHERE brugernavn='$bruger'");

                        echo 'Brugeren har fået ændret sine kontanter!';
                } else {
                    echo '';
                }
           
            echo '
            <form action="" method="POST">

                <div>
                    <table>
                        <tr>
                            <td><center><b>Ændre Kontanter</b></center>
                    </td>
                        </tr>
                        <tr>
                            <td>bruger:<input id="bruger" type="text" name="bruger" maxlength="10" style="width: 100px" onkeypress="return textonly(event);" /> </td>
                        </tr>
                        <tr>
                        <td>Antal kontanter:<input id="kontanter" type="text" name="kontanter" maxlength="10" style="width: 100px" onkeypress="return isNumber(event);" /> </td>
                        </td>
                        </tr>
                        <tr>
                            <td><center><input type="submit" name="opret" value="Giv!" /></center></td>
                        </tr>
                    </table>
                </div>
            </form>
            ';
                    } else {
            echo 'Fail dude...';
        }

        ?>


Tabellen hedder chat_brugere.. Column ''brugernavn'' er brugerens navn, Column ''kontanter'' er brugerens kontanter, og Column ''status'' er brugerens status, og det er statussen som jeg prøver at få den til også at tjekke, før den viser siden.. >_>
Avatar billede arne_v Ekspert
09. august 2016 - 05:42 #9
$q = mysql_query("SELECT status FROM chat_brugere WHERE brugernavn='$bruger'");
$row = mysql_fetch_array($q);
$status = $row['status'];

vil hente status for $bruger.

Men det er vel ikke $bruger men $me der skal checkes status for.

Og checket skal vel laves foer end du laver UPDATE.
Avatar billede Kenz Praktikant
10. august 2016 - 17:29 #10
Nu har jeg stortset fikset scriptet, det eneste jeg mangler, er at define $status ... Hvordan gør jeg det?

<?php
session_start();
require_once("includes/config.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="css/chat.css" />
        <title></title>
        <script type="text/javascript">
function textonly(e){
var code;
if (!e) var e = window.event;
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
var character = String.fromCharCode(code);
//alert('Character was ' + character);
    //alert(code);
    //if (code == 8) return true;
    var AllowRegex  = /^[\ba-zA-Z\s-]$/;
    if (AllowRegex.test(character)) return true;   
    return false;
}
function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
        </script>
    </head>
    <body>

    <center>
<?php
 

if(isset($_SESSION['logget_ind']) && $_SESSION['logget_ind'] == true) {
  if($status === 1) {
        if (isset($_POST['opret'])) {

            $bruger = mysql_real_escape_string($_POST['bruger']);
            $kontanter = mysql_real_escape_string($_POST['kontanter']);
            $row = mysql_fetch_array($q);
            $status = $row['status'];
            $q = mysql_query("SELECT status FROM chat_brugere WHERE brugernavn='$bruger'");

                    mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."'");               

        echo 'Brugeren har fået ændret sine kontanter!';
            } else {
                echo '';
            }

        echo '
        <form action="" method="POST">

            <div>
                <table>
                    <tr>
                        <td><center><b>Ændre Kontanter</b></center>
                </td>
                    </tr>
                    <tr>
                        <td>bruger:<input id="bruger" type="text" name="bruger" maxlength="10" style="width: 100px" onkeypress="return textonly(event);" /> </td>
                    </tr>
                    <tr>
                    <td>Antal kontanter:<input id="kontanter" type="text" name="kontanter" maxlength="10" style="width: 100px" onkeypress="return isNumber(event);" /> </td>
                    </td>
                    </tr>
                    <tr>
                        <td><center><input type="submit" name="opret" value="Giv!" /></center></td>
                    </tr>
                </table>
            </div>
        </form>
        ';
                } else {
        echo 'Fail dude...';
} }

    ?>
    </body>
    </html>
Avatar billede arne_v Ekspert
11. august 2016 - 04:42 #11
Nu er jeg forvirret.

I #2 skrev du:


Nej, Den kode gør bare sådan at den kun giver kontanterne til en bruger med status 1..

Det som jeg vil have, er at det kun er muligt for brugere med status 1, at se siden hvor man kan give andre kontanter.


Og nu laver du:


$q = mysql_query("SELECT status FROM chat_brugere WHERE brugernavn='$bruger'");

                    mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."'");             


som checker samme bruger som skal aendres????
Avatar billede Kenz Praktikant
11. august 2016 - 07:11 #12
... Ja, det skal den ikke.. nu giver jeg snart op.
Avatar billede Kenz Praktikant
11. august 2016 - 08:07 #13
Nu tror jeg at jeg ved hvad du mente, men dette virker heller ikke?

    <?php

   
    if(isset($_SESSION['logget_ind']) && $_SESSION['logget_ind'] == true) {
    if(isset($_SESSION['status']) == 1)
    if (isset($_POST['opret'])) {
   
                $bruger = mysql_real_escape_string($_POST['bruger']);
                $kontanter = mysql_real_escape_string($_POST['kontanter']);
                $q = mysql_query("SELECT status FROM chat_brugere WHERE brugernavn='$_SESSION.brugernavn'");
                $row = mysql_fetch_array($q);
                $status = $row['status'];

                        mysql_query("UPDATE `chat_brugere` SET `kontanter` = '".$kontanter."' WHERE `brugernavn` = '".$bruger."'");
                       

                        echo 'Brugeren har fået ændret sine kontanter!';
                } else {
                    echo '';
                }
Avatar billede Kenz Praktikant
11. august 2016 - 17:16 #14
Nu virker det.

$getStatus = mysql_query("SELECT * FROM `chat_brugere` WHERE `id` = '".$_SESSION['id']."'"); $showStatus = mysql_fetch_array($getStatus); if ($showStatus['status'] == 1) {
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

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