Link in Eingabefeld überprüfen

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

  • Link in Eingabefeld überprüfen

    Hallo.

    Ich habe ein Eingabeformular erstellt in welches man ein Link eintippen soll. Dieser Link wird dann in einer Datenbank gespeichert und später abgerufen und damit gearbeitet. Damit dies klappt muss ein Confixx. vorgesetzt sein.

    Wie überprüfe ich nun, ob dies der Fall ist?

    Ich würde es ganz gerne in diese Abfrage mit einbinden, da das gleiche else() benutzt wird und ich so viel Code sparen könnte.

    PHP-Code:
    if(strlen($tag) != || strlen($monat) != || strlen($jahr) != ){
                    echo 
    "<div class=\"error\"><h2>Fehler...</h2><p>Bitte gebe deine Daten im richtigen Format an. Tag und Monat sind jeweils zweistellig, ein Jahr vierstellig anzugeben. Ein Link beginnt immer mit http://www. oder https://www.</p></div>\n";
                }else{[
    I]Dieser Code steht bereits festund funktioniert einwandfrei[/I]} 
    Vielen Dank im Voraus!

  • #2
    Hey,

    du kannst mal strpos() ausprobieren, der sucht nach der Stelle an der dein gesuchter string vorkommt und gibt diese dann aus, falls er ihn nicht findet gibt er false zurück.

    Beispiel:

    $input = "Ist hier eventuell confixx drin ?";

    if(strpos($input,"confixx")!==false)

    echo "Confixx ist enthalten";

    -------

    Würde den echo ausgeben, da dein string vorhanden ist. Ist Casesensitive und müsste dementsprechend angepasst werden, hoffe das hilft!

    Kommentar


    • #3
      Hey.

      Vielen Dank erstmal für deine Antwort. Ich muss leider gestehen, dass ich nicht so wirklich weiß, wie ich das umsetzen soll.
      Wärst du so freundlich mir ein Tipp zu geben wie das angepasst werden soll beziehungsweise wie ich dies in meinem Code Snippet einfügen muss. :/

      Ich bedanke mich vielmals!

      Kommentar


      • #4
        Hey,

        hier mal der gleiche Beispielcode mit Erklärungen, ich weiß ja leider nicht wie genau dein jetziger Code aussieht, hoffe das hilft mehr. Du kannst ja auch deinen Code posten, damit das direkt gelöst werden kann


        // Das ist deine Variable, genau wie $tag und co. Diese wird auch genauso eingetragen. Da würde der Link stehen.
        $input = "Ist hier eventuell Confixx. drin ?";

        // Hier Passiert die Überprüfung. Das Rotmakierte ist deine Variable die überprüft werden soll. Das Blaue ist die Zeichenfolge nach der gesucht werden soll, bei dir sollte da dann warscheinlich "Confixx." stehen
        if(strpos([COLOR="Red"]$input[/COLOR],[COLOR="Blue"]"Confixx."[/COLOR])!==false)
        {

        // Dashier ist dann das, was nach der Überprüfung passieren soll, quasi unwichtig. Uns interessiert nur der obere Teil!
        echo "Confixx. ist vorhanden";
        }
        else
        {
        echo "Kein Confixx. vorhanden!";
        }
        Zuletzt geändert von terrybandana; 21.11.2015, 22:17.

        Kommentar


        • #5
          Okay, der Code ist verständlich, nur ich bräuchte zuerst die Fehlerausgabe und wenn die nicht zutrifft dann halt das von dir genannte "Confixx. ist vorhanden" (Btw. Ich weiß nicht warum der Confixx. geschrieben hat, ich habe eigentlich http(s):// eingegeben.

          Hier der Code in den das genze eingebaut werden soll:

          PHP-Code:
          if (isset($_POST['submit'])) {
                  
          $tag clean_it($_POST['tag']);
                  
          $monat clean_it($_POST['monat']);
                  
          $jahr clean_it($_POST['jahr']);
                  
          $link clean_it($_POST['link']);
                  
          $event clean_it($_POST['event']);

                  if(empty(
          $tag) || empty($monat) || empty($jahr) || empty($link) || empty($event)){
                      echo 
          "<div class=\"error\"><h2>Fehler...</h2><p>Bitte füllen Sie alle Felder aus.</p></div>\n";

                  }else{

                      if(
          strlen($tag) != || strlen($monat) != || strlen($jahr) != 4){
                          echo 
          "<div class=\"error\"><h2>Fehler...</h2><p>Bitte geben Sie das Datum im vorgegebenen Format as. Tag und Monat bestehen aus jeweils zwei Zahlen, das Jahr aus 4.</p></div>\n";
                      }else{[
          I]Hier steht der restliche Code der jetzt etwas zu lang ist um ihn hier mit einzufügenIch erkläre aber gleich was hier passiert.}[/I
          Kurze Erklärung was der Code macht:
          Der vorliegende Code ist ein Teil meines Codes für einen interaktiven Kalender. Es soll später möglich sein über das Formular ein neues Ereignis einzutragen. Dieses Ereignis wird dann in der Datenbank gespeichert und der Kalender zeigt es an.
          Es handelt sich bei dem Projekt also um zwei Dateien, das Formular und den Kalender. Hier handelt es sich demnach um das Formular. Dieses ist jedoch nicht nur ein langweiliges Formular bei welchem man auf Speichern drückt und dann nichts mehr sieht, sondern gleichzeitig das komplette Backend des Kalenders. Nach dem Einloggen werden alle eingetragenen Veranstaltungen angezeigt, diese können dann gelöscht oder bearbeitet werden. Über den Button "Neues Event Erstellen" ruft man das angesprochene Formular auf. Nach dem Absenden wird wieder die erste Seite angezeigt, also die Auflistung aller eingetragenen Veranstaltungen.
          Der ausgeklammerte Code fügt die eingetragenen Daten in die Datenbank ein. Wie bereits gesagt müssen die Daten in einer vorgegebenen Form in der Datenbank hinterlegt werden, damit der Kalender sie nachher richtig anzeigt. Dazu muss der Tag und der Monat zum Beispiel zweistellig angegeben werden. Links müssen mit http:// beginnen.

          So jetzt zu den Ansprüchen die sich mir sellen:
          Da das Vorhandensein des http:// genau so wie die Datumsangabe auf die gleiche Aktion (das einschreiben in die Datenbank) hinauslaufen, müssten beide bestenfalls gleichzeitig überprüft werden.
          Es wäre also toll, wenn ich etwas in folgender Art schreiben könnte:
          PHP-Code:
          if(strlen($tag) != || strlen($monat) != || strlen($jahr) != && strpos($input,"http://" !==false)){ 
          .
          So wie ich den Code verstehe würde dies jedoch nicht klappen, da die strlen bei einer fehlerhaften Eingabe ein False ausspucken und der strpos ein True?!

          Der strpos müsste genau so wie die strlen ein False ausspucken, wenn KEIN http:// vorangesetzt ist.

          Ich hoffe sehr, dass das halbwegs verständlich ist und entschuldige mich für den langen Post.
          Zuletzt geändert von SamTh94; 22.11.2015, 11:45.

          Kommentar


          • #6
            Erledigt

            Hallo.

            Ich habe einen Weg gefunden das gewünschte zu erreichen und lasse es mal als Tipp hier, falls irgendwann jemand das gleiche Problemchen hat.

            PHP-Code:
            if(empty($tag) || empty($monat) || empty($jahr) || empty($link) || empty($event)){
                 echo 
            "<div class=\"error\"><h2>Fehler...</h2><p>Bitte füllen Sie alle Felder aus.</p></div>\n";

            }else{
                 if(
            strlen($tag) != || strlen($monat) != || strlen($jahr) != 4){
                      echo 
            "<div class=\"error\"><h2>Fehler...</h2><p>Bitte geben Sie das Datum im vorgegebenen Format as. Tag und Monat bestehen aus jeweils zwei Zahlen, das Jahr aus 4.</p></div>\n";

                 }else{
                      if (
            strpos($link'http') !== && strpos($link'https') !== 0) {
                           
            $link 'http://'.$link;
                      }
                 
            restlicher Code}} 
            Liebe Grüße
            Zuletzt geändert von SamTh94; 25.11.2015, 20:14.

            Kommentar

            Lädt...
            X