Zeile verschwindet & Variablen übertragen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeile verschwindet & Variablen übertragen?

    Hallo,
    ich habe zwei Fragen, zu beiden ist dieser Code (Diese Datei heißt: news_del.php und wird in die Datei cp.php included, die sich im selben Verzeichnis befindet):
    PHP-Code:
    <?php include ("checkuser.php"); ?>
    <?php
        error_reporting
    (E_ALL);
        include 
    "../inc/config.php";

        if(!@
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS)) {
            die(
    "<div class=\"fehler\" align=\"left\"><b>Fehler:</b>
            Es konnte keine Verbindung aufgebaut werden.<br></div>"
    );
        }

        if(!
    mysql_select_db(MYSQL_DATABASE)) {
            die(
    "<div class=\"fehler\" align=\"left\"><b>Fehler:</b>
            Die Datenbank konnte nicht benutzt werden.<br></div>"
    );
        }

        
    // Verbindung zu MySQL Aufbauen
        
    @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
        
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

        
    $action "";
        if(isset(
    $_GET['action']))
        {
        
    $action $_GET['action'];
        }

        if (
    $action == "")
        {
        
    $sql "SELECT ID, Titel FROM News ORDER BY Datum DESC";
        
    $result mysql_query($sql) OR die(mysql_error());
        if(
    mysql_num_rows($result)) {
            while(
    $row mysql_fetch_assoc($result)){
            
    // Alle Einträge auflisten
            
    echo "<div class=\"news\">[ID: ";
            echo 
    $row['ID'];
            echo 
    "]<b> <a href=\"cp.php?page=04&action=check&news_id=" $row['ID'] . "\">";
            echo 
    $row['Titel'];
            echo 
    "</a></b></div>";
        }
        } else {
        echo 
    "Keine News vorhanden.";
        }
        echo 
    "<br>";
        }
        elseif (
    $action == "check" && !empty($_GET["news_id"]))
        {
        
    $del_id $_GET["news_id"];
        echo 
    "<div class=\"news\" align=\"center\">Sollen die News mit der ID <b>";
        echo 
    $del_id;
        echo 
    "</b> gelöscht werden?<br><br>";
        echo 
    "<a href=\"cp.php?page=04&action=del&news_id=" $del_id "\">JA</a> | ";
             echo 
    "<a href=\"cp.php?page=04\">NEIN</a><br></div>";
        }
        elseif (
    $action == "del" && !empty($_GET["news_id"]))
        {
        
    $sql "DELETE FROM News WHERE ID=$news_id";
        
    $result mysql_query($sql);

        echo 
    "<div class=\"news\" align=\"center\">
        Der Newseintrag wurden erfolgreich gelöscht!<br></div>"
    ;
        }
    ?>
    Frage 1: (siehe Screenshot) Wenn der Code bis zum Schluss ausgeführt wird (sprich bis zum eigentlichen Löschvorgang) und die Meldung erscheint: "Der Newseintrag wurden erfolgreich gelöscht!" Wird komischer Weise immer die Copyrightzeile entfernt. Hab ich vielleicht einen Fehler im Code?
    Frage 2: Ich wollte gerne in der Funktion "action==check" den Titel des Newseintrag übertragen mit hilfe von echo $row['Titel']; leider ist mir aufgefallen das die Variable nicht übertragen wird. Wie schaff ich es, dass die Variable bei den einzelnen Funktionen übertragen wird?
    Angehängte Dateien

  • #2
    zu Frage1: in deinem Code sehe ich nichts von irgendeinem Copyright, also kann ich auch nichts beantworten.

    zu Frage2: den Titel mit als GET-Parameter übergeben, da $row[ÄTitel'] nur in deinem if-Zweig vorhanden ist.
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      1. Wird der Quellcode für den Copyrighthinweis ausgegeben, ist es möglicherweise ein CSS-Fehler?
      2. Du übergibst nur die ID, woher soll da plötzlicher der Titel kommen? Den mußt du dir schon selbst besorgen, entweder durch eine erneute DB-Abfrage oder durch Übergabe in der URL.

      Kommentar


      • #4
        Zur Frage 2:
        Wie kann ich den eine GET-Funktion über die IF-Abfrage hinaus machen, denn ich hab im Code zum Beispiel auch folgendes drin:
        PHP-Code:
            elseif ($action == "check" && !empty($_GET["news_id"]))
            {
            
        $del_id $_GET["news_id"];
            echo 
        "<div class=\"news\" align=\"center\">Sollen die News mit der ID <b>";
            echo 
        $del_id
        Ich muss extra eine neue Variable $del_id erstellen und diese mit dem Inhalt von $_GET["news_id"] füllen damit mein echo $del_id; funktioniert lieber wäre mir jedoch echo $row['news_id']; (leider wird die Variable nicht übertragen, wenn ich nur $row['news_id']; eingebe) ist dies dann überhaupt möglich (ohne eine neue MySQL-Abfrage zu starten)?

        Zur Frage 1:
        Die news_del.php wird in cp.php included, hier der Code von cp.php:
        PHP-Code:
        <?php include ("checkuser.php"); ?>  
        <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN">

        <html>
        <head>
        <title>XXXXXX</title>
        <link rel="stylesheet" type="text/css" href="../css/cp.css">
        </head>
        <table align="center" valign="top" border="0" cellpadding="0" cellspacing="0"
         class="text" style="border: 1px solid #5C676D">
          <tr>
            <td colspan="2" align="center" bgcolor="#F2F2F2" class="text"
        style="border-bottom: 1px solid #5C676D">
              <b>Control Panal</td>
          </tr>
          <tr>
            <td valign="top" width="100" style="border-bottom: 1px solid #5C676D;
         border-right: 1px solid #5C676D;" bgcolor="#F2F2F2">
             » <a href="cp.php?page=01" target="_top">News</a><br>
             » <a href="logout.php" target="_top">Logout</a><br></td>
            <td width="450" style="border-bottom: 1px solid #5C676D" valign="top" align="left">
              <?php
                
        switch($_GET['page']) {
                  case 
        "01":
                    include(
        "news.php");
                    break;
                  case 
        "02":
                    include(
        "news_add.php");
                    break;
                  case 
        "03":
                    include(
        "news_set.php");
                    break;
                  case 
        "04":
                    include(
        "news_del.php");
                    break;
                  default:
                    include(
        "startseite.php");
                }
              
        ?></td>
          </tr>
          <tr>
            <td colspan="2" align="right" bgcolor="#F2F2F2">
              <a href="http://www.XXXXXX.de.tc" target="_blank">
        coded by <b><i>XXXXXX</i></b></td>
          </tr>
        </table>
        </html>
        Ich kann nicht verstehen, wieso die Copyrightzeile verschwindet..

        Kommentar


        • #5
          PHP-Code:
          if(mysql_num_rows($result)) {
          //...
          echo "]<b> <a href=\"cp.php?page=04&action=check&news_id=" $row['ID'] . "&titel=".$row['Titel']."\">";
          //... 
          dann kannst du auch in deinem elseif-Zweig auf $_GET['titel'] zugreifen.

          PHP-Code:
          $del_id $_GET["news_id"];
          echo 
          $del_id
          macht das gleiche wie
          PHP-Code:
          echo $_GET["news_id"]; 
          it's not a bug,
          it's a feature!

          Kommentar


          • #6
            Original geschrieben von SilverVegeto
            Ich kann nicht verstehen, wieso die Copyrightzeile verschwindet..
            Na vermutlich weil der HTML-Code, der von dir dynamisch zusammengesetzt wird, grobe Fehler enthält.

            Validierst du denn zwischendurch deinen Code ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              @XGremliN: Wenn ich das nicht über diese Variablestruktur mache, erscheint ein Fehler und die
              PHP-Code:
              echo $_GET["news_id"]; 
              enthält in meiner elseif keine Daten.

              @wahsaga: Ja mach ich schon, aber es ist kein Fehler zu finden. Es ist ja auch nicht gerade kompliziert gecoded. Deswegen wundert es mich.

              Kommentar


              • #8
                aber es ist kein Fehler zu finden
                kennst du das <body>-tag?

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Das Body-Tag ist in der CSS-Datei enthalten.
                  PHP-Code:
                  <link rel="stylesheet" type="text/css" href="../css/cp.css"
                  Und die Copyrightzeile wird überall angezeigt bis nach der Löschung der News.

                  Kommentar


                  • #10
                    Das Body-Tag ist in der CSS-Datei enthalten.
                    nein ist es nicht. <body> ist ein html-tag und gehört dementsprechend auch in ein html-dokument und nicht in eine css-datei. daher sollte man bei darstellungsproblemen zuerst den html-code auf validität überprüfen. ansonsten müssen die browser raten, und das tun sie dann auch.

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Original geschrieben von SilverVegeto
                      Das Body-Tag ist in der CSS-Datei enthalten.
                      PHP-Code:
                      <link rel="stylesheet" type="text/css" href="../css/cp.css"
                      Und die Copyrightzeile wird überall angezeigt bis nach der Löschung der News.
                      Das Body-Tag selbst hat in der CSS nichts zu suchen. Da kannst du höchstens per Selector das Body-Tag "ansprechen" und formatieren, was du bestimmt auch meinst.
                      Code:
                      // css-datei
                      body
                      {
                          background-color: orange-lila-kariert;
                      }
                      Nieder mit der Camel Case-Konvention

                      Kommentar


                      • #12
                        Ja stimmt. Okay dann werde ich den Body-Tag mal wieder einfügen. Danke!

                        Kommentar


                        • #13
                          Das wär eigentlich ein fall für "the daily WTF".
                          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                          Kommentar

                          Lädt...
                          X