Formular - Entertaste/Mauszeiger"

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

  • Formular - Entertaste/Mauszeiger"

    Hallo,

    Ich habe hier ein einfaches Eingabeformular. Wenn ich dieses aufrufe, funktioniert es nur, wenn ich mit dem Mauszeiger auf die Schaltfläche klicke. Nichtaber wenn ich die Eingabetaste drücke, wie das sonst immer der Fall ist.

    Wäre nett wenn mir jemand sagen könnte woran das lieget.
    Viele Grüße Jan

    Hier der HTML code:

    <form action="<?=$PHP_SELF?>" method="post">
    <p style="word-spacing: 0; margin-left: 10; margin-right: 40; margin-top: 0; margin-bottom: 0" align="center"><input type="text" name="schluessel" size="20" maxlength="10">&nbsp;&nbsp;<input type="submit" name="speichern" value="GO" /></p>
    </form>

  • #2
    mir faellt nix auf.

    solltest dich aber zwischen "<lala />" und "<lala>" einigen.
    Schon getestet mal das <?=$PHP_SELF?> testweise zu ersetzen?
    Immer schoen den Quelltext brechen....
    Sorry: UMBRECHEN!

    Kommentar


    • #3
      Also wenn ich wat in den input schreibe, dann wird bei mir durch enter das Form abgeschickt. Sobald du in den input klickst, geht der Focus auf den Button.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        das ist kein unbekanntes problem. es liegt an dem verarbeitenden script. dort wird am anfang irgendwo
        PHP-Code:
        if ( isset ( $_POST['speichern'] ) ) 
        stehen, oder? wenn du die form aber mit enter submit-est und nicht mit dem klick auf den button, wird dieser nicht übertragen und das script weiß nicht, dass die form submit-et wurde.

        einfaches beispiel, bei google, wenn du die such form mit enter submittest, ist die url
        Code:
        http://www.google.de/search?hl=de&q=php-resource.de&meta=
        wenn du sie per klick auf "suchen" submittest, ist sie
        Code:
        http://www.google.de/search?hl=de&q=php-resource.de&btnG=Suche&meta=
        ich denke, jetzt wirst du das problem leicht lösen können.

        p.s. vergiss die "register globals" und gewöhne dir das "PHP_SELF" ab.

        Kommentar


        • #5
          Hier poste ich schnell noch einmal das dazugehörige Script, vielleicht kann mir jemand anhand des Beispiels kurz eine Verbesserung vorschlagen!

          Ich bedanke mich schon mal für die Antworten!

          PHP-Code:
          <?

              if ($speichern == "GO") {

                              
                  
                  if ($schluessel == NULL) { $schluessel = 0; }
                      
                          
                  // Die Informationen aus der Datenbank holen
                                        $result = mysql_query("SELECT * FROM Break_Gaeste WHERE Schluessel=$schluessel");

                         while ($row = mysql_fetch_array($result) )  {
                      
                      $zugang = 1;
                  }
                  }
                  



          if ($zugang == 1) {
          echo('yes');
          }

          else {

          if ($schluessel >= 1) {
          echo('no');
          }

          }

          ?>
          Zuletzt geändert von jandayne; 30.09.2005, 11:59.

          Kommentar


          • #6
            nein, es wäre viel zu einfach, dir eine lösung zu geben.

            stammt das script von dir? weißt du, was es macht? dann wird dich schon die erste zeile stutzig machen müssen.

            übrigens, du kannst zu gott/buddha/spongebob/woranduebenglaubst beten, dass du keine sensiblen daten in der datenbank speicherst, denn diese gescheite kombination aus

            1. register globals und
            2. ungesicherter sql-query

            lädt buchstäblich dazu ein, deiner anwendung zu schaden.
            Zuletzt geändert von penizillin; 30.09.2005, 11:55.

            Kommentar


            • #7
              Ich hoffe das ich das jetzt richtig verstanden habe.

              Mein Formular ist jetzt wie folgt:

              <form action="<?=$PHP_SELF?>?[COLOR=blue]speichern=GO[/COLOR] method="post">
              <p style="word-spacing: 0; margin-left: 10; margin-right: 40; margin-top: 0; margin-bottom: 0" align="center"><input type="text" name="schluessel" size="20" maxlength="10"> <input type="submit" name="speichern" value="GO" /></p>
              </form>

              Mein PHP Script wie folgt:

              PHP-Code:
              <?

                  if ( isset ( $speichern['GO'] ) )
               {


                         
                      
                      if ($schluessel == NULL) { $schluessel = 0; }
                          
                              
                      // Die Informationen aus der Datenbank holen
                            $result = mysql_query("SELECT * FROM Break_Gaeste WHERE Schluessel=$schluessel");

                             while ($row = mysql_fetch_array($result) )  {
                          
                          $zugang = 1;
                      }
                      }
              if ($zugang == 1) {
              echo('yes');
              }

              else {

              if ($schluessel >= 1) {
              echo('no');
              }

              }

              ?>
              Zumindest funktioniert es jetzt mal, glaube aber nicht das das jetzt die optimale Lösung ist. Bedanke mich aber für die Antworten.

              Wenn jemand eine bessere Lösung hat, kann er sie ja noch Posten! Dankeschön!

              @penizillin: Ja das Script ist von mir und ja ich sollte dann auch wissen was es macht! und ja es hat funktioniert.
              Sicher ist die Datenbankverbindung nicht gut gelöst und meine Scripte basieren auf sehr geringen PHP Kenntnissen. Leider habe ich PHP oder andere Sprachen nie gelern sondern aus Büchern zusammengelesen.

              Vielen Dank für deine Bemerkung, würde aber einen kleinen Tipp zum weiter lesen eher gebrauchen können. Sprich: Schlagwort zur verbesserung!

              Ach ja: natürlich ist meine Datenbank Passwort geschützt! "();" Hier hatte ich nur die Passwörter für dieses Forum entfernt, wenn du das meintest!

              Vielen Dank für die schnelle Hilfe!
              Zuletzt geändert von jandayne; 30.09.2005, 12:29.

              Kommentar


              • #8
                Ich hoffe das ich das jetzt richtig verstanden habe.
                leider überhaupt nicht.

                was ist ausschlaggebender dafür, ob das script ausgeführt wird oder nicht?

                a) der button wurde geklickt
                b) irgendein eingabefeld wurde ausgeführt

                kleiner tipp: anfangs hattest du a) und jetzt hast du irgendein unfug.

                Kommentar


                • #9
                  http://php.speedbone.de/manual/en/security.globals.php zum thema formulare im allgemeinen.

                  http://php.speedbone.de/manual/en/security.errors.php (immer auf E_ALL stellen)

                  http://php.speedbone.de/manual/en/se...-injection.php zum thema unsichere db-benutzung.
                  OffTopic:
                  php hat neue server?

                  Kommentar


                  • #10
                    OK dann noch einmal von vorne:

                    Ich lösche: [COLOR=blue]?speichern=GO[/COLOR]

                    <form action="<?=$PHP_SELF?>" method="post">
                    <p style="word-spacing: 0; margin-left: 10; margin-right: 40; margin-top: 0; margin-bottom: 0" align="center"><input type="text" name="schluessel" size="20" maxlength="10"> <input type="submit" name="speichern" value="GO" /></p>
                    </form>

                    Dann müsste an diesem Code schon mal alles stimmen.

                    Damit liegt ein Fehler im PHP Script, wo muss ich anfangen?

                    Kommentar


                    • #11
                      beantworte doch einfach meine frage.

                      Kommentar


                      • #12
                        Ausschlag gebend ist zunächst das der Button geklickt wird, dann prüft das script ob es jemanden in der datenbank mit dem eingegebenen KEY gibt.

                        Nun muss ich das Script dazi bringen das es auch erkennt das der button geklickt wurde, auch ohne das dies mit dem Zeiger geschieht sondern mit der Entertaste.

                        Worauf willst du hinaus!
                        Zuletzt geändert von jandayne; 30.09.2005, 12:57.

                        Kommentar


                        • #13
                          formulierungsfeinheiten:

                          Ausschlag gebend ist zunächst das der Butten geklickt wird
                          genau das hattest du anfangs und eben drum hat das submit-en mittels "enter" (achtung, dabei wird der button nicht gedrückt!) nichts gebracht.

                          Nun muss ich das Script dazi bringen das es auch erkennt das der button geklickt wurde, auch ohne das dies mit dem Zeiger geschieht sondern mit der Entertaste.
                          genau gesagt ist der button egal. wichtig ist, dass die form submittet wird. das kann auf 2 wegen geschenen - "enter" und "button". du musst lediglich überprüfen, ob das feld "schluessel" im superglobalen array $_POST enthalten ist, dann weißt du, ob die form submittet wurde (egal wie), oder nicht.

                          Kommentar


                          • #14
                            Ok, ich bin am verzweifeln.

                            Ich probiere zu verstehen, was ich machen muss. Was ich änderen muss.

                            Kann ich dich nicht bitten mir vielleicht einen eindeutigeren Hinweis zu geben. Vielleicht was ich mit was (ungefähr) ersetzen muss. HTML=OK PHP=Falsch? (wo genau?)

                            Sorry, aber ich komme nicht weiter, und mit vielen Begriffen nicht zurecht.

                            Sorry das ich deine Zeit beanspruche, muss aber dringend dieses Script ändern.

                            Vielen Dank!

                            Kommentar


                            • #15
                              was penizilin dir zu erklären versucht ist,

                              dass es egal ist, _wie_ die form submitted wurde.

                              demnach sollst du nicht prüfen _wie_ die form submitted wurde,
                              was du aber mit
                              PHP-Code:
                              if(isset($speichern['GO'])){ 
                              tust.

                              penizilins vorschlag ist nun, dass du das weglässt und einfach überprüfst ob deine $schluessel-variable einen wert hat.
                              denn wenn das der fall ist wurde die form ja submitted.

                              und das sollst du jetzt in code umsetzen. hoffe nicht auf eine vorgekaute lösung. die wirst du hier höchstwahrscheinlich nicht bekommen. ansätze hingegen bekommst du gerne, wenn wir sehen dass du dich anstrengst es selbst hinzubekommen
                              MfG
                              aim
                              Lies mich jetzt!
                              - OT-Tags-Liebhaber und BB-Code-Einrücker -

                              Kommentar

                              Lädt...
                              X