Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Formular leert sich nach dem neuladen der Seite...

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Formular leert sich nach dem neuladen der Seite...

    Hey,

    ich hab ein kleines Forumlar gebastelt, alles funktioniert auch prima nur leert sich die Zeile in der Datenbank wo die Einträge gespeichert werden.

    Wenn man das Forumlar ausfüllt und abschickt sieht es folgendermaßen in der Datenbank aus:



    Wenn man jedoch die Seite mit dem Formular neu ladet leert sich das Formular wieder!



    Woran das liegt weiß ich nicht, normalerweise müssen die Einträge doch weiterhin in der Datenbank gespeichert bleiben?

    PHP-Code:
    <form method="post"  action="index.php?page=28">
         <input name="true_name" type="text" placeholder="Dein realer Name..."><br>
         <input name="motto" type="text" placeholder="Dein Motto..."><br> 
         <textarea name="about_me" type="text" placeholder="Ein kleiner Text über dich..."></textarea><br>
         <input type="submit" value="Speichern">
    </form>

    <?php

    // User ID
    $id $userdata[id];

    // Realer Name
    $true_name mysql_real_escape_string($_POST['true_name']);


    $sqlupdate "UPDATE `iv_user_data`  
                  SET  
                     `true_name`='
    $true_name'
                  WHERE id = '
    $id'"

    $update mysql_query($sqlupdate); 

    // About me
    $about_me mysql_real_escape_string($_POST['about_me']);

    $sqlupdate2 "UPDATE `iv_user_data`  
                  SET  
                     `about_me`='
    $about_me'
                  WHERE id = '
    $id'"

    $update mysql_query($sqlupdate2); 

    // Motto

    $motto mysql_real_escape_string($_POST['motto']);


    $sqlupdate3 "UPDATE `iv_user_data`  
                  SET  
                     `motto`='
    $motto'
                  WHERE id = '
    $id'"

    $update mysql_query($sqlupdate3); 

    ?>

  • #2
    Ahoi,

    ich würde mal meinen, nach dem Neuladen ist dein Post leer

    Und warum verwendest du 3 Abdate-Queries anstatt einer ?
    ------
    Grüße Manü

    Kommentar


    • #3
      Wie benutzte ich denn nur eine?
      So vielleicht? :P

      $update = mysql_query($sqlupdate, $sqlupdate2, $sqlupdate3);

      Wie kann ich das ändern, sodass der Post nicht leer ist ?

      Kommentar


      • #4
        Wie benutzte ich denn nur eine?
        Die SQL-Statments zusammenführen
        Code:
        UPDATE tablename SET field1 = value1, field2 = value2, ... WHERE id = $id
        Wie kann ich das ändern, sodass der Post nicht leer ist ?
        Deine Formular-Verarbeitung wird bei jeder Rquest-Methode ausgeführt, da Du keine Prüfung durchführst ob es sich um einen Post-Request handelt.

        PHP-Code:
        <?php
        // Is post request?
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            
        // validate input (!!) and update DB-Record
        }
        ?>
        <html>
             <body><!-- Formular --></body>
        </html>

        Kommentar


        • #5
          Zitat von SchokoBrunnen Beitrag anzeigen
          Wie benutzte ich denn nur eine?
          So vielleicht? :P

          $update = mysql_query($sqlupdate, $sqlupdate2, $sqlupdate3);

          Wie kann ich das ändern, sodass der Post nicht leer ist ?
          Nein entweder so:
          PHP-Code:
          $update mysql_query(
              
          "UPDATE `iv_user_data` SET 
              `true_name`='"
          .$true_name."', 
              `about_me`='"
          .$about_me."',
              `motto`='"
          .$motto."'
              WHERE id="
          .$id
          ); 
          oder gleich so:
          PHP-Code:
          $update mysql_query(
              
          "UPDATE `iv_user_data` SET 
              `true_name`='"
          .mysql_real_escape_string($_POST['true_name'])."', 
              `about_me`='"
          .mysql_real_escape_string($_POST['about_me'])."',
              `motto`='"
          .mysql_real_escape_string($_POST['motto'])."'
              WHERE id="
          .$id
          ); 
          Die zweite Variante erspart den Umweg über Variablen-Zuweisung.
          Hinweis: Ich gehe davon aus, dass es sich bei der Spalte "id" um den Datentyp Integer handelt, daher muss "$id" auch nicht in Hochkommata stehen!

          Im übrigen solltest du statt mysql_*-Funktionen lieber auf mysqli_*-Funktionen umstellen, oder noch besser gleich auf PDO.

          Kommentar


          • #6
            Zitat von SchokoBrunnen Beitrag anzeigen
            Wie benutzte ich denn nur eine?
            So vielleicht? :P

            $update = mysql_query($sqlupdate, $sqlupdate2, $sqlupdate3);
            Code:
            $true_name	= mysql_real_escape_string($_POST['true_name']); 
            $about_me	= mysql_real_escape_string($_POST['about_me']);
            $motto		= mysql_real_escape_string($_POST['motto']); 
            
            $sqlupdate = "UPDATE 	iv_user_data
                          SET	true_name	= '$true_name',
            			about_me	= '$about_me',
            			motto		= '$motto'
                          WHERE 	id		= '$id'";
            
            $update = mysql_query($sqlupdate);

            Kommentar


            • #7
              Dankeschön! Jetzt klappt alles super und viel schneller.

              Etwas hätte ich noch, wenn man alles erfolgreich abgespeichert hat und alles problemlos abgesendet wurde, sollte man eine Nachricht erhalten das alles geklappt hat.
              Habe das so bis jetzt:

              PHP-Code:
              if (empty($true_name) || empty($about_me) || empty($profil_badge) || empty($motto)) {
                 echo 
              ' Bitte fülle alle Felder aus! '; }
              else {
              elseif (
              $update true) {
                  echo 
              'Deine Daten wurden erfolgreich gespeichert!'; } 
              else { echo 
              'Deine Daten konnten nicht gespeichert werden!'; }

              Kommentar


              • #8
                Zitat von SchokoBrunnen Beitrag anzeigen
                Dankeschön! Jetzt klappt alles super und viel schneller.

                Etwas hätte ich noch, wenn man alles erfolgreich abgespeichert hat und alles problemlos abgesendet wurde, sollte man eine Nachricht erhalten das alles geklappt hat.
                Habe das so bis jetzt:

                PHP-Code:
                if (empty($true_name) || empty($about_me) || empty($profil_badge) || empty($motto)) {
                   echo 
                ' Bitte fülle alle Felder aus! '; }
                else {
                elseif (
                $update true) {
                    echo 
                'Deine Daten wurden erfolgreich gespeichert!'; } 
                else { echo 
                'Deine Daten konnten nicht gespeichert werden!'; }

                Funktioniert leider nicht.

                Kommentar


                • #9
                  PHP-Code:
                  if (empty($true_name) || empty($about_me) || empty($profil_badge) || empty($motto)) 

                      echo 
                  ' Bitte fülle alle Felder aus! '

                  else 

                      
                  $update mysql_query(...);
                      if (
                  $update!==false
                      { 
                          echo 
                  'Deine Daten wurden erfolgreich gespeichert!'
                      }  
                      else 
                      { 
                          echo 
                  'Deine Daten konnten nicht gespeichert werden!'
                      } 

                  [MAN]mysql_query[/MAN]:
                  Für SELECT, SHOW, DESCRIBE, EXPLAIN und andere Anweisungen, die eine Ergebnismenge zurückgeben, gibt mysql_query() eine Kennung resource bei Erfolg zurück oder FALSE bei Fehlern.
                  Zu deiner if-else Struktur sage ich mal nichts. Vergleiche einfach.
                  War der Beitrag hilfreich? Dann Bedank dich mit einem klick auf .

                  Kommentar


                  • #10
                    Hey,

                    ja die If-Anweisung war schrecklich, war da an meinem Mini Laptop und habe da keinen Überblick.
                    Danke, jetzt funktioniert alles, die Meldung mit dem "Füllen Sie alle Felder aus" kommt nur beim Absenden, aber auch wenn man alles richtig ausfüllt kommt diese Meldung..

                    Kommentar


                    • #11
                      Der Code wurde hier mehrfach berichtigt. Kannst du bitte einmal eine aktuelle Version davon veröffentlichen? Das ist sonst nur ein Ratespiel
                      War der Beitrag hilfreich? Dann Bedank dich mit einem klick auf .

                      Kommentar


                      • #12
                        Klar, danke für deine Hilfe bis jetzt. :P

                        PHP-Code:

                        <form method="post"  action="index.php?page=28">

                            <table border="0">
                              <colgroup>
                                <col width="350">
                                <col width="300">
                              </colgroup>
                              <tr>
                                <td>
                                         <input name="true_name" type="text" placeholder="Dein realer Name..."><br>
                                         <input name="motto" type="text" placeholder="Dein Motto..."><br> 
                                         <textarea name="about_me" type="text" placeholder="Ein kleiner Text Ã¼ber dich..."></textarea><br>
                                </td>
                                <td>
                                        <input type="radio" name="profil_badge" value="http://huggotime.bplaced.net/web_layout/images/HuggoTime%20User.gif"> <img src="http://huggotime.bplaced.net/web_layout/images/HuggoTime%20User.gif" alt="badge" /><br>
                                        <input type="radio" name="profil_badge" value="http://habboemotion.com/resources/images/badges/UKU.gif"> <img src="http://habboemotion.com/resources/images/badges/UKU.gif" alt="badge" /><br>
                                </td>
                              </tr>
                            </table>
                            <input type="submit" value="Speichern">

                        </form>
                        <?php
                        if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
                        // User ID
                        $id $userdata[id];

                          

                        if (empty(
                        $true_name) || empty($about_me) || empty($profil_badge) || empty($motto))  
                        {  
                            echo 
                        '<div id="preisliste_top">
                                        <div id="preisliste_warnung">
                                            <img src="web_layout/images/file_23.gif" alt="" /> <div class="name">Bitte fülle alle Felder aus!</div>
                                        </div>    
                                    </div>
                        '
                        ;  
                        }  
                        else  
                        {  
                            
                        $update mysql_query("UPDATE `iv_user_data` SET 
                            `true_name`='"
                        .mysql_real_escape_string($_POST['true_name'])."', 
                            `about_me`='"
                        .mysql_real_escape_string($_POST['about_me'])."',
                            `profil_badge`='"
                        .$_POST['profil_badge']."',
                            `motto`='"
                        .mysql_real_escape_string($_POST['motto'])."'
                            WHERE id="
                        .$id); 
                            if (
                        $update!==false)  
                            {  
                                echo 
                        'Deine Daten wurden erfolgreich gespeichert!';  
                            }   
                            else  
                            {  
                                echo 
                        'Deine Daten konnten nicht gespeichert werden!';  
                            }  

                        }
                        ?>

                        Kommentar


                        • #13
                          PHP-Code:
                          if (empty($_POST['true_name']) || empty($_POST['about_me']) || empty($_POST['profil_badge']) || empty($_POST['motto']))  
                          {
                          ...

                          War der Beitrag hilfreich? Dann Bedank dich mit einem klick auf .

                          Kommentar


                          • #14
                            Perfekt! Dankeschön

                            Kommentar

                            Lädt...
                            X