Avatar billede netstuff.dk Nybegynder
05. august 2002 - 12:39 Der er 18 kommentarer og
1 løsning

Sorter og slet brugere..

Jeg har lavet en lille kode der ser sådan ud:

<?php
    require("../config.php");

        if ($id) {
        $query = "DELETE FROM users WHERE id = '$id';";
        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
    }

?>
<table width="100%">
<tr>
  <td><strong>ID</strong></td>
  <td><strong>BRUGERNAVN</strong></td>
  <td><strong>EMAILKODE</strong></td>
  <td><strong>OPRETTET</strong></td>
  <td><strong>SLET</strong></td>
</tr>
<?php
$enuge = time() - 60*60*24;
$q = mysql_query("SELECT * FROM users WHERE emailcode!='' AND created > '$enuge' Order by ID ASC") or die(myqsl_error());
while ($r = mysql_fetch_array($q)) {
?>
<tr>
  <td><?=$r['id']?></td>
  <td><?=$r['username']?></td>
  <td><?=$r['emailcode']?></td>
  <td><?=$r['created']?></td>
  <td><a href="gamle_brugere.php?delete=<?=$r['id']?>">X</a></td>
</tr>
<?php } ?>
</table>

den skal bruges til at slette brugere fra mit site med :).. men problemet er at når jeg indsætter nedenstående linjer så kommer der bare en blank side.. jeg er helt ny på PHP så det er garanteret mig der laver en fejl :).. ville være rart hvis der var en der kunne hjælpe mig.. (database forbindelse ligger i config.php)


        if ($id) {
        $query = "DELETE FROM users WHERE id = '$id';";
        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
    }

// Kasper
Avatar billede cwb Nybegynder
05. august 2002 - 12:53 #1
prøv:

$query = mysql_query("DELETE FROM users WHERE id = '$id'");
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 13:01 #2
der sker bare det samme.. en blank side uden fejl.. men med det samme jeg fjerner:

        if ($id) {
        $query = mysql_query("DELETE FROM users WHERE id = '$id'");
        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
    }

udskriver den fint brugerne.. mon det er noget med det her?

        if ($id) {

altså jeg vil bare lave sådan at man kan trykke på nogle links for at slette brugerne fx:

<td><a href="gamle_brugere.php?delete=100">X</a></td>

er det så ikke rigtigt nok ?
Avatar billede cwb Nybegynder
05. august 2002 - 13:21 #3
Jeg går så ud fra at nedenstående kode ligger i filen gamle_brugere.php

<?php
    require("../config.php");

        if ($id) {
        $query = "DELETE FROM users WHERE id = '$id';";
        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
    }

?>


Men hov her kigger du på $id men variablen du sender med hedder $delete. Prøv lige at ændre ><a href="gamle_brugere.php?delete=100"> til ><a href="gamle_brugere.php?id=100">
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 13:34 #4
sådan lavede det bare om til:

        if ($delete) {

men når jeg skriver gamle_brugere.php får jeg stadig blank side :(
Avatar billede cwb Nybegynder
05. august 2002 - 13:55 #5
har du prøvet med if (isset($delete)) {

Jeg kan ikke huske om det er den rigtige systax for isset kommandoen.
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 14:01 #6
nu ser hele min kode sådan ud:

<?php
    require("../config.php");

    if (isset($delete)) {
        $query = mysql_query("DELETE FROM users WHERE id = '$id'");
        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
    }

?>
<table width="100%">
<tr>
  <td><strong>ID</strong></td>
  <td><strong>BRUGERNAVN</strong></td>
  <td><strong>EMAILKODE</strong></td>
  <td><strong>OPRETTET</strong></td>
  <td><strong>SLET</strong></td>
</tr>
<?php
$enuge = time() - 60*60*24;
$q = mysql_query("SELECT * FROM users WHERE emailcode!='' AND created > '$enuge' Order by ID ASC") or die(myqsl_error());
while ($r = mysql_fetch_array($q)) {
?>
<tr>
  <td><?=$r['id']?></td>
  <td><?=$r['username']?></td>
  <td><?=$r['emailcode']?></td>
  <td><?=$r['created']?></td>
  <td><a href="gamle_brugere.php?delete=<?=$r['id']?>">X</a></td>
</tr>
<?php } ?>
</table>

og når jeg fjerner:

    if (isset($delete)) {
        $query = mysql_query("DELETE FROM users WHERE id = '$id'");
        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
    }

uskriver den fint.. men når det ovenstående lille stykke kode er indsat som i den øverste kode så får jeg bare en blank siden!!. :(.. hader sådan noget :(..
Avatar billede cwb Nybegynder
05. august 2002 - 14:15 #7
Du har også en lille smule koks i dine variabler. Prøv med

if (isset($delete)) {
        $query = mysql_query("DELETE FROM users WHERE id = '$delete'");
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 14:19 #8
hehe okay :).. nu har jeg rettet det.. stadig blank side :)..
Avatar billede cwb Nybegynder
05. august 2002 - 14:27 #9
Prøv lige at fjerne nedenstående for at se hvad der så sker.

        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 14:41 #10
det virkede sku når jeg fjernede:

        // Ret $pre_dir til så skråstreger bliver til backslashes!
        $pre_dir=eregi_replace("/", "\\", $pre_dir);
        rmdir($config[root_dir]$pre_dir$username)

men hva mon jeg gør forkert der så ?
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 14:49 #11
jeg skal jo bruge rmdir.. men hvordan ?
Avatar billede fangel Nybegynder
05. august 2002 - 15:07 #12
der mangler en ; efter rmdir() limien...
Avatar billede fangel Nybegynder
05. august 2002 - 15:07 #13
hov, linien
Avatar billede fangel Nybegynder
05. august 2002 - 15:08 #14
cwb => ja, den hedder bare if(isset($varname)){
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 16:49 #15
nu ser koden sådan ud:

<?php
    require("../config.php");

    if (isset($delete)) {
              $query = mysql_query("DELETE FROM users WHERE id = '$delete'");
              // Ret $pre_dir til så skråstreger bliver til backslashes!
            $pre_dir=eregi_replace("/", "\\", $pre_dir);
            rmdir($config[root_dir]$pre_dir$username);
    }

?>
<table width="100%">
<tr>
  <td><strong>ID</strong></td>
  <td><strong>BRUGERNAVN</strong></td>
  <td><strong>EMAILKODE</strong></td>
  <td><strong>OPRETTET</strong></td>
  <td><strong>SLET</strong></td>
</tr>
<?php
$enuge = time() - 60*60*24;
$q = mysql_query("SELECT * FROM users WHERE emailcode!='' AND created > '$enuge' Order by ID ASC") or die(myqsl_error());
while ($r = mysql_fetch_array($q)) {
?>
<tr>
  <td><?=$r['id']?></td>
  <td><?=$r['username']?></td>
  <td><?=$r['emailcode']?></td>
  <td><?=$r['created']?></td>
  <td><a href="gamle_brugere.php?delete=<?=$r['id']?>">X</a></td>
</tr>
<?php } ?>
</table>

men den virker kun når dette er væk:

              // Ret $pre_dir til så skråstreger bliver til backslashes!
            $pre_dir=eregi_replace("/", "\\", $pre_dir);
            rmdir($config[root_dir]$pre_dir$username);

hva er der galt med det ?
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 16:50 #16
hmm kan det være noget med at $username skal trækkes ud på en måde ?..
Avatar billede fangel Nybegynder
05. august 2002 - 16:52 #17
ja, hvor for den variablen $username fra? config.php ?
Avatar billede netstuff.dk Nybegynder
05. august 2002 - 16:56 #18
nej det er nok problemet :).. hva skal jeg så skrive for at fiske den ud ? i config.php er der kun DB connection
Avatar billede fangel Nybegynder
05. august 2002 - 17:02 #19
fx sådan her...

<?php
    require("../config.php");

    if (isset($delete)) {
              $query = mysql_query("DELETE FROM users WHERE id = '$delete'");
              // Ret $pre_dir til så skråstreger bliver til backslashes!
            $pre_dir=eregi_replace("/", "\\", $pre_dir);
            rmdir($config[root_dir]$pre_dir$username);
    }

?>
<table width="100%">
<tr>
  <td><strong>ID</strong></td>
  <td><strong>BRUGERNAVN</strong></td>
  <td><strong>EMAILKODE</strong></td>
  <td><strong>OPRETTET</strong></td>
  <td><strong>SLET</strong></td>
</tr>
<?php
$enuge = time() - 60*60*24;
$q = mysql_query("SELECT * FROM users WHERE emailcode!='' AND created > '$enuge' Order by ID ASC") or die(myqsl_error());
while ($r = mysql_fetch_array($q)) {
?>
<tr>
  <td><?=$r['id']?></td>
  <td><?=$r['username']?></td>
  <td><?=$r['emailcode']?></td>
  <td><?=$r['created']?></td>
  <td><a href="gamle_brugere.php?delete=<?=$r['id']?>&username=<?=r['username']?>">X</a></td>
</tr>
<?php } ?>
</table>

så bliver den sendt sammen med delete (altså I linket...)
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