PHP och MySQL
PHP och MySQL
För att försöka lära mig PHP och MySQL håller jag för närvarande på med ett inloggningsystem där man kan registrera en användare och sedan logga in med den. Väl inne kan man byta lösenord, men sen ska det finnas fler funktioner som inte är tillgängliga för alla, utan bara de som är administratörer. Det är här problemen uppstår.
Jag har i min databas en tabell med fyra kolumner: "id", "username", "password" och en som heter "admin". De första kanske ni kan räkna ut vad de används till. I den sista sparas "y" eller "n", beroende på om man är administratör eller inte. Det jag vill att skriptet ska kolla är om användaren har ett "y" i sin kolumn "admin", har användaren det så ska det visas lite alternativ, annars inget alls.
Jag har i min databas en tabell med fyra kolumner: "id", "username", "password" och en som heter "admin". De första kanske ni kan räkna ut vad de används till. I den sista sparas "y" eller "n", beroende på om man är administratör eller inte. Det jag vill att skriptet ska kolla är om användaren har ett "y" i sin kolumn "admin", har användaren det så ska det visas lite alternativ, annars inget alls.
<bupp2> Det går att kombinera CS med porr. Jag känner en som har lagt in en porrbild vid consolen och rycker i baguetten när han har dött.
Skulle du kanske även kunna skriva din fråga, eller ange vad problemet är?Turrican wrote:Det är här problemen uppstår.
-Tbred 2700 @ 2.4GHz, 1024MB, WinXP Prof, 800GB
-Tbred 2600 @ 2.225GHz, 1024MB, Linux, 1353GB
-Tbred 1700 @ 1.75GHz, 1024MB, WinXP Prof, 444GB
-P4 3.06GHz, 1024MB, WinXP Prof, 120GB
-PII 2x400MHz, 512MB, Win2k Prof, 79GB
-Tbred 2600 @ 2.225GHz, 1024MB, Linux, 1353GB
-Tbred 1700 @ 1.75GHz, 1024MB, WinXP Prof, 444GB
-P4 3.06GHz, 1024MB, WinXP Prof, 120GB
-PII 2x400MHz, 512MB, Win2k Prof, 79GB
Så pinsamt. Jag tyckte jag utrryckt mig ganska väl, men nåja. Det jag inte klarar av är att se till att bara de med administratörsrättigheter ska få se extra alternativ. Vanliga användare ska kunna byta lösenord, medan adminstratörer ska kunna göra det, men även ta bort användare och ge andra personer administratörsrättigheter.pwm wrote:Skulle du kanske även kunna skriva din fråga, eller ange vad problemet är?Turrican wrote:Det är här problemen uppstår.
Var det tydligare?
<bupp2> Det går att kombinera CS med porr. Jag känner en som har lagt in en porrbild vid consolen och rycker i baguetten när han har dött.
- Niklas Berggren
- Hedersbit
- Posts: 3524
- Joined: 2002-03-08 17:53:04
- Location: Göteborg (Skövde)
- Contact:
Utan kod blir det svårt att hjälpa dig. Visa oss stycket där du försöker åstadkomma ovanstående så blir det enklare.Turrican wrote:Så pinsamt. Jag tyckte jag utrryckt mig ganska väl, men nåja. Det jag inte klarar av är att se till att bara de med administratörsrättigheter ska få se extra alternativ. Vanliga användare ska kunna byta lösenord, medan adminstratörer ska kunna göra det, men även ta bort användare och ge andra personer administratörsrättigheter.
Var det tydligare?
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
- Peter Wall
- Hedersbit
- Posts: 7026
- Joined: 2002-03-08 0:52:56
- Location: Stockholm
- Contact:
Vad jag skulle ha försökt med, obs! jag är inte bra på det här så , är att ta en select-sats som väljer ut den kolumnen bara för just den inloggade användaren. Sedan kör du en if-sats som kollar av värdet du fick fram och visar alternativen som ska visas då.
Alla l33t haxx0rz får ursäkta om jag gjorde bort mig nu ^^
Alla l33t haxx0rz får ursäkta om jag gjorde bort mig nu ^^
Diplomerad webbutvecklare
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
Korrekt Punisher.
Så som Punisher skriver, när användaren loggar in så kör du en select-sats som väljer datan för bara den användaren, om då kolumen admin har ett y så visa detta, annars icke
Ett exempel bara
Så som Punisher skriver, när användaren loggar in så kör du en select-sats som väljer datan för bara den användaren, om då kolumen admin har ett y så visa detta, annars icke
Ett exempel bara
Code: Select all
mysql_connect('localhost','hein','leethaxxormaxxorflaxxorsaxxor'); // Skapa en mysqlanslutning
mysql_select_db('users'); // Väljer rätt DB
$sQuery = mysql_query("select adminRights from userData where user = 'Hein'") or die(mysql_error()); // Skickar en förfrågan att få datan ur adminRights där användaren är Hein annars om någe är galet, skriv ut felmeddelandet
$vFetch = mysql_fetch_assoc($sQuery); // Hämtar datan
if($vFetch['adminRights'] == 'y') // Om adminRights är y, dvs yes
{
echo 'Du är Admin'; // Skriv ut att man är admin
} else {
echo 'Du är icke Admin'; // Annars skriv ut att man inte är admin
}
. .. ... .... ..... ...... ....... ....... ..........
- Peter Wall
- Hedersbit
- Posts: 7026
- Joined: 2002-03-08 0:52:56
- Location: Stockholm
- Contact:
Hein, hur skulle man i PHP göra om Hein till något dynamiskt? Beroende på vad du loggar in med? Session username dvs.
Diplomerad webbutvecklare
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
Ptja, man har ett "mellanting" man kan gå via, dvs Login->"mellantinget"->sida
isf kan man skickas till en sida som först kontrollerar om lösenordet stämmer överens med användarnamnet, och om det gör det sätt $_SESSION['username'] till det användarnamnet och skicka till nästa sida.
typ
OBS. Detta är väldigt basic, man kan tex kör en md5/sha1 på lösenordet och användarnamnet tex för att få lite mer säkerhet...
Men tänkte hålla mig till väldigt basic så folk kanske förstår
isf kan man skickas till en sida som först kontrollerar om lösenordet stämmer överens med användarnamnet, och om det gör det sätt $_SESSION['username'] till det användarnamnet och skicka till nästa sida.
typ
Code: Select all
<!-- login.php -->
<form method="post" action="access.php">
Användare: <br />
<input type="text" name="username" /><br />
Lösenord: <br />
<input type="password" name="password" /><br />
<input type="submit" name="submit" value="Skicka">
</form>
<!-- access.php -->
<?php
session_start(); // Kolla www.php.net/session_start ,orkar inte förklara :P
mysql_connect('localhost','hein','leethaxxormaxxorflaxxorsaxxor'); // Skapa en mysqlanslutning
mysql_select_db('users'); // Väljer rätt DB
$sQuery = mysql_query("select user,password from userData where user = '{$_POST['username']'") or die(mysql_error()); // Skickar en förfrågan att få datan ur username och password där användaren är det man skrev i formuläret (username) annars om någe är galet, skriv ut felmeddelandet
$vFetch = mysql_fetch_assoc($sQuery); // Hämtar datan
if($vFetch['username'] == $_POST['username'] && $vFetch['password'] == $_POST['password']) // Om användaren stämmer överns med lösenordet
{
$_SESSION['user'] = $_POST['username']; // Skapa Sessionen user och lägger dit användarnamnet
header('Location: main.php'); // Skickas till main.php
die(); // Dör för vi ska förflytta oss
} else {
echo 'Du skrev fel på användarnamnet eller lösenordet, försök igen'; //Om inte användarnamnet stämmer överns med lösenordet
}
?>
<!-- main.php -->
<?php
session_start(); // Kolla www.php.net/session_start ,orkar inte förklara :P
if(isset($_SESSION['user']) && !empty($_SESSION['user'])) // Om sessionen är satt och inte är tom visa då sidan (lite säkerhet)
{
mysql_connect('localhost','hein','leethaxxormaxxorflaxxorsaxxor'); // Skapa en mysqlanslutning
mysql_select_db('users'); // Väljer rätt DB
$sQuery = mysql_query("select adminRights from userData where user = '{$_SESSION['user']}'") or die(mysql_error()); // Skickar en förfrågan att få datan ur adminRights där användaren är det vi lagrade i sessionen annars om någe är galet, skriv ut felmeddelandet
$vFetch = mysql_fetch_assoc($sQuery); // Hämtar datan
if($vFetch['adminRights'] == 'y') // Om adminRights är y, dvs yes
{
echo 'Du är Admin'; // Skriv ut att man är admin
} else {
echo 'Du är icke Admin'; // Annars skriv ut att man inte är admin
}
} else {
echo 'Tror du är en haxxorrerz?'; //Annars visa inte sidan
}
?>
Men tänkte hålla mig till väldigt basic så folk kanske förstår
. .. ... .... ..... ...... ....... ....... ..........
- Peter Wall
- Hedersbit
- Posts: 7026
- Joined: 2002-03-08 0:52:56
- Location: Stockholm
- Contact:
Mhm. Jag visste hur det gick till i "teorin" eftersom jag har löst det i VS.NET / C# ville bara se hur du löste det i PHP. Tack så mkt.
Diplomerad webbutvecklare
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
Microsoft Certified Professional Windows 2003
Microsoft Certified Technology Specialist Windows Vista
"Did you know kidneys and applesauce are a delicacy in Sweden? I'm gonna get my applesauce back!"
Med lite modifikation funkade det där precis som jag ville. Tack så mycket Hein.Hein wrote:Korrekt Punisher.
Så som Punisher skriver, när användaren loggar in så kör du en select-sats som väljer datan för bara den användaren, om då kolumen admin har ett y så visa detta, annars icke
Ett exempel bara
Code: Select all
mysql_connect('localhost','hein','leethaxxormaxxorflaxxorsaxxor'); // Skapa en mysqlanslutning mysql_select_db('users'); // Väljer rätt DB $sQuery = mysql_query("select adminRights from userData where user = 'Hein'") or die(mysql_error()); // Skickar en förfrågan att få datan ur adminRights där användaren är Hein annars om någe är galet, skriv ut felmeddelandet $vFetch = mysql_fetch_assoc($sQuery); // Hämtar datan if($vFetch['adminRights'] == 'y') // Om adminRights är y, dvs yes { echo 'Du är Admin'; // Skriv ut att man är admin } else { echo 'Du är icke Admin'; // Annars skriv ut att man inte är admin }
<bupp2> Det går att kombinera CS med porr. Jag känner en som har lagt in en porrbild vid consolen och rycker i baguetten när han har dött.