Ich habe unten ein PHP-Extrakt-Skript (useracc-test.php). Nachdem ich mich über login.php angemeldet habe, werde ich auf die Benutzerseite (useracc-test.php) weitergeleitet. In useracc-test.php kann ich meine persönlichen Daten (ID, Name, Benutzername, Telno) anzeigen. Wenn ich jedoch eine Senden-Taste drücke, verschwinden die abgerufenen Daten (ID, Name, Benutzername, Telno). Denn auf derselben Seite habe ich auch ein Einfügeformular. Aber zunächst: Wie behalte ich die abgerufenen Daten (die angezeigten persönlichen Daten) jedes Mal bei, wenn ich auf die Schaltfläche "Senden" drücke? Bitte helfen Sie. Ich habe "Drucken" versucht, aber es ist nur geeignet, wenn ich Daten manuell in das Einfügeformular eingebe. Aber ich kann es nicht auf die abgerufenen Daten (personenbezogene Daten) anwenden. Ich habe jQuery heruntergeladen und davon erfahren, kann aber immer noch nicht vollständig verstehen, wie man es verwendet. Gibt es eine Möglichkeit, mit PHP Daten zu speichern? Ich habe mehrere Tage lang alle Beispiele aus dem Internet ausprobiert. Ich kann keine geeignete Lösung finden oder verstehen. Ich verliere den Verstand. Bitte helfen Sie.

Die Daten unter ID, Name, Benutzername und Telno verschwinden jedes Mal, wenn ich auf Senden drücke. Wie kann man es behalten?

       <?php

    //useracc-test.php

    //start session
    session_start();



    require 'connect-test.php'; 




    if(isset($_POST['username'])){

        $userName = $_POST['username'];
        $query = "SELECT id, name, username, telno FROM users WHERE username = ?";
        $stmt = $conn->prepare($query);
        $stmt->bind_param('s', $userName);
        $stmt->execute();
        $res = $stmt->get_result(); 
        $row = $res->fetch_array();
        $_SESSION['id'] = $row['id'];
        $_SESSION['name'] = $row['name'];
        $_SESSION['username'] = $row['username'];
        $_SESSION['telno'] = $row['telno'];
    }
    ?>



    <html>
    <head>    


</head>
    <body>
    <div id="apDiv3">
    <div id="TabbedPanels1" class="TabbedPanels">
      <ul class="TabbedPanelsTabGroup">
        <li class="TabbedPanelsTab" tabindex="0">Tab 1</li>
        <li class="TabbedPanelsTab" tabindex="0">Tab 2</li>
      </ul>
      <div class="TabbedPanelsContentGroup">
        <div class="TabbedPanelsContent">
          <p>


          </p>

          <?php
        echo $_SESSION['id']."<br/>";
        echo $_SESSION['name']."<br/>";
        echo $_SESSION['username']."<br/>";
        echo $_SESSION['telno']."<br/>";
    ?>



            <?php



     if(isset($_POST['submit']))

       {
        $id = $_POST['id'];
        $name2 = $_POST['name2'];
        $color2 = $_POST['color2'];
        $hobby2 = $_POST['hobby2'];



        $stmt = $conn->prepare("INSERT INTO useradvert (id,name2,color2,hobby2) VALUES (?,?,?,?)");
        $stmt->bind_param("isss",$id,$name2,$color2,$hobby2);
        $stmt->execute();

       // $stmt->close();
       // $conn->close();
       } 


        ?>   







          </p>
        </div>
        <div class="TabbedPanelsContent">
          <form name="form2" method="post" action="useracc-test.php">
            <p>&nbsp;</p>



                 <p>id :        
                   <label for="id"></label>
                   <input name="id" type="text" id="id" value="<?php echo  htmlspecialchars 
                   ($row['id']); ?>" >

                 </p>
            <p>name :
              <input type="text" name="name2" id="name2">
            </p>
            <p>color2 :
              <input type="text" name="color2" id="color2">
            </p>
            <p>hobby2 :
              <input type="text" name="hobby2" id="hobby2">
            </p>
            <p>
              <input type="submit" name="submit" id="submit" value="submit">
            </p>
          </form>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
        </div>
      </div>
    </div>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>    
      <script type="text/javascript">
    var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
      </script>

    <?php unset($_SESSION); 
    session_destroy(); ?>
    </body>
                   </html>
-1
Linda May 30 Dez. 2015 im 21:14

2 Antworten

Beste Antwort

Unmittelbar nach dem Fetch-Array sollten Sie das Ergebnis in einer $ _SESSION-Variablen zuweisen

$_SESSION['id'] = $row['id'];
$_SESSION['name'] = $row['name'];
$_SESSION['username'] = $row['username'];
$_SESSION['telno'] = $row['telno'];

Ihre Variable $ _SESSION ist auf jeder Seite verfügbar, auf der session_start () vorhanden ist.

Sie können die Variable $ _SESSION leeren, wenn sich der Benutzer wie folgt abmeldet:

unset($_SESSION); 
session_destroy(); 

Um die Ergebnisse auszudrucken, gehen Sie folgendermaßen vor:

<?php
    echo $_SESSION['id']."<br/>";
    echo $_SESSION['name']."<br/>";
    echo $_SESSION['username']."<br/>";
    echo $_SESSION['telno']."<br/>";
<?

BEARBEITEN: Ändern Sie den oberen Rand Ihres Codes wie folgt. Jedes Mal, wenn Sie auf '' SUBMIT '' geklickt haben, wurde die Abfrage erneut ausgeführt. Da diesmal jedoch $ _POST ['Benutzername'] nicht festgelegt wurde, haben Sie Ihrer Variablen $ username eine leere Zeichenfolge zugewiesen

<?php

//useracc-test.php

//start session
session_start();

require 'connect-test.php';

if(isset($_POST['username'])){

    $userName = $_POST['username'];
    $query = "SELECT id, name, username, telno FROM users WHERE username = ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param('s', $userName);
    $stmt->execute();
    $res = $stmt->get_result(); 
    $row = $res->fetch_array();
    $_SESSION['id'] = $row['id'];
    $_SESSION['name'] = $row['name'];
    $_SESSION['username'] = $row['username'];
    $_SESSION['telno'] = $row['telno'];
}
?>
1
SamyQc 30 Dez. 2015 im 18:59

Es wird nicht beibehalten, da der für Ihre SQL benötigte Benutzername wahrscheinlich über das Anmeldeformular veröffentlicht wurde. Sobald Sie die Seite von Ihrem useracc-test.php aktualisiert haben, sind die veröffentlichten Daten nirgends zu finden, da sie aus login.php abgerufen wurden

Jetzt können Sie SESSIONS verwenden

session_start(); $_SESSION['username'] = $_POST['username']; isset($_SESSION['username']) ? $id = $_SESSION['username'] : false;

$_SESSION kann überall verwendet werden, solange session_start() vorhanden ist

0
John Pangilinan 30 Dez. 2015 im 18:34