Gå til innhold

Lage ett PHP script som lister alle brukere [løst]


Anbefalte innlegg

Videoannonse
Annonse

Det jeg driver med nå er,

 

- Kunne endre alle sider uten å måtte gå igjennom en PHP editor, altså en slags WISYWIG editor.

- Kunne endre og slette medlemmer.

- Diverse logge systemer

- En egen "training" seksjon med forskjellig.

 

Alt dette er delt opp i forsjkellig rank. Slik at de med rank 5 ikke har tilgang til veldig mye, mens de med rank 1, har tilgang til alt! :)

Lenke til kommentar

<form action="" method="post">
<input type="submit" name="delete" value="Slett bruker" />
</form>


<?php
$id = $_GET['id']; // altså må URL'en være noe slikt:
// side.php?id=1 . Bytt ut 1 med ID nummeret til personen du skal slette.
if (isset($_POST['delete'])) {

echo 'Bruker slettet';

mysql_query("DELETE FROM tabell WHERE id='$id'");
}
?>

 

 

Edit: hadde glemt en } på slutten ;)

Endret av Andy-Pandy
Lenke til kommentar

:) Se der! Akkurat det jeg trenger!

 

Men! Får en stygg feilmelding på list scriptet..

 

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mounted-storage/home15a/sub003/sc17720-BQAO/www/mytva/beta/pilots.php on line 10

 

Prøvd mye rart nå, men finner ikke feilen.. Må serriøst lære meg å få mysql til å funke skikkelig i PHP slik at jeg kan gjøre slike ting selv.. :ph34r:

 

EDIT: Fikk det til! :w00t:

Endret av Yaricks
Lenke til kommentar

Du vil vel ikke la vanlige brukere ha mulighet til å slette ? Kanskje bare endre sin egen info, mens den som har den høyeste ranken (alle rettigheter), kan slette og editere alle brukere, bortsett fra å slette sin egen bruker:

Sett at du lagrer brukerid til den som er logget inn i en session $_SESSION["user"]:

 

list_users.php:

$sql = "SELECT rank FROM brukere WHERE id=".$_SESSION["user"];
$res = mysql_query($sql) or die("FEIL I SPØRRING: $sql");
$row = mysql_fetch_array($res);
$loggedinrank = $row["rank"];
$sql = "SELECT * FROM brukere";
$res = mysql_query($sql) or die("FEIL I SPØRRING: $sql");
echo "Brukere:<br>\n";
echo "<ol>";
while($row=mysql_fetch_array($res)) {
  echo "<li>".$row["brukernavn"];
  if($loggedinrank = 1) {
     echo " - <a href='edit.php?id=".$row["id"]."'>edit</a>";
     if($row["id"] != $_SESSION["user"]) {
        echo " - <a href='delete.php?id=".$row["id"]."'>delete</a>";
     }
  }
  elseif ($_SESSION["user"] == $row["id"]) {
     echo " - <a href='edit.php?id=".$row["id"]."'>edit</a>";
  }
  echo "</li>";
}
echo "</ol>";

sidene delete.php og edit.php må jo selvfølgelig gjøre en sjekk på om innlogget bruker har rettighet til å slette / editere brukeren.

 

EDIT: Forutsetter jo at feltene i tabellen heter rank og brukernavn

Endret av kakkle
Lenke til kommentar

Hvor skal jeg begynne ?

asso..

Det du vil lage der oppe, det er ganske komplisert, væfall noe av det..

Og du sliter med og lage en while løkke som skriver ut alt i en tabell ?

Da tror jeg heller du skal prøve og lære deg PHP ordentlig og MySQL før du prøver et CMS system, eventuelt de greiene du skreiv der oppe..

Lenke til kommentar

kakkle, AKKURAT det jeg ville ha! :!: Tusen takk!

Hvor skal jeg begynne ?

asso..

Det du vil lage der oppe, det er ganske komplisert, væfall noe av det..

Og du sliter med og lage en while løkke som skriver ut alt i en tabell ?

Da tror jeg heller du skal prøve og lære deg PHP ordentlig og MySQL før du prøver et CMS system, eventuelt de greiene du skreiv der oppe..

 

Jeg har laget det meste andre! Mangler bare det siste! :thumbup:

 

 

EDIT: Ok, driver med edit.php, men hvordan kan jeg få sia til å liste alt i tekstbokser slik at jeg kan endre det?

Endret av Yaricks
Lenke til kommentar

Det er en HTML og Java editor ja.. Men har ett problem her!

 

Har prøvd meg frem på edit.php, men den endrer ikke databasen.. :hmm:

 

Klikk for å se/fjerne innholdet nedenfor
<?php 
include "config.php";


if (!loggedin($_COOKIE[newsuser], $_COOKIE[newspass])) {
header("Location: login.php");
exit;
}


?>
WARNING! You are about to edit a pilot!! <br />
Are you REALLY shure that you want to do this?<br />
<?php

echo ("
<form method=\"POST\">
Username: <input type=\'text' size=\'25'maxlength=\'25' name=\'username'>
<br />
Password
<input type='text' size='30' maxlength='25' name='password' />
<br />
Name: 
<input type='text' size='30' maxlength='100' name='name' />
<br />
City: 
<input type='text' size='30' maxlength='25' name='city' />
<br />
Country:
<input type='text' size='30' maxlength='25' name='country' />
<br />
E-mail:
<input type='text' size='30' maxlength='50' name='email' />
<br />
<label>Status
<select name='status'>
 <option value='Active'>Active</option>
 <option value='Warning'>Warning</option>
 <option value='Admin'>Admin</option>
</select>
</label>
<br />
Userlevel: 
<select name='userlevel'>
 <option value='1' selected='selected'>Users (1)</option>
 <option value='5'>Moderator (5)</option>
 <option value='6'>Fleet (6)</option>
 <option value='7'>Training (7)</option>
 <option value='8'>Chief of Pilots (8)</option>
 <option value='9'>Admin (9)</option>
</select>
<br />
<input name=\'register\' type=\'submit\' value=\'Register\'>
</form>


<form action='' method='post'>
 <input type='submit' name='edit' value='Edit user' />
</form>");

include ("inc/connect_db.php");
$id = $_GET['id']; // altså må URL'en være noe slikt:
// side.php?id=1 . Bytt ut 1 med ID nummeret til personen du skal slette.
if (isset($_POST['edit'])) {

echo 'User has been edited.';
echo '<br><a href="test.php">Return to user edit</a>';

$username = $_POST[username];
$password = $_POST[password];
$email = $_POST[email];
$name = $_POST[name];
$city = $_POST[city];
$country = $_POST[country];
$email = $_POST[email];
$status = $_POST[status];
$userlevel = $_POST[userlevel];

mysql_query("UPDATE INTO pilots (username, user_password, user_email. name, city, country, email, status, userlevel) VALUES ('$username', '$password','$email', '$name', '$city', '$country', '$email', '$status', '$userlevel') WHERE `pilot_id` = '$id'");

// UPDATE `pilots` SET `userlevel` = '7' WHERE `pilot_id`='$id';

;

}
?>

<?php 
if ($profile[username] != "") {
echo '<br><br><a href="logout.php">Logout</a>';
}
?>

Lenke til kommentar

Du har en feil der:

 

UPDATE INTO

 

skal være UPDATE tabell SET navn='$navn', epost='$epost' WHERE id = '$id'

 

da kan du bruke $id = $_GET['id']; et eller annet sted i PHP koden, så skriver du edit.php?id=1 (bytt ut 1 med tallet som passer id'en).

 

Orka ikke lese hele scriptet ditt, men du må også gjøre slik: (hvis du ikke allerede har gjort det)

 

$navn = mysql_real_escape_string($navn);

for sikkerhetsmessige årsaker :)

 

 

Håper det ble riktig, litt usikker. Har bare brukt UPDATE én gang, og det begynte jeg med for 2 dager siden, hehe...

 

 

Edit: så du allerede hadde brukt $id = $_GET['id'] og noe mer... *dumme meg*

Endret av Andy-Pandy
Lenke til kommentar
<form action="" method="post">
<input type="submit" name="delete" value="Slett bruker" />
</form>


<?php
$id = $_GET['id']; // altså må URL'en være noe slikt:
// side.php?id=1 . Bytt ut 1 med ID nummeret til personen du skal slette.
if (isset($_POST['delete'])) {

echo 'Bruker slettet';

mysql_query("DELETE FROM tabell WHERE id='$id'");
}
?>

 

 

Edit: hadde glemt en } på slutten ;)

7996315[/snapback]

 

Denne er utsatt for sql injections bruke $id=mysql_real_escape_string($_GET['id']);

Lenke til kommentar

<form action="?id=<?php echo $_GET["id"];?>" method="post">
<input type="submit" name="delete" value="Slett bruker" />
</form>


<?php
$id = $_GET['id']; // altså må URL'en være noe slikt:
// side.php?id=1 . Bytt ut 1 med ID nummeret til personen du skal slette.
if (isset($_POST['delete'])) {


if(mysql_query("DELETE FROM tabell WHERE id='$id'"));
  echo 'Bruker slettet';
else "Bruker ble ikke slettet";
}
?>

 

EDIT: Evt:

<form action="" method="post">
<input type="hidden" name="id" value="<?php echo $_GET["id"];?>">
<input type="submit" name="delete" value="Slett bruker" />
</form>


<?php
if (isset($_POST['delete'])) {
 $id = $_POST['id'];
 if(mysql_query("DELETE FROM tabell WHERE id='$id'"));
    echo 'Bruker slettet';
 else "Bruker ble ikke slettet";
}
?>

Endret av kakkle
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...