Hi,
also ein paar Punkte (und hoffentlich die Lösung)
Formatiere bitte deinen Code, rücke ihn ein, keine geschweiften Klammern hintereinander, keine while Funktion in nur eine Zeile, sonst ist es sehr schwer, was in deinem Code zu verstehen, ich musste es mirselbst erst aufdröseln :roll:
gewöhn dir bitte ab so was zu schreiben:
PHP-Code:
<?php
if ($userid=="$myid")
?>
schreib lieber so, glaub mir:
PHP-Code:
<?php
if ($userid==$myid)
?>
das selbe gilt, wenn du Variableninhalte kopierst, z.B.
PHP-Code:
<?php
$var1 = $var2;
?>
Irgendetwas hast du falsch überlegt:
In Zeile 6 vergleichst du den Inhalt von $userid mit dem einer anderen Variable, aber du gibst der Variable erst in Zeile 22 einen Wert? :?
In Zeile 9 machst du ein mysql_fetch_object() aus einer Ressource ($data2323), die gar nicht existiert, ich denke, du meinst $data, oder?
Diese while-Schleife ist vollkommen überflüssig, weil du wahrscheinlich sowieso nur einen EIntrag erhälst.....
Das selbe gilt für die untere while-Schleife
Dieses Verfahren ist absolut unsicher, weil es jedem ermöglicht, zu jeder Buddy-Liste jemanden hinzuzufügen.
Ich werde dir mal zeigen, wie ich das machen würde (auch so unsicher, aber um das sicher zu machen, müsste man sessions anwenden, und das würde zu sehr ausschweifen):
Meine User-Tabelle "user":
ID|Nickname
Meine Buddy-Listen-Tabelle buddies:
ID|BuddyID|UserID|
wobei BuddyID die ID des hinzugefügten Users darstellt und UserID die des Besitzers der Buddy-Liste
Das ist die buddies.php, wo die Buddies angzeigt werden. die UserID wird mal jetzt mal als POST-Variable mitgesandt, wie, is ja jetzt egal.
PHP-Code:
<?php
[...]
$userid = trim($_POST['USERID'].$_GET['USERID']);
if (!empty(POST['add_new_buddy'])) {
$newbuddyname = $_POST['newbuddyName'];
$query_txt = "SELECT ID FROM users WHERE Nickname='$newbuddyname'";
$query = mysql_query($query);
$newbuddyid = mysql_fetch_object($query);
$query_txt = "SELECT ID FROM buddies WHERE ID='$newbuddyid->ID'";
$query = mysql_query($query);
$buddyid_inbuddies = mysql_fetch_object($query);
if (empty($error_1 = ($userid != $newbuddyid->ID) ? "" : "Warum willst du dich selbst hinzufügen?";) and empty($error_2 = (empty($buddyid_inusers->ID)) ? "" : "Der is da schon drinne, ok?";) {
$query_txt = "INSERT INTO buddies BuddyID, UserID VALUES ('$newbuddyid->ID, $userid)";
msyql_query($query_txt);
}
}
$query_txt = "SELECT BuddyID FROM buddies where UserID = '$userid'";
$query_buddies = mysql_query(query_txt);
while ($buddy = mysql_fetch_assoc($query_buddies)) {
$query_txt = "SELECT Nickname from users where ID='$buddy[ID]'";
$query = mysql_query($query);
$buddy_name = mysql_fetch_object($query)
$entries .= "
".$buddy_name->Nickname;
}
?>
<html>
<body>
<?=$entries ?>
<?=$error_1 ?><?=$error_2 ?>
<form method=POST>
<input type=hidden name=USERID value=<?=userid ?>>
<input type=text name=newbuddyName>
<input type=submit name=add_new_buddy value=add>
</form>
</body>
</html>
So ungefähr stimmts. Fehler sind möglich!