Misteriöse if anweisung o.o!

  • Themenstarter Themenstarter maxXxXx
  • Beginndatum Beginndatum
M

maxXxXx

Hallo,
bin zur Zeit noch am Basteln meines Forums / CMS / Communitysystems und wollte grad ne Beitragseditierfunktion realisieren.

Im Script, wo die Beitragsanzeige zusammengesetzt wird, habe ich erstmal ne if Anweisung gebaut, damit bei jedem Beitrag, der von dem ZURZEIT eingeloggtem User ist, ein Editierlink erscheint:

if ($row["name"] == $autor) {
echo " <a href=\"answer_edit.php?post=".$row["id"]."\">Beitrag editieren</a>";
}

Ok, funktioniert auch soweit, die ID des Beitrages wird auch via GET übergeben.
Nun das eigentliche Editierscript..
Da will ich am Anfang erstmal checken, ob der Name des ZURZEIT eingeloggten Users zum Posternamen des per GET übergebenen Beitrages passt. Doch da scheitere ich.
Hier der Code dazu:

<?php
session_start();

include("inc/db.php");
include("inc/config.php");
?>
<?
if (!session_is_registered('autor'))
{
die ("Du musst dich zuerst <a href=\"../index.php\">einloggen!</a>");
}
$postid = $_GET['post'];
$query = "SELECT name FROM nb_answers where id='$postid'";
$sql = mysql_query($query);
while ($ds = mysql_fetch_object($sql)){
$name = $ds->autor;
if ($name != $autor) {
die ("Fehler");
}
}


?>


$autor ist der ZURZEIT eingeloggte user.
$name der Autor des Beitrages.
Ich hab es getestet... Ich bin eingeloggt mit dem Namen, der gleich zum Autor des per GET übergebenen Beitrages.
Aber auch wenn die beiden gleich sind, gibt er Fehler aus und bricht ab. Wenn ich jetzt
if ($name == $autor) {
schreibe, funktioniert es, dabei müsste doch dann Fehler ausgegeben werden ?!
$name hab ich mal mit echo ausgeben lassen, wird aber nicht ausgegeben, $autor schon und wenn ich $autor und den Name des Posters in der DB vergleiche, sind sie auch gleich. Also müsste die if != Anweisung ja nicht gelten.. else ist doch nicht notwenig, oder?
Versteht ihr des? Ich glaube nicht wirklich dran o_O

mfg
 
Zuletzt bearbeitet von einem Moderator:
Du holst in deinem Query name und nicht autor... somit existiert $ds->autor; überhaupt nicht (worauf sagg wohl hinweisen wollte:-))

Wenn du dir PHP-Fehler ausgeben lässt und diese auch auswertest, findest du sie von alleine;)
 
Zurück