Verfeinern meines Personal Message Systems

visionsign

Mitglied
Hallo nochmal Community

mein Personal Message System Funktioniert soweit, jetzt bin ich dabei das ganze zu verfeinern und vor allem sicher zu machen. Hier habe ich ein paar kleine Fragen.

Fangen wir mit einer ich denke mal 'Kleinigkeit' an.
Ich möchte gerne, das als 'Absender' etc. nicht die ID angezeigt wird, sondern der dazugehörige Nickname. Ich habe hier 2 Tabellen, zum ersten die 'mailbox' Tabelle, hier habe ich eine 'ID_VON' und 'ID_AN'! So kann ich die Mail den jeweiligen Benutzern zuordnen. Nun habe ich noch meine 'benutzerdaten' Tabelle. Hier finden sich auch die ID's, die ich für die Zuordnung benötige.
Ich habe jetzt folgendes Versucht:
PHP:
 $nick_an = mysql_query("SELECT Nickname FROM benutzerdaten WHERE Id=$_GET[emfaenger]");

zurück bekomme ich jetzt leider nicht den Nicknamen, sondern
Code:
 					Resource id #6
. Hiermit kann ich leider absolut nichts anfangen.

Zur nächsten kleinen Frage:
Es geht jetzt um das löschen der einzelnen Nachrichten.
Ich habe es sehr einfach gelöst:
PHP:
 <?php
 					if ($_GET["mid"]) {
 		    		    mysql_query("DELETE FROM mailbox WHERE ID = $_GET[mid]");
 					?>
 		    		<td align="center"><font color="red"><strong>Die Message wurde gelöscht</strong></font></td>
 					<?php } else { ?>
 		    			<td align="center">
 		    			<?php print_r($_POST); ?>
 		    			FEHLER BEIM LÖSCHEN</td>
 					<?php
 					}
 					?>

Hier habe ich natürlich jetzt das Problem, das jeder User über die eingabe einer anderen ID in der URI Messages anderer User löschen kann. Ich muss also jetzt überprüfen, ob die Message wirklich dem User gehört, unterdem man eingelogged ist! Wie stelle ich das am sinnigsten an?

So, das wars fürs erste, es werden sicherlich noch einige weitere Fragen folgen.
Schon einmal vielen Dank für eure Hilfe!
 
Zur ersten Frage: Bitte mehr Code, so kann man noch nix sagen. Mein Vorredner vermutet, daß du vergessen hast, die Tupel aus der DB zu holen.
Das können wir aber erst mit mehr Code nachvollziehen.

Zur zweiten Frage:
Entweder du übergibst die zu löschende ID via Formular und POST, dann ist es egal, was die User in der URL-Zeile rumtippen,
oder du gleichst zusätzlich noch den User ab.
Z.B.:
PHP:
mysql_query('DELETE FROM mailbox WHERE ID = '.$_GET['mid'].' AND ID_VON = '.$_SESSION['user_id'].';');
 
Zum Ersten:
Du hast nur die Abfrage an den Server geschickt - du musst natürlich noch die Ergebnisse abfragen.
Dafür gibts verschiedene Möglichkeiten, Jon02 hat shcon eine genannt.

Aber ganz allgemein dazu: Schau dringend mal unter dem Stichwort Mysql Injection nach - du baust da gerade ein großes Sicherheitsleck ein, wenn du $_GET-Daten direkt in einen MySQL-Query einbaust.
 
Zurück