Announcement

Collapse
No announcement yet.

file_exists - Groß-, Kleinschreibung Variable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • file_exists - Groß-, Kleinschreibung Variable

    Moin, moin!
    Hänge da an einem Problem fest bzw. sehe keine Alternative und brauche mal wieder Unterstützung.

    Per Formularfeld wird ein Wert übergeben, entsprechend eines Datensatzes. Dieser Wert besteht aus Ziffern und Buchstaben. Die Buchstaben können sowohl Groß-, als auch Kleringeschrieben sein. Zu den meisten dieser übergebenen Werte gibt es Dokumente deren Bezeichnungen genauso aufgebaut sind wie auch der abzufragende Wert in der DB.
    Jetzt mein Problem:
    Ich wollte per file_exists prüfen auf vorhanden sein eines Dokuments und dieses gegebenenfalls als Link anbieten. Da der übergebene Wert -Groß/Kleinschreibung - abhängig von der Eingabe des Users ist, dieser aber nicht zwingend weis ob der Wert Groß/Kleinschreibung beinhaltet, erzeuge ich zwei Variable und anschließend die OR Abfrage
    PHP Code:
    $var strtoupper($_REQUEST['formulareingabe']);
    $var2 strtolower($_REQUEST['formulareingabe']);

    if 
    file_exists("./filebase/preis".$var.".pdf"
    OR 
    file_exists("./filebase/preis".$var2.".pdf")
    {
    <
    a href="http://domain/filebase/preis{$_REQUEST['formulareingabe']}.pdf" .... 
    Im Link wird jetzt mein Problem, Gedankenfehler sichtbar. Im Link kann ich nicht nach OR abfragen, da es ja nun beide Variablen gibt. Alle zugehörigen Dokumente doppelt anzulegen, also beide Schreibweisen, ist völlig undenkbar.

    Wo habe ich meinen Denkfehler oder mit welchen Alternativen kann ich arbeiten.

    Gruß Franz

  • #2
    Hallo,
    Originally posted by FraHa View Post
    ...Wo habe ich meinen Denkfehler oder mit welchen Alternativen kann ich arbeiten.
    Dein Denkfehler liegt in der Art der Prüfung. Wenn es entscheidend ist, ob der Name Gross oder Klein geschrieben ist, dann kannst du kein ODER verwenden.

    PHP Code:
    if (file_exists("./filebase/preis".$var.".pdf")) {
      <
    a href="http://domain/filebase/preis{$var}.pdf" .... 
    }
    else if (
    file_exists("./filebase/preis".$var2.".pdf")) {
      <
    a href="http://domain/filebase/preis{$var2}.pdf" .... 
    }
    else {
    ... 
    Alternativ wäre die Verwendung einer Schleife denkbar:
    PHP Code:
    foreach (array(strtoupper($_REQUEST['formulareingabe']),
                   
    strtolower($_REQUEST['formulareingabe'])) as $var) {
      if (
    file_exists("./filebase/preis".$var.".pdf")) {
        <
    a href="http://domain/filebase/preis{$var}.pdf" .... 
        break;
      }

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Ja, die Lösung!
      Die Schleife scheint mir sogar die elegantere Lösung zu sein.

      Vielen Dank!

      Gruß Franz

      Comment


      • #4
        Ich habe leider noch ein Kriterium übersehen, was vorkommen könnte, nämlich, der übergebene Wert könnte auch nur aus Ziffern bestehen. Somit treffen immer beide Variablen überein und ich bekomme alle Dokumente doppelt gelistet, mit der ELSE Abfrage.

        Also bleibt als Lösung nur die Schleife, oder?
        Gruß Franz

        Comment


        • #5
          Originally posted by FraHa View Post
          Ich habe leider noch ein Kriterium übersehen, was vorkommen könnte, nämlich, der übergebene Wert könnte auch nur aus Ziffern bestehen. Somit treffen immer beide Variablen überein und ich bekomme alle Dokumente doppelt gelistet, mit der ELSE Abfrage.

          Also bleibt als Lösung nur die Schleife, oder?
          Gruß Franz
          Habe es wie folgt lösen können
          PHP Code:
          $var strtoupper($_REQUEST['formulareingabe']); 
          $var2 strtolower($_REQUEST['formulareingabe']);

          if (
          $var == $var2){
          $var2 '';

          Scheint zu funktionieren ohne eine Menge Quelltext bearbeiten zu müssen.

          Nochmal vielen Dank!

          Comment


          • #6
            Originally posted by FraHa View Post
            ...Somit treffen immer beide Variablen überein und ich bekomme alle Dokumente doppelt gelistet, mit der ELSE Abfrage.
            Wieso das? Der else-Zweig wird nur durchlaufen, wenn die erste Abfrage NICHT zutrifft!

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Originally posted by Falk Prüfer View Post
              Wieso das? Der else-Zweig wird nur durchlaufen, wenn die erste Abfrage NICHT zutrifft!

              Gruß Falk
              Hmm, ja das sollte so sein! Da muss ich meinen Quell-Text wohl nochmal genauer ansehen.

              Gruß Franz

              Comment

              Working...
              X