Avatar billede funny Nybegynder
09. juli 2006 - 16:11 Der er 56 kommentarer og
1 løsning

Hjælp til if.

er der en der kan sige mig hvordan jeg kan gøre når jeg logger ind med admin at det kun mig der ser fler ting har læst at man måske kan bruge if ($name == $admin) mere ved jeg ikke
Avatar billede funny Nybegynder
09. juli 2006 - 16:12 #1
har en fil kun admin skal kunne se når man er logget på som er opret_bruger.php
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:13 #2
if ($name == $admin) {
include('opret_bruger.php');
}
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:15 #3
Men du bliver nød til at vise mere af din kode..
Avatar billede skrewkrew Nybegynder
09. juli 2006 - 16:16 #4
Hvis du bruger en database, så kan du tilføje et felt til din brugertabel.

Jeg har en integerværdi som bestemmer om en bruger er admin.

Så kan du, når en bruger logger ind, blot tilføje lidt ekstra til dennes menu. Fx den side kun han må se.
Avatar billede funny Nybegynder
09. juli 2006 - 16:20 #5
men lige nu som 'opret_bruger.php' kan alle se den så skal der vel også en script i den?
Avatar billede funny Nybegynder
09. juli 2006 - 16:22 #6
if ($name == $admin) {
include('opret_bruger.php');
}

har jeg lige prøvet at logge ind på med et andet navn den viser den i nu
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:25 #7
F.eks sådan her:

if ($name != $admin) {
header('Location: index.php');
exit;
}

Men hvad indeholder $name og $admin? hvor henne sætter du værdien på dem og hvordan?
Avatar billede funny Nybegynder
09. juli 2006 - 16:33 #8
<?php
include('db.php');
session_start();

if(isset($_SESSION["user"])) {

$sql = mysql_query("SELECT * FROM `user_script` WHERE `user_name` = '". $_SESSION["user"] ."'") or die (mysql_error());

$profil = mysql_fetch_array($sql);

mysql_free_result($sql);
}else{

echo"Du skal logge ind f&oslash;rst!";
}

?>
Avatar billede funny Nybegynder
09. juli 2006 - 16:34 #9
<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5($_POST["pass"]);

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."'") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $_SESSION["user"] = mysql_result($sql, 0);
    header("Location:bruger.php");
    exit;
    }else{
    echo"Forkert brugernavn eller password";
    }
mysql_free_result($sql);

}
?>
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:42 #10
<?php
include('db.php');
session_start();

if(isset($_SESSION["user"])) {
$sql = mysql_query("SELECT * FROM `user_script` WHERE `user_name` = '". $_SESSION["user"] ."'") or die (mysql_error());
$profil = mysql_fetch_array($sql);
mysql_free_result($sql);
} else {
echo"Du skal logge ind f&oslash;rst!";
exit;
}
?>





<?php
include('db.php');
session_start();
if(isset($_POST["navn"] && isset($_POST["pass"]))) {
$password = md5(mysql_real_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_real_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."'") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    $_SESSION["user"] = $_POST["navn"];
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
mysql_free_result($sql);
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 16:47 #11
Parse error: parse error, expecting `','' or `')'' in c:\apache\htdocs\demo\login.php on line 4
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:47 #12
Du skal lige have mysql_free_result($sql); op ved header'en..
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:48 #13
Hvad er det for en der er fejl i?
Avatar billede funny Nybegynder
09. juli 2006 - 16:50 #14
if(isset($_POST["navn"] && isset($_POST["pass"]))) {
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:52 #15
if(isset($_POST["navn"]) && isset($_POST["pass"]))) {
Avatar billede funny Nybegynder
09. juli 2006 - 16:54 #16
Parse error: parse error in c:\apache\htdocs\demo\login.php on line 4
Avatar billede funny Nybegynder
09. juli 2006 - 16:56 #17
ved ikke om du skal vide noget om min sql

user_name
user_pass
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:56 #18
<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_real_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_real_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."'") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:57 #19
Nej det er lige meget..
Avatar billede funny Nybegynder
09. juli 2006 - 16:58 #20
Fatal error: Call to undefined function: mysql_real_escape_string() in c:\apache\htdocs\demo\login.php on line 5
Avatar billede funny Nybegynder
09. juli 2006 - 16:59 #21
$password = md5(mysql_real_escape_string($_POST["pass"]));
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 16:59 #22
<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."'") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 17:01 #23
yep nu var den der er den så lavet så man laver 0 for bruger 1 for admin i sqlen
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 17:09 #24
Nej, der skal du lave et nyt felt i user_script som du f.eks kalder for admin og så sæt den til standart at være nul..


<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."' AND admin == '1'") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 17:16 #25
You have an error in your SQL syntax near '== '1'' at line 1
Avatar billede funny Nybegynder
09. juli 2006 - 17:17 #26
fandt fejlen
Avatar billede funny Nybegynder
09. juli 2006 - 17:18 #27
men man kan jo se opret_bruger i nu med alle login
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 17:19 #28
hvordan ser koden ud på opret bruger..
Avatar billede funny Nybegynder
09. juli 2006 - 17:22 #29
<body>
<p align="center" class="style9 style10">Opret Kunde.</p>
<form method="POST" action="submit_bruger.php">
  <table align="center">
    <tr>
      <td class="style9">Brugernavn</td>
      <td><input name="name" type=text class="style9" ></td>
    </tr>
    <tr>
      <td class="style9">Kode</td>
      <td><input name="pass" type=text class="style9" ></td>
    </tr>
    <tr>
      <td class="style9">E-mail</td>
      <td><input name="mail" type=text class="style9" ></td>
    </tr>
    <tr>
      <td class="style9">Telefon</td>
      <td><input name="tele" type=text class="style9" ></td>
    </tr>
    <tr>
      <td class="style9"> Pakken 1 </td>
      <td><select name="pakke1" class="style9">
        <option>Ja</option>
        <option>Nej</option>
        </select>      </td>
    </tr>
    <tr>
      <td class="style9">Pakken 2 </td>
      <td><select name="pakke2" class="style9">
        <option>Ja</option>
        <option>Nej</option>
      </select></td>
    </tr>
    <tr>
      <td class="style9"><strong>Udl&oslash;bsdato</strong></td>
      <td><input name="slut" type=text class="style9" ></td>
    </tr>
    <tr>
      <td class="style9">Rabat Procent</td>
      <td><input name="rabat" type=text class="style9" ></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input name="e" type="submit" class="style9" value="Tilføj Bruger"></td>
    </tr>
  </table>
  <div align="center"><span class="style9">
    </span></div>
</form>
</body>
</html>
<? if ($fejl == "okay") { echo "Brugeren <b><?=$brugeren?></b> er blevet oprettet<br>"; } ?>
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 17:26 #30
Sæt dette i toppe af opret bruger:

<?php
session_start();
if ($_SESSION["admin"] != '1') {
    header("Location: index.php");
    exit;
}
?>


Og den anden fil skal se sådan ud nu:

<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."' AND admin == 1") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    $_SESSION["admin"] = "1";
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 17:30 #31
den laver den her igen You have an error in your SQL syntax near '== 1' at line 1
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 17:32 #32
Oki, så ret det til du lavede før hvor du skrev fandt fejlen...
Avatar billede funny Nybegynder
09. juli 2006 - 17:43 #33
er den her ok  ."' AND `user_pass` = '". $password ."' AND admin == 1") or die
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 17:46 #34
."' AND `user_pass` = '". $password ."' AND admin = 1") or die
Avatar billede funny Nybegynder
09. juli 2006 - 17:50 #35
nu går det godt den laver fejl her if(mysql_num_rows($sql) == 1) {

<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."' AND admin = 1") or die
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    $_SESSION["admin"] = "1";
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 17:52 #36
prøvet med den her den skriver det her
Unknown column 'admin' in 'where clause'

<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."' AND admin = 1") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    $_SESSION["admin"] = "1";
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 18:00 #37
Det er jo fordi du skal oprette et felt mere i db som jeg skrev i 09/07-2006 17:09:08
Avatar billede funny Nybegynder
09. juli 2006 - 18:03 #38
har lavet et felt som heder user_admin
Avatar billede funny Nybegynder
09. juli 2006 - 18:06 #39
CREATE TABLE user_script (
  id int(6) NOT NULL auto_increment,
  user_name varchar(250) NOT NULL default '',
  user_pass varchar(250) NOT NULL default '',
  user_mail varchar(250) NOT NULL default '',
  user_tele varchar(250) NOT NULL default '',
  user_pakke1 char(3) NOT NULL default 'Nej',
  user_pakke2 char(3) NOT NULL default 'Nej',
  user_slut varchar(250) NOT NULL default '',
  user_rabat varchar(250) NOT NULL default '',
  user_admin varchar(250) NOT NULL default '0',
  PRIMARY KEY  (id),
  UNIQUE KEY id (id)
) TYPE=MyISAM;
Avatar billede funny Nybegynder
09. juli 2006 - 18:09 #40
den laver det her Unknown column 'admin' in 'where clause'
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 18:10 #41
<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."' AND user_admin = 1") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    $_SESSION["admin"] = "1";
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 18:14 #42
nu siger den forkert kode eller brugernavn
Avatar billede funny Nybegynder
09. juli 2006 - 18:18 #43
skal vi stoppe eller tror du vi kan finde ud af det
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 18:29 #44
Du skal rette user_admin fra 0 til 1 på det brugernavn som du vil have til admin, altså i databasen..
Avatar billede funny Nybegynder
09. juli 2006 - 18:34 #45
vis den står 1 i sqlen hvad skal den så stå i koden her
Avatar billede funny Nybegynder
09. juli 2006 - 18:37 #46
nu ser det sådan ud

sql 0

<?php
include('db.php');
session_start();
if(isset($_POST["navn"], $_POST["pass"])) {
$password = md5(mysql_escape_string($_POST["pass"]));

$sql = mysql_query("SELECT `user_name` FROM `user_script` WHERE `user_name` = '". mysql_escape_string($_POST["navn"]) ."' AND `user_pass` = '". $password ."' AND user_admin = 0") or die (mysql_error());
    if(mysql_num_rows($sql) == 1) {
    $user = mysql_result($sql, 0);
    mysql_free_result($sql);
    $_SESSION["user"] = $_POST["navn"];
    $_SESSION["admin"] = "1";
    header("Location:bruger.php");
    exit;
    } else {
    echo"Forkert brugernavn eller password";
    exit;
    }
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 18:42 #47
hvordan skal user_admin se ud for den viser dem med alle bruger
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 18:51 #48
Nej, du skal rette den bruger du vil have til admin inden i din database, ikke i din php kode..
Avatar billede funny Nybegynder
09. juli 2006 - 19:13 #49
Jeg vil lige høre hvad der skal ske når man logger ind med admin ?
kommer der tekst eller kommer der link eller opret_bruger.php

og sqlen user_admin varchar(250) NOT NULL default '0',
Avatar billede funny Nybegynder
09. juli 2006 - 19:14 #50
tror ikke det her virker i opret_bruger <?php
session_start();
if ($_SESSION["admin"] != '1') {
    header("Location: index.php");
    exit;
}
?>
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 19:22 #51
Du skal finde det brugernavn i databasen som du vil have som admin og tryk på ret og ret user_admin til 1..

Du skal ikke rette i user_admin varchar(250) NOT NULL default '0', og heller ikke i php koden..
Avatar billede mpj_86 Nybegynder
09. juli 2006 - 19:22 #52
Og når du logger ind så sender den dig over til bruger.php
Avatar billede funny Nybegynder
09. juli 2006 - 19:23 #53
Feltnavn skal være 1
Avatar billede funny Nybegynder
09. juli 2006 - 19:32 #54
skal
<?php
session_start();
if ($_SESSION["admin"] != '1') {
    header("Location: index.php");
    exit;
}
?>

ikke se sådan ud så
<?php
session_start();
if ($_SESSION["1"] != '1') {
    header("Location: index.php");
    exit;
}
?>
Avatar billede funny Nybegynder
09. juli 2006 - 19:40 #55
pyt vi stopper her takker mange gange for din hjælp det kommer ikke til at virker sorry
Avatar billede funny Nybegynder
09. juli 2006 - 21:09 #56
jeg vil lige høre om der er en anden måde at gøre det på for så må jeg lave et ny svar
Avatar billede mpj_86 Nybegynder
10. juli 2006 - 21:27 #57
Nej, det er en af de nemmeste måde, elles kan du kigge på: http://www.limehost.dk/36/
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