Engin: PHP $_GET und sonderzeichen <>\

Beitrag lesen

Hi dedlfix,

<input type="text" name="interpreten_name" value="'.(htmlspecialchars($buchstabe)).'" />

Hier fügst du den Inhalt von $buchstabe in einen HTML-Kontext ein und behandelst ihn noch ein zweites Mal. Daher deine Verdopplung. Behandle Werte niemals im Voraus, immer erst dann, wenn du sie in einen anderen Kontext bringst. Es geht nämlich noch weiter.

Wenn ich $buchstabe nur 'einmal' behandel werden Zeichen wie < oder > so wie sie sind ausgegeben,
statt als &lt oder &gt.
Da stoss ich noch auf verständnis fragen.

Was muss nach der abfrage im <input type="text"> stehen, '< oder &lt' ?

  
  if (isset($_GET['PREVIEWBUTTON'])) {  
 $buchstabe = $_GET['interpreten_name'];  
  
  echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">  
  <input type="text" name="interpreten_name" value="'.htmlspecialchars($buchstabe).'" />  
 Interpret<br />'."\n";  
  
 $resultat = mysql_query("SELECT interpret_id, name FROM song_interpret");  
  $num_rows = min(15, mysql_num_rows($resultat));  # auch hier gibt es noch verständnis probleme  
 echo '<select name="Interpret" size="'.$num_rows.'">'."\n";  
  
 $sql = "SELECT interpret_id, name FROM song_interpret WHERE name LIKE '$buchstabe%' ORDER BY name";  
 $ergebnis = mysql_query($sql);  
  
 while($row = mysql_fetch_object($ergebnis))  
 {  
 echo '<option value="'.(htmlspecialchars($row->interpret_id)).'">'; # ist an dieser stelle eine bearbeitung nötig?  
 echo (htmlspecialchars($row->name))."</option>\n";  
       }  
 echo  '</select><br /><input type="submit" name="PREVIEWBUTTON" value="Vorschau" />  
 <input type="submit" name="WEITERBUTTON" value="WEITER" />  
 </form>';  
       }  
else {  
}

Das Ergebnis von mysql_num_rows($resultat) ist eine triviale Zahl und du brauchst es an genau einer Stelle. Es dafür zunächst in einer Variablen abzulegen, ist nicht notwendig.

Anders kriege ich kein Resultat bzw. zahl ausgegeben, wie kann ich das denn ohne Variablen lösen?

Bist du sicher, dass du auf jeden Fall das select-Element so lang haben möchtest wie Datensätze vorhanden sind? Manchmal ist es sinnvoller, eine Obergrenze zu verwenden, so dass vielleicht 15 gleichzeitig angezeigt werden und der Rest erscrollbar ist. Das ließe sich mit der Funktion min() bewerkstelligen: min(15, mysql_num_rows($resultat)). Wenn num_rows größer als 15 ist, holt die 15 es auf ebendiese Anzahl zurück.

Das wäre ein schönes Feature, nur diese funktion verstehe ich nicht, oder wende es falsch an.

 $resultat = mysql_query("SELECT interpret_id, name FROM song_interpret");  
  $num_rows = min(15, mysql_num_rows($resultat));  
 echo '<select name="Interpret" size="'.$num_rows.'">'."\n";

Ich bekomme an stelle von '.$num_rows.' immer 15, egal ob das resultat 15 sind oder weniger.
Ich hätte jetzt gedacht, das wenn das ergebnis weniger als 15 die entsprechende Zahl ausgibt,
und über 15 immer 15 ausgibt.
Oder habe ich es falsch angewendet?

Grüße aus H im R,
Engin

0 46

DB Normalisieren und eine ID in 3 Tabellen speichern

Engin
  • datenbank
  1. 0
    Ilja
    1. 0

      DB Normalisieren Ok. 3 INSERT INTO ausführen Problem

      Engin
      1. 0
        Struppi
        1. 0
          Engin
          1. 0
            ChrisB
            1. 0

              3 INSERT INTO ausführen Problem auch OK.

              Engin
              1. 0
                ChrisB
                1. 0

                  LAST_INSERT_ID() bzw. mysql_insert_id() wie richtig verwenden?

                  Engin
                  1. 0
                    ChrisB
                    1. 0
                      Engin
                    2. 0
                      EKKi
                      1. 0
                        Sven Rautenberg
                        1. 0
                          EKKi
                          1. 0
                            Sven Rautenberg
                            1. 0
                              EKKi
                  2. 0
                    Struppi
                    1. 0
                      Engin
                      1. 0
                        ChrisB
                        1. 0
                          Engin
                          1. 0
                            ChrisB
                            1. 0

                              Danke!

                              Engin
                      2. 0
                        Struppi
  2. 0

    Noch eine frage zur DB normailiserung

    Engin
    1. 0
      ChrisB
      1. 0
        Engin
        1. 0
          EKKi
          1. 0
            Engin
            1. 0
              EKKi
              1. 0
                Engin
                1. 0
                  EKKi
                  1. 0
                    Engin
                    1. 0
                      EKKi
                      1. 0
                        Engin
                        1. 0
                          EKKi
                          1. 0
                            Engin
                  2. 0
                    ChrisB
                    1. 0

                      Danke! DB normailiserung schreitet voran

                      Engin
  3. 0

    PHP $_GET und sonderzeichen <>\

    Engin
    • php
    1. 0
      dedlfix
      1. 0
        Engin
        1. 0
          dedlfix
          1. 0
            Engin
            1. 0
              EKKi
              1. 0

                PHP $_GET auch gelöst

                Engin
    2. 0
      EKKi