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
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
har en fil kun admin skal kunne se når man er logget på som er opret_bruger.php
if ($name == $admin) { include('opret_bruger.php'); }
Men du bliver nød til at vise mere af din kode..
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.
men lige nu som 'opret_bruger.php' kan alle se den så skal der vel også en script i den?
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
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?
<?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ørst!"; } ?>
<?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); } ?>
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ø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); } ?>
09. juli 2006 - 16:47
#11
Parse error: parse error, expecting `','' or `')'' in c:\apache\htdocs\demo\login.php on line 4
09. juli 2006 - 16:47
#12
Du skal lige have mysql_free_result($sql); op ved header'en..
09. juli 2006 - 16:48
#13
Hvad er det for en der er fejl i?
09. juli 2006 - 16:50
#14
if(isset($_POST["navn"] && isset($_POST["pass"]))) {
09. juli 2006 - 16:52
#15
if(isset($_POST["navn"]) && isset($_POST["pass"]))) {
09. juli 2006 - 16:54
#16
Parse error: parse error in c:\apache\htdocs\demo\login.php on line 4
09. juli 2006 - 16:56
#17
ved ikke om du skal vide noget om min sql user_name user_pass
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; } } ?>
09. juli 2006 - 16:57
#19
Nej det er lige meget..
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
09. juli 2006 - 16:59
#21
$password = md5(mysql_real_escape_string($_POST["pass"]));
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; } } ?>
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
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; } } ?>
09. juli 2006 - 17:16
#25
You have an error in your SQL syntax near '== '1'' at line 1
09. juli 2006 - 17:17
#26
fandt fejlen
09. juli 2006 - 17:18
#27
men man kan jo se opret_bruger i nu med alle login
09. juli 2006 - 17:19
#28
hvordan ser koden ud på opret bruger..
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ø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>"; } ?>
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; } } ?>
09. juli 2006 - 17:30
#31
den laver den her igen You have an error in your SQL syntax near '== 1' at line 1
09. juli 2006 - 17:32
#32
Oki, så ret det til du lavede før hvor du skrev fandt fejlen...
09. juli 2006 - 17:43
#33
er den her ok ."' AND `user_pass` = '". $password ."' AND admin == 1") or die
09. juli 2006 - 17:46
#34
."' AND `user_pass` = '". $password ."' AND admin = 1") or die
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; } } ?>
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; } } ?>
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
09. juli 2006 - 18:03
#38
har lavet et felt som heder user_admin
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;
09. juli 2006 - 18:09
#40
den laver det her Unknown column 'admin' in 'where clause'
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; } } ?>
09. juli 2006 - 18:14
#42
nu siger den forkert kode eller brugernavn
09. juli 2006 - 18:18
#43
skal vi stoppe eller tror du vi kan finde ud af det
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..
09. juli 2006 - 18:34
#45
vis den står 1 i sqlen hvad skal den så stå i koden her
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; } } ?>
09. juli 2006 - 18:42
#47
hvordan skal user_admin se ud for den viser dem med alle bruger
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..
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',
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; } ?>
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..
09. juli 2006 - 19:22
#52
Og når du logger ind så sender den dig over til bruger.php
09. juli 2006 - 19:23
#53
Feltnavn skal være 1
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; } ?>
09. juli 2006 - 19:40
#55
pyt vi stopper her takker mange gange for din hjælp det kommer ikke til at virker sorry
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
Vi tilbyder markedets bedste kurser inden for webudvikling