Adminscript, ich weiß nicht mehr weiter

spikaner

Quereinsteiger @ php
Guten morgen, seit gestern sitze ich hier an einen kleinen Adminscript zur Userverwaltung
die Tabele ist folgendermassen aufgebaut
ID (auto_increment), Nick, Passwort (md5), Vorname, email, uploaden (1 Ja 0 Nein), admin (1 Ja 0 Nein)
Jetzt wollte ich ein kleines script schreiben wo jeder user alle Member einsehen kann, zusätzlich soll jeder Admin der die Seite öffnet ändern können ob ein User uploaden darf oder nicht und den User löschen können ausgegeben wird mir das ganze mom in einer while schleife und alle sehen das selbe und da hänge ich jetzt seit gestern fest.
Hier mal das was ich bisher habe
PHP:
<?php
// include ("checkuser.php"); // kommt erst wenn es läuft ^^
require ("config.php"); //db zugangsdaten
echo print_r($_GET); //kontrolle was übergeben wird
echo print_r($_POST); //kontrolle was übergeben wird
echo print_r($_FILES); //kontrolle was übergeben wird

$connect    = mysql_connect($mysql_host, $mysql_user, $mysql_pw); 
$db         = mysql_select_db($mysql_db,$connect) or die ("Kann die Datenbank nicht lesen!"); 

?>
<html>  
<head>  
<title>Admin</title>  
</head>  
<body> 
    <br> 
    <strong>Adminpannel</strong><br> 
    <br>
<?php
$sql_query_string = "SELECT * FROM benutzerdaten "; 
$result = mysql_query($sql_query_string);
// var_dump(mysql_fetch_array($result));
$bestaetigt = "test"; // zum ausprobieren später soll es eine mysqlabfrage in der schleife werden oder so
$admin = "test2"; // zum ausprobieren später soll es eine mysqlabfrage in der schleife werden oder so
$loeschen = "löschen"; // hier der link zum löschen testweise nur geschrieben

// Anfang Tabelle
echo '<div align="center"><br><br><br>';
echo '<table border="1" width="750">
	<tr>
		<td width="80">Nick</td>
		<td width="80">Vorname</td>
		<td>Email</td>
		<td width="70">Uploaden</td>
		<td width="50">ändern</td>
		<td width="60">Admin</td>
		<td width="50">ändern</td>
		<td width="50">löschen</td></tr>';

// unsere schleife

while(($datensatz=mysql_fetch_assoc($result))) {
    echo '<tr><td width="80">' . $datensatz['Nickname'] . '</td>'.
	     '<td width="80">'. $datensatz['Vorname'] . '</td>'.
	     '<td>'. $datensatz['email'] . '</td>'.
	     '<td width="70">'. $datensatz['bestaetigt'] . '</td>'.
	     '<td width="50">'. $bestaetigt . '</td>'.
	     '<td width="60">'. $datensatz['admin'] . '</td>'.
	     '<td width="50">'. $admin . '</td>'.
	     '<td width="50">'. $loeschen . '</td>';       
}
// ende der tabelle
echo '</table>';
echo '</div>';
?>
</body>  
</html>

Wäre über hilfe sehr dankbar da ich noch nicht einmal einen Lösungsansatz habe

mfg Spikaner
 
Zuletzt bearbeitet:
Ist ja Logisch du liest ja auch immer alle Daten von der Tabelle aus mit SELECT * FROM benutzerdaten .
Willst du nun das ein Admin alle User daten ändern kann oder nur jene die seiner Gruppe angehören.

Also wenn du Möchtest das jeder Admin alles ändern darf dann mußte zunächst mal beim Login prüfen ob der der sich einlog ein Admin ist oder ein User.
Dann schreibste den Wert in die Session oder fragst den halt immer von der Db ab.

So wenn mal fest steht das ein Admin eingelogt ist.Dann nehm ich mal an das du willst das er nur die User daten ändern kann oder?
Dazu brauchst du im Sql befehl die WHERE klausel.
SELECT * FROM benutzerdaten WHERE Admin=0

Mfg Splasch
 
die abfrage ob admin oder nicht wollte ich in die If schleife mit einbauen sprich der Admin soll "blos" den upload freischaten können (von 0 auf 1) einen Admin ernenen (0 auf 1) und user löschen (egal ob admin oder nicht) anhand der Id die ja jeder fest hat, nur wie baue ich sowas in diese while schleife ein? da hänge ich fest ich muß ja irgendwie spetzifische "links" angeben, und da hänge ich dfest wie ich das bewerkstelligen soll/kann

mfg Spikaner
 
Du brauchst keine while schleife das geht alles anhang der Daten in der Db.Die fragt man einfach ab an gebener stelle die man benötigt.

Hab ich das richtig verstand so wie du das geschrieben hat soll auch ein User löschen können bwz alles machen dann were ja die Admin funktion völlig überflüssig.

Wie du schon gesagt hast anhang der Id kanst du bequem und einfach auf einen bestimmten Datensatz zugreifen mit hilfe der Where klausel.
Ich glaube dein Problem liegt darin das du dich zuwenig mit Mysql auskenst und dir Sql befehle schwirieg erscheinen.

Aber dafür gibst ja das Forum wenn du einen Bestimmten Sql befehl brauchst kann ich Dir ihn ja posten.

Dazu müßten wir aber dann auch wissen wie deine Tabellen aufgebaut sind.
Hier mal ein Beispiel für eine änderung der upload rechte
UPDATE benutzerdaten set upload=1 Where Id=5;

Mfg Splasch
 
genau bei der umsetzung der sql abfrage da habe ich noch probleme die db ist folgendermasen aufgebaut.

Code:
CREATE TABLE `benutzerdaten` (
  `Id` int(11) NOT NULL auto_increment,
  `Nickname` varchar(50) collate utf8_bin NOT NULL default '',
  `Kennwort` varchar(50) collate utf8_bin NOT NULL default '',
  `email` varchar(50) collate utf8_bin NOT NULL,
  `Vorname` varchar(50) collate utf8_bin NOT NULL default '',
  `bestaetigt` varchar(1) collate utf8_bin default '0',
  `admin` varchar(1 collate utf8_bin default '0',
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=5 ;

Jetzt wollte ich in einer IF abfrage (session besteht, also kann auch festgestellen ob admin oder nicht 1=admin 0 darf nix, 1=uploader 0 darf nix) er die Rechte hat um was machen zu dürfen ansonsten => error echo "du darfst nix warum probierst du es^^";
wenn nicht darf er alles aber wie baue ich bei der Ausgabe das so ein bzw. übermittle der db was ich eigentlich will, sprich an 2 stellen 0 oder 1 setzen und den user (die zeile) löschen wenn nötig. Da fehlt mir noch ein bischen KnowHow. bzw der richtige Ansatz

mfg Spikaner
 
Dafür gibst mehrer Möglichkeiten das zu lösen.
Die erste were die Bereiche einfach zu trennen also einen eigenen User bereich machen und einen eigenen Admin bereich.(sprich 2 verschiedene php datein je nach berechtigung wird er auf die php datei verwiesen)

Eine weitere Möglichkeit were es einfach die Sachen auszublenden.Das kann man dann elegant über ein If anweisung machen.

PHP:
If ($_SESSION['Admin']=1) {
// Admin sachen Anzeigen
}
Else{
// nur User funktionen anzeigen
}

Mfg Splasch
 
Ok ich glaube ich nehme die "Elegnte" Lösung nur mit den links in der Schleife komme ich net klar ich muß ja meine $_Get abfrage ja irgendwo hinplatzieren sprich wie löst man sowas elegant ich habe ein Sortierungsscript vor kurzen geschrieben das brauchte ein paar ELSE IF schleifen nur zum sortieren.. es läuft schaut aber nicht sehr gut gelöst aus bzw. man könnte bestimmt einiges löschen oder verbessern... hier mal ein kleiner auszug
PHP:
if( isset($_GET['sortierung']) && $_GET['sortierung'] == "absteigend" ) {
    $sortierung = "DESC";
} else {
    $sortierung = "ASC";
}

// Ist sortierung angehängt mach es mir wieder "frisch"

$url = getenv("HTTP_HOST") . getenv("REQUEST_URI");
$url = preg_replace("#(.*)&.*$#", "$1", $url);

// abfrage der datenbank mit unseren suchoptionen

if (isset($_GET['variable'])) 
{
$variable = htmlspecialchars($_GET['variable'])."%";
$sql_query_string = "SELECT * FROM mp3files WHERE interpret LIKE '".$variable."' ORDER BY interpret ".$sortierung."";
$result =mysql_query($sql_query_string) or die('query fehlgeschlagen');

}
 else if (isset($_GET['zahlen'])) 
{
$zahlen = htmlspecialchars($_GET['zahlen']);
$sql_query_string = "SELECT * FROM mp3files WHERE interpret REGEXP '^[0-9].*$' ORDER BY interpret ".$sortierung."";
$result =mysql_query($sql_query_string) or die('query fehlgeschlagen');

}
else if (isset($_GET['alle']))
{
$alle = htmlspecialchars($_GET['alle']);
$sql_query_string = "SELECT * FROM mp3files ORDER BY interpret ".$sortierung."";
$result =mysql_query($sql_query_string) or die('query fehlgeschlagen');
}
else if (isset($_GET['sucheinterpret']))
{
$sucheinterpret = "%".htmlspecialchars($_GET['sucheinterpret'])."%";
$sql_query_string = "SELECT * FROM mp3files WHERE interpret LIKE '".$sucheinterpret."' ORDER BY interpret ".$sortierung."";
echo $sql_query_string;
$result =mysql_query($sql_query_string) or die('query fehlgeschlagen');
}
else if (isset($_GET['suchetitel']))
{
$suchetitel = "%".htmlspecialchars($_GET['suchetitel'])."%";
$sql_query_string = "SELECT * FROM mp3files WHERE titel LIKE '".$suchetitel."' ORDER BY interpret ".$sortierung."";
$result =mysql_query($sql_query_string) or die('query fehlgeschlagen');
}
else

Ich bin Anfänger bitte bestraft mich nicht... und bisher hab ich nur eingetragen und ausgelesen jetzt geht es ans ändern löschen und naja davon verstehe ich noch net viel mir würde ein beispiel reichen für den anfang wie so ein link und danach die verarbeitung ca. aussehen sollte.

mfg Spikaner

P.S. ein kleiner code wie sowas laufen sollte/würde wird mir auch bestimmt weiterhelfen nur langsam sehe ich vor lauter { und ( kein ende mehr so kompliziert wie ich warscheinlich denke
 
Zuletzt bearbeitet:
bin jetzt einen kleinen schritt weiter user lassen sich schon mal löschen..
PHP:
// Dateien Löschen
if($_GET['loechen']==1){
	$sql_query_string2 = "DELETE FROM benutzerdaten WHERE (Id) = ('".$_GET['user']."')";
	$userloechen = mysql_query($sql_query_string2);
	echo '<div style="color:green;">Der Benutzer wurde erfolgreich gelöscht!<br><br></div>';
}
?>
Nur wie bbekomme ich jetzt die Seite nach den löschen nochmal aktuallisiert ?

mfg Spikaner
 
Also allein nur die Get methode find ich für Gefährlich stell dir mal vor ein Normaler user schreib im der Url noch den loeschen=1 befehl mit rein schon ist was gelöscht was nicht sein sollte.

Zu deiner Frage die leicht zu beanworten du schreibst einfach drunter den Code der Angezeigt werden soll.Somit hast du auch gleich wieder die Seite Akualisiert nach dem Aufruf vom löschen.

Mfg Splasch
 
thx für die Info, und ich hab es schon umgestellt User haben ihre eigene Seite und Admins ihre, da es keine mods geben wird ist das so finde ich die beste Lösung.

mfg Spikaner
 
Zurück