Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Datenbank / User löschen lassen Bitte um Hilfe dringend !! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Datenbank / User löschen lassen Bitte um Hilfe dringend !!


 
Trexx
26-02-2004, 12:42 
 
Hallo zusammen,

habe hier ein Scriptteil von einem Freund wir sind gerade dabei ein Newssystem+Newsletter zu programmieren sind beide jedoch noch blutige Anfänger und programmieren kann man es eigentlich gar nicht nennen was wir machen nunja.

Also unser Problem als Test haben wir das script auf TXT Dateien laufen lassen jedoch sind diese ja nicht so flexibel wie Datenbanken also gemacht getan.

User können in die Datenbank übertragen werden jedoch nicht mehr gelöscht werden.Sprich wir haben eine Übersicht wo man User löschen und bearbeiten kann.Jedoch klappt die Funktion nicht so richtig oder irgendwas stimmt mit den WErten nicht aber wir finden den Fehler nicht.Bitte helft uns weiter.

Danke für die Hilfe im Vorraus.

Nun der Code

Und sorry das er solang ist nur wir bekommen auch keine Fehlermeldung von daher weiß ich ja nicht wo der Fehler liegt?

 
Trexx
26-02-2004, 12:43 
 
<?php


include '../inc/functions.inc.php';
checklogin();
adminonlyaccess($_SESSION['loginlevel']);
$goback = '<br /><a href=javascript:history.back()>Zurück</a>';

$datafile = '../inc/user.php';
if (!file_exists($datafile)) fclose(fopen($datafile,"w+"));
$zeile = file($datafile);
$zeilen = sizeof($zeile);

#########################################################
# STANDARD #
#########################################################
if (!$_GET['go']) {

/* Standard-Ausgabe */
drawheader('View Users');

// DAtenbankgestützte Aufgabe

mysql_connect("localhost", "user", "passwort")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("usr_web64_1");

$result = mysql_query("SELECT id, user, level, email FROM users ORDER BY id DESC");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

?>

<form name="form1" method="post" action="">
<table width="759" border="0" cellpadding="0" height="17" align="center" bordercolor="#CCCCCC" cellspacing="0">
<tr>
<td width="65">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000">
<?php echo $row['user']; ?>
</font></div>
</td>
<td width="109">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<?php echo $row['level']; ?>
</font></div>
</td>
<td width="91">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<?php echo $row['email']; ?>
</font></div>
</td>
<td width="77">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
</font></div>
</td>
<td width="78">
<div align="center"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
</font></div>
</td>
<td width="354">
<div align="center"><a href="users.php?go=changeuser&id='.$row['id'].'">Bearbeiten</a> -
<a href="users.php?go=deluser&id='.$row['id'].'">Löschen</a> </div>
</td>
</tr>
</table>

</form>
<?php
}
mysql_free_result($result);

echo '</table><br /><a href="users.php?go=adduser">User hinzuf&uuml;gen</a><br /><br />';
}
#########################################################
# ADDUSER #
#########################################################
if ($_GET['go'] == 'adduser') {

drawheader('Neuer Benutzer');

echo'<table width="90%" border="0" cellspacing="1" cellpadding="0" align="center" class="rahmen">
<tr class="tr2">
<td>
<b>Hier kannst Du beliebig viele neue Benutzer erstellen.</b><br />
Ein Benutzer mit dem Level &quot;User&quot; kann sich einloggen, Nachrichten
schreiben, editieren und l&ouml;schen. Er kann aber keine Benutzerdaten editieren,
Benutzer l&ouml;schen oder &Auml;nderungen an den Konfiguration des Scripts
vornehmen. Dies kann nur ein Benutzer mit dem Level &quot;Admin&quot;
</td>
</tr>
<tr class="tr1">
<td>';


#########################################################
# ADDUSER - NO ACTION #
#########################################################
if (!$_GET['action']) {
echo'<form method="POST" action="'.$_SERVER['PHP_SELF'].'?go=adduser&action=save">
<table width="80%" border="0" cellspacing="1" cellpadding="0">
<tr class="tr1">
<td width="200">Login-Name:</td>
<td>
<input type="text" name="user" size="30" maxlength="150">
</td>
</tr>
<tr class="tr1">
<td width="200">Passwort:</td>
<td>
<input type="password" name="pwd" size="30" maxlength="150">
</td>
</tr>
<tr class="tr1">
<td width="200">Nochmal:</td>
<td>
<input type="password" name="pwd2" size="30" maxlength="150">
</td>
</tr>
<td width="200">Emailadresse</td>
<td>
<input type="emailadresse" name="email" size="30" maxlength="150">
</td>
</tr>
<tr class="tr1">
<tr class="tr1">
<td width="200">Level:</td>
<td>
<select name="level">
<option value="user">User</option>
<option value="admin">Admin</option>
</select>
</td>
</tr>
<tr class="tr1">
<td width="200">&nbsp;</td>
<td>
<input type="submit" value="Send" name="submit">
</td>
</tr>
</table>
</form>';
}
#########################################################
# ADDUSER - SAVE #
#########################################################

if($_GET['action'] == 'save') {

if(($_POST['user'] == '') OR ($_POST['pwd'] == '') OR ($_POST['pwd2'] == '') OR ($_POST['email'] == '')) {
echo message('error', 'Bitte fülle alle Felder aus!',1);
echo'</td></tr></table>';

exit();
}

if($_POST['pwd'] != $_POST['pwd2']) {
echo message('error', 'Unterschiedliche Passw&ouml;rter angegeben!',1);
echo'</td></tr></table>';

exit();
}

$id = $zeilen-3;

if ($zeilen) {
if(strlen($id)==1) $id = '00'.$id;
if(strlen($id)==2) $id = '0'.$id;
} else $id = 1;

$_POST['user'] = cleantext($_POST['user']);
$_POST['pwd'] = crypt($_POST['pwd'], 'lala');
$nl = chr(13).chr(10);

// TXt Datei speichern

$fp = fopen($datafile,"w+");
flock($fp,2);
fwrite($fp, '<?php'.$nl );
fwrite($fp, '/*' .$nl );
for ($i=2; $i<$zeilen-2; $i++)
fwrite($fp, $zeile[$i]);
fwrite($fp, my_nl2br(implode(array ($_POST['user'], $_POST['level'], $_POST['pwd'], $id, $_POST['email'], '') ,'§')) . $nl);
fwrite($fp, '*/' .$nl );
fwrite($fp, '?>' );
flock($fp,3);
fclose($fp);

 
Trexx
26-02-2004, 12:44 
 
//Datenbank speichern

$mysql = mysql_connect("localhost", "user", "passwort")or die ("Keine Verbindung moeglich");
$db = "usr_web64_1";
$abfrage= "INSERT INTO users (id, user, level, pwd, email) VALUES('$id', '$user', '$level', '$pwd', '$email')";
mysql_db_query($db, $abfrage, $mysql);




echo'<br />
User erfolgreich hinzugefügt!<br />
Hier nochmal die Daten:<br />
Login-name: <b>'.$_POST['user'].'</b><br />
Passwort(verschlüsselt): <b>'.$_POST['pwd'].'</b><br />
Emailadresse: <b>'.$_POST['email'].'</b><br />
Level: <b>'.$_POST['level'].'</b>';

}
#########################################################
echo'</td>
</tr>
</table>';

}
#########################################################
# CHANGEUSER #
#########################################################
if ($_GET['go'] == 'changeuser') {

drawheader('Benutzerdaten &auml;ndern');
echo'<table width="90%" border="0" cellspacing="1" cellpadding="0" align="center" class="rahmen">
<tr class="tr2">
<td>Hier kannst Du die Daten eines Benutzers ab&auml;ndern.<br />
Beachte, da&szlig; derjenige User Vollzugriff auf alle Optionen des Scripts
erh&auml;lt, dem Du den Level &quot;Admin&quot; zuteilst.
</td>
</tr>
<tr class="tr1">
<td>';

#########################################################
# CHANGEUSER - NO ACTION #
#########################################################

if (!$_GET['action']) {

for ($i=2; $i < $zeilen-2; $i++) {
$eintrag = explode('§', $zeile[$i]);
if ($eintrag[3] == $_GET['id']) {
echo '
<form method="POST" action="'.$_SERVER['PHP_SELF'].'?go=changeuser&action=save">
<input type="hidden" name="saveid" value="'.$_GET['id'].'">
<input type="hidden" name="savepw3" value="'.$eintrag[2].'">
<table width="80%" border="0" cellspacing="1" cellpadding="0">
<tr class="tr1">
<td>Loginname:</td>
<td>
<input type="text" name="saveuser" size="30" maxlength="150" value="'.$eintrag[0].'">
</td>
</tr>
<tr class="tr1">
<td>Passwort (verschlüsselt):</td>
<td>
<input type="password" name="savepw" size="30" maxlength="150" value="'.$eintrag[2].'">
</td>
</tr>
<tr class="tr1">
<td>Passwort wiederholen:</td>
<td>
<input type="password" name="savepw2" size="30" maxlength="150" value="'.$eintrag[2].'">
</td>
</tr>
<tr class="tr1">
<td>Emailadresse</td>
<td>
<input type=emailadresse" name="saveemail" size="30" maxlength="150" value="'.$eintrag[4].'">
</td>
</tr>
<tr class="tr1">
<td>Level:</td>
<td>
<select name="savelevel">';

if ($eintrag[1] == 'user') { echo '<option value="user" selected>User</option>'; }
else {echo '<option value="user">User</option>'; }
if ($eintrag[1] == 'admin') { echo '<option value="admin" selected>Admin</option>'; }
else {echo '<option value="admin">Admin</option>'; }

echo '</select>
</td>
</tr>
<tr class="tr1">
<td>&nbsp;</td>
<td>
<input type="submit" value="Send" name="submit">
</td>
</tr>
</table>
</td>';
}
}
}

#########################################################
# CHANGEUSER - SAVE #
#########################################################

if($_GET['action'] == 'save') {

if ($_SESSION['loginlevel'] != 'admin') echo message('error', 'Sorry, nur Admins dürfen Userdaten ändern!',1);

else if ($_POST['savepw'] != $_POST['savepw2']) echo message('error', 'Unterschiedliche Passwörter angegeben!',1);

else {


for ($i=0; $i<$zeilen; $i++) {
$eintrag = explode('§',$zeile[$i]);

if ($eintrag[3] == $_POST['saveid']) {
$eintrag[0] = $_POST['saveuser'];
$eintrag[1] = $_POST['savelevel'];


if ($_POST['savepw2'] != $_POST['savepw3']) {
$_POST['savepw'] = crypt($_POST['savepw'], 'lala');
$eintrag[2] = $_POST['savepw'];

}
$eintrag[4] = $_POST['saveemail'];
}

$zeile[$i] = implode($eintrag,'§');

}

$nl = chr(13).chr(10);
$fp = fopen($datafile,"w+");
fwrite($fp, '<?php' .$nl );
fwrite($fp, '/*'.$nl );
for ($i=2; $i<$zeilen-2; $i++)
fwrite($fp, $zeile[$i]);
fwrite($fp, '*/' .$nl );
fwrite($fp, '?>' );
fclose($fp);





echo 'Gespeichert!<br /><br />
Userdaten erfolgreich geändert!<br />
Hier nochmal die Daten:<br />
Loginname: <b>'.$_POST['saveuser'].'</b><br /
Emailadresse: <b>'.$_POST['saveemail'].'</b><br />
Level: <b>'.$_POST['savelevel'].'</b><br /><br />
<b>Damit die geänderten Einstellungen wirksam werden, musst Du Dich neu einloggen!</b>';
}

}
#########################################################
echo'</td>
</tr>
</table>';

}
#########################################################
# DELUSER #
#########################################################
if ($_GET['go'] == 'deluser') {

drawheader('Benutzer l&ouml;schen');
echo'<table width="90%" border="0" cellspacing="1" cellpadding="0" align="center" class="rahmen">
<tr class="tr1">
<td>';

if ($_SESSION['loginlevel'] != 'admin') {
echo message('error', 'Nur Admins dürfen User löschen!',1);

} else {
for ($i=0; $i < $zeilen; $i++) {
$eintrag = explode("§", $zeile[$i]);

if ($eintrag[3] == $_GET['id']) {
$zeilen--;

for ($j=$i; $j < $zeilen; $j++) {
$zeile[$j]=$zeile[$j+1];
}
}
}
$fp = fopen($datafile,"w+");
for ($i=0; $i < $zeilen; $i++)
fwrite($fp, $zeile[$i]);
fclose($fp);


//Datenbank speichern

$mysql = mysql_connect("localhost", "user", "passwort")or die ("Keine Verbindung moeglich");
$db = "usr_web64_1";
$abfrage = "DELETE FROM users WHERE id=$id";
mysql_db_query($db, $abfrage, $mysql);



echo message('msg', 'User gel&ouml;scht!',1);
}

echo'</td>
</tr>
</table>';

}

?>

 
Big Chief
26-02-2004, 12:53 
 
$abfrage = "DELETE FROM users WHERE id=$id";
Soweit ich das überblicke, kennt dein Script an dieser Stelle die Variable $id gar nicht ... die müsstest du ihm erstmal übergeben
<a href="users.php?go=deluser&id='.$row['id'].'">Löschen</a>
Hier übergibts du zwar ne ID, aber diese bastelst du nirgends über ...
$id = $_GET['id'];
... in die "normale" Variable $id um, die du beim Löschen nutzen willst ...

 
wahsaga
26-02-2004, 12:56 
 
du weist schon, dass du dich durch posten von ellenlangen code-auszügen, durch die du selber nicht mal annähernd durchblickst, nicht gerade beliebt machst?

für das löschen dürfte wohl der letzte abschnitt verantwortlich sein,

#########################################################
# DELUSER #
#########################################################
if ($_GET['go'] == 'deluser') {


also finde jetzt mal durch geeignete debugging-maßnahmen heraus, ob er da überhaupt reingeht, und wenn ja was da beim löschen falsch läuft.
(mysql_error() nach datenbank-query abfragen!)


btw: wtf ist an der frage "dringend"?
unterlasse solche drängelei-zusätze bitte zukünftig, danke

 
Trexx
26-02-2004, 13:15 
 
Okay die dringellei wird gelassen.
Und ich werd mal eben schauen was sich machen lässt.

Thanks für eure Hilfe werde gleich posten ob alles geklappt hat.

 
Trexx
26-02-2004, 13:20 
 
@ Big Chief,

ich lese doch die variable aus der Datenbank aus und setze sie mit $row['id']. ein oder versteh ich hier grad was nicht?Oder kann ich Sie so nicht direkt übergeben?

 
derHund
26-02-2004, 13:53 
 
ich lese doch die variable aus der Datenbank aus und setze sie mit $row['id']. ein oder versteh ich hier grad was nicht?Oder kann ich Sie so nicht direkt übergeben?

?><a href="users.php?go=deluser&id='.$row['id'].'">Löschen</a> </div>
ich hab so das gefühl, there's somethin missin :)

 
Trexx
26-02-2004, 14:06 
 
Ja das Gefühl habe ich auch.Nur ich weiß nicht was :-)
Bei mir geht grad kein Licht auf:{


<div align="center"><a href="users.php?go=changeuser&id='.$eintrag[3].'">Bearbeiten</a> -
<a href="users.php?go=deluser&id='.$eintrag[3].'">Löschen</a> </div>

 
wahsaga
26-02-2004, 14:15 
 
$abfrage = "DELETE FROM users WHERE id=$id";

an dieser stelle hast du kein $id.

du musst es aus $_GET['id'] auslesen, wenn du ?id=0815 per link übergibst.

$abfrage = "DELETE FROM users WHERE id=".$_GET['id'];

 
Trexx
26-02-2004, 14:35 
 
okay vielen dank werde mich heute abend noch ma dran setzen jetzt erstma schnee schieben gehen.Post wenn ich weiter bin thanks

 
Trexx
26-02-2004, 14:55 
 
Habs doch noch schnell ausprobiert.
Aber nun löscht er immer noch nix.
Aber kommt auch kein Fehler :-)

 
derHund
26-02-2004, 15:54 
 
?><a href="users.php?go=deluser&id='.$row['id'].'">Löschen</a> </div>


?><a href="users.php?go=deluser&id=<?PHP echo $row['id']; ?>">Löschen</a> </div>

 
Trexx
26-02-2004, 18:54 
 
Hey super,

dank dir.

Kleiner Fehler große Wirkung.

ma schauen vielleicht kriegen wir es jetzt hin.

Wenn nich poste ich nochmal


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:35 Uhr.