Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablen weitergeben

Einklappen

Neue Werbung 2019

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

  • Variablen weitergeben

    Guten Tag,

    ich betreibe eine kleine Community und möchte das sich meine Nutzer registrieren. Die Daten kommen dann in eine Datenbank zusammen mit dem Rang des "Newbie". Das funktioniert auch alles wunderbar, nun möchte ich aber das meine Admin's den Rang im Browser bearbeiten können.

    Tabelle:
    PHP-Code:
    cho '<table border="1">';
        while (
    $zeile mysqli_fetch_array$db_ergMYSQL_ASSOC))
        {
          echo 
    "<tr>";
          echo 
    "<td>"$zeile['id'] . "</td>";
          echo 
    "<td>"$zeile['vorname'] . "</td>";
          echo 
    "<td>"$zeile['nachname'] . "</td>";
          echo 
    "<td>"$zeile['geburtstag'] . "</td>";
          echo 
    "<td>"$zeile['email'] . "</td>";
          echo 
    "<td>"$zeile['nickname'] . "</td>";
          echo 
    "<td>"$zeile['anwerber'] . "</td>";
          echo 
    "<td>"$zeile['geschlecht'] . "</td>";
          echo 
    "<td>"$zeile['steamnick'] . "</td>";
          echo 
    "<td>"$zeile['handy'] . "</td>";
          echo 
    '<td><form action="rang.php?id='.$zeile['id'].'" method="post"><input type="text" value="'htmlentities($zeile['rang']) . '"><input type="submit"></form></td>';      
          echo 
    "</tr>";
        }
        echo 
    "</table>"
    Rang.php:
    PHP-Code:
    <?php
        
        $db 
    mysqli_connect('localhost''ddgamer''*''ddgamer');
        
        if(!
    $db)
        {
            die(
    "<p>Verbindung konnte nicht hergestellt werden!</p>");
        }
        
        
    $rang $_POST['rang']; 
        
        echo 
    'Rang:';
        echo 
    $rang;
        
        if (isset(
    $_POST['rang']) and isset($_GET['id'])) { 
            
    $rang $_POST['rang']; 
            
    $id = (int) $_GET['id']; 
            
            echo 
    $rang;
            echo 
    $id;
            
            
    $aendern "UPDATE  `ddgamer`.`member` SET  `rang` = '$rang' WHERE `member`.`id` ='$id'";
            
    $update mysqli_query($db$aendern);
            

            echo 
    'Update erfolgreich.'
        } 
        else
        { 
            echo 
    'Ungueltiger Aufruf - Rang und ID muessen korrekt angegeben werden.'
        }
        
         echo 
    "<p><a href='bearbeiten2.php'>Zur&uuml;ck</a><p/>";
    ?>
    Mein Problem ist nun, das die Variable Rang, die eingelesen wird, nicht übertragen wird in die rang.php


  • #2
    Du hast den Namen vergessen.
    mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
    PHP-Code:
    echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

    Kommentar


    • #3
      $rang = $_POST[$zeile['rang']];
      meinst du das so?

      Kommentar


      • #4
        Ne, den hier:
        <input name=***
        mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
        PHP-Code:
        echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

        Kommentar


        • #5
          kannst du dich etwas deutlicher ausdrücken bitte?

          Kommentar


          • #6
            Zitat von DD-Gamer Beitrag anzeigen
            kannst du dich etwas deutlicher ausdrücken bitte?
            Du musst dich dringend nochmal mit Formularen auseinandersetzen, deutlicher kann ich dir den Fehler nicht zeigen.
            mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
            PHP-Code:
            echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

            Kommentar


            • #7
              Zitat von DD-Gamer Beitrag anzeigen
              kannst du dich etwas deutlicher ausdrücken bitte?
              Der Name, der im input-Element angegeben wird, ist der Key im Assoziativen Array $_POST.

              Erweitere dein
              PHP-Code:
              <input type="text" value="'. htmlentities($zeile['rang']) . '"
              um

              PHP-Code:
              <input type="text" name="rang" value="'. htmlentities($zeile['rang']) . '"
              und du kannst ihn via

              PHP-Code:
              echo $_POST['rang']; 
              auslesen.

              Kommentar


              • #8
                Danke vielmals! endlich funktionierts!

                Kommentar


                • #9
                  Und du machst dazu einen neuen Thread auf..

                  http://www.php.de/php-einsteiger/111...u-aendern.html

                  gewöhn dir sowas bitte ab, auch Crosspostings sind nicht unbedingt gern gesehen, fall es stimmt was Andate sagt. Halt dich bitte an die Netiquette und die Forenregeln.
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    Noch mal der explizite Hinweise darauf, dass du den Kontextwechsel nach HTML mit entsprechendem Escaping durchführen musst.

                    - http://wiki.selfhtml.org/wiki/Artike...behandeln#HTML

                    In der Regel ist htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); die Funktion, die man will.

                    Oder etwas mehr sophisticated: htmlspecialchars($s, ENT_QUOTES | ENT_HTML5 | ENT_DISALLOWED | ENT_SUBSTITUTE, 'UTF-8');.

                    Hintergründe: http://nikic.github.io/2012/01/28/ht...n-PHP-5-4.html

                    Um sich Tipparbeit zu sparen, kann und sollte das in eine Funktion oder dergleichen ausgelagert werden.

                    Kommentar

                    Lädt...
                    X