Kommentare freigeben bzw. Löschen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MasterG, 2. November 2008 .

  1. 2. November 2008
    Hallo,
    ich habe letztens bei mir auf der Platte ein unfertiges Newssystem gefunden, welches ich gerne erweitern würde!
    Das Newssystem hat eine Kommentarfunktion, wobei diese jedoch sofort erstellt werden. Ohne jede Moderation. Das habe ich geändert und ich kann in der DB auch den freigabewert auf 1 stellen und schon wird dieser freigegeben.
    Jetzt möchte ich dies auch in die Adminoberfläche einbinden.
    Ich lass mir also nun alle Kommentare mit dem freigabewert 0 anzeigen und hänge 2 Buttons hinten dran: Löschen und Freigeben.
    Die Namen der Buttons haben folgende Syntax: kommentarID.newsID
    Somit ist eine Eindeutigkeit gewährleistet.
    Wie kann ich jetzt abfragen, welcher Button gedrückt wurde, da ich ja nicht weiß wie dieser heißt???

    Hier mal mein Script:
    freigabe.php:
    PHP:
       <?php 

    require( "config.inc.php" );
    require(
    "login.inc.php" );
    require(
    "kopf.php" );
    require(
    "adminkopf.inc.php" );
    require(
    "function.inc.php" );


    echo 
    "<table border=0 cellspacing=1 cellpadding=3 width=\"100%\">" ;
    echo 
    "<tr><th class=head colspan=3 bgcolor= $c_header > $f_titel  Kommentare zur News</th></tr>" ;
    echo 
    "<form method=\"post\" action= $PHP_SELF >" ;
    $ergebnis   mysql_query ( "Select * FROM  $tab_newskom  ORDER BY time DESC" $serverid );
    while ( 
    $kom  mysql_fetch_array  ( $ergebnis ) ) {
    if(
    $kom [ freigabe ] ==  0 ){
       echo 
    "<tr>" ;
    //Autor:
       
    echo  "<td valign=top class=\"left\" bgcolor=\" $c_left \"><table  $glowstyle ><tr><td> $f_author <nobr>" ;
       echo 
    formatkom ( $kom [ author ]);
       echo 
    "</nobr></tr></td></table><nobr><font size=1>" ;
       echo 
    date ( "d.m.Y, H:i" , $kom [ time ]+ $time_offset );
       echo 
    "</nobr></td>" ;
    //Kommentar:
       
    echo  "<td class=\"right\" width=\"100%\" bgcolor= $c_right > $f_news " ;
       echo 
    formatkom ( $kom [ text ]);
       echo 
    "</td>" ;
       echo 
    "<td class=\"right\"bgcolor= $c_right >" ;
       echo 
    "NewsID:  $kom [ newsid ]  <br> KomID:  $kom [ id ] " ;
       echo 
    "</td>" ;
       echo 
    "<td class=\"left\" bgcolror= $c_right  align=\"right\">" ;
       echo 
    "<input type=\"submit\" name=\"f $kom [ id ] . $kom [ newsid ] \" value=\"Freigeben\">" ;
       echo 
    "</td>" ;
       echo 
    "<td class=\"left\" bgcolror= $c_right  align=\"right\">" ;
       echo 
    "<input type=\"submit\" name=\"l $kom [ id ] . $kom [ newsid ] \" value=\"Löschen\">" ;
       echo 
    "</td>" ;
       echo 
    "</tr>" ;
    }
    }
    echo 
    "</table>" ;
    echo 
    "</form>" ;

    if(isset(
    $_REQUEST [ 'f$kom[id].$kom[newsid]' ])){
        
    mysql_query ( "UPDATE  $tab_newskom  SET freigabe = '1' WHERE id = ' $kom [ id ] ' AND  newsid = ' $kom [ newsid ] ' LIMIT 1;" $serverid );
    }
    if(isset(
    $_REQUEST [ 'l$kom[id].$kom[newsid]' ])){
        
    mysql_query ( "DELETE  $tab_newskom  WHERE id = ' $kom [ id ] ' AND  newsid = ' $kom [ newsid ] ' LIMIT 1;" $serverid );
    }
    ?> 
    Der Teil mit den 2 Ifabfragen und dem $_REQUEST muss ich so ändern, dass es funktioniert.
    Ich glaube es liegt daran, dass die Variable $kom nur in der Schleife sichtbar ist.

    Vll hat ja jemand ne Idee

    Danke schonmal im vorraus.

    P.S.: Ich hoffe man kann mein Anliegen verstehen
     
  2. 2. November 2008
    AW: Kommentare freigeben bzw. Löschen

    erstmal musst du zu jedem kommentar ein form machen, die ID überträgst du als verstecktes feld
    die buttons brauchen feste namen, dann kannst du sie mit if(isset($_REQUEST['button1'])) o.ä. abfragen
     
  3. 2. November 2008
    AW: Kommentare freigeben bzw. Löschen

    Ok, vielen Dank.
    Ich werde mal probieren, ob ich es hinkriege^^

    \\EDIT:
    Ich habe das Script nun angepasst und das Freigeben Funktioniert auch :]
    Nur das Löschen nicht ?(

    Hier mal der Code, wie er jetzt ist:
    PHP:
    <? php 

    require( "config.inc.php" );
    require(
    "login.inc.php" );
    require(
    "kopf.php" );
    require(
    "adminkopf.inc.php" );
    require(
    "function.inc.php" );

    if(isset(
    $_POST [ 'freigabe' ])){
        
    $komid  $_POST [ id ];
        
    $newsid  $_POST [ newsid ];
        
    mysql_query ( "UPDATE  $tab_newskom  SET freigabe = '1' WHERE id = ' $komid ' AND  newsid = ' $newsid ' LIMIT 1;" $serverid );
    }
    if(isset(
    $_POST [ 'delete' ])){
        
    $komid  $_POST [ id ];
        
    $newsid  $_POST [ newsid ];
        
    mysql_query ( "DELETE  $tab_newskom  WHERE id = ' $komid ' AND  newsid = ' $newsid ' LIMIT 1;" $serverid );
    }

    echo 
    "<table border=0 cellspacing=1 cellpadding=3 width=\"100%\">" ;
    echo 
    "<tr><th class=head colspan=3 bgcolor= $c_header > $f_titel  Kommentare zur News</th></tr>" ;
    $ergebnis   mysql_query ( "Select * FROM  $tab_newskom  ORDER BY time DESC" $serverid );
    while ( 
    $kom  mysql_fetch_array  ( $ergebnis ) ) {
    if(
    $kom [ freigabe ] ==  0 ){
       echo 
    "<tr>" ;
    //Autor:
       
    echo  "<form method=\"post\" action= $PHP_SELF  name=\" $kom [ id ] . $kom [ newsid ] \">" ;
       echo 
    "<input type=\"hidden\" name=\"id\" value=\" $kom [ id ] \">" ;
       echo 
    "<input type=\"hidden\" name=\"newsid\" value=\" $kom [ newsid ] \">" ;
       echo 
    "<td valign=top class=\"left\" bgcolor=\" $c_left \"><table  $glowstyle ><tr><td> $f_author <nobr>" ;
       echo 
    formatkom ( $kom [ author ]);
       echo 
    "</nobr></tr></td></table><nobr><font size=1>" ;
       echo 
    date ( "d.m.Y, H:i" , $kom [ time ]+ $time_offset );
       echo 
    "</nobr></td>" ;
    //Kommentar:
       
    echo  "<td class=\"right\" width=\"100%\" bgcolor= $c_right > $f_news " ;
       echo 
    formatkom ( $kom [ text ]);
       echo 
    "</td>" ;
       echo 
    "<td class=\"right\"bgcolor= $c_right >" ;
       echo 
    "NewsID:  $kom [ newsid ]  <br> KomID:  $kom [ id ] " ;
       echo 
    "</td>" ;
       echo 
    "<td class=\"left\" bgcolror= $c_right  align=\"right\">" ;
       echo 
    "<input type=\"submit\" name=\"freigabe\" value=\"Freigeben\">" ;
       echo 
    "</td>" ;
       echo 
    "<td class=\"left\" bgcolror= $c_right  align=\"right\">" ;
       echo 
    "<input type=\"submit\" name=\"delete\" value=\"Löschen\">" ;
       echo 
    "</td>" ;
       echo 
    "</tr>" ;
       echo 
    "</form>" ;
    }
    }
    echo 
    "</table>" ;

    ?>
     
  4. 3. November 2008
    AW: Kommentare freigeben bzw. Löschen

    Ich habe auch mal "DELETE * FROM....." und "DELETE FROM....." Probiert!
    Aber es tut sich einfach nix....
    Wenn ich den Befehl: DELETE FROM $tab_newskom WHERE id = '$komid' AND newsid = '$newsid'
    mit passenden Werten in der Datenbank ausführe funktioniert er...Auf der Seite tut sich nichts....
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.