[HTML/PHP] Gedankenanstoß - Formular verarbeitung

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

  • [HTML/PHP] Gedankenanstoß - Formular verarbeitung

    Gegeben ist;

    - 1 html Seite die ein Formular mit 17 Textfeldern besitzt.
    - Die in das Formular eingegebenen Inhalte sollen, in einer Datei/Seite gespeichert werden, welche Nur für bestimmte Leute sichtbar ist.

    Das heißt, jeder soll das Formular ausfüllen können, aber nur der Admin und zwei weitere User sollen, die Ergebnisse angucken können...

    Hatte mir überlegt, dass die Ergebnissdatei in einem HTacces geschütztem Ordner liegt, aber dann funktioniert die eingabe ja nicht mehr....

    Schonmal danke im vorraus für eure Hilfe!

    lg raffiausgoslar

  • #2
    Hatte mir überlegt, dass die Ergebnissdatei in einem HTacces geschütztem Ordner liegt, aber dann funktioniert die eingabe ja nicht mehr....
    warum denn das? php bekommt von htaccess nix mit. wenn du in eine datei schreibst, läuft das übers dateisystem.

    mach ein eingabeformular, die daten werden in ein ordner gespeichert, deren http-zugriff durch htaccess geschützt ist.
    mfg

    Kommentar


    • #3
      habs jetzt mit ner mySql Datenbank gemacht. Funktioniert ansich auch ganz schön, jedoch gibt es im Formular auch ein "Nickname" Feld. Nun hätte ich gerne, das der alte eintrag eines Nicknames bei erneutem ausfüllen des Formulars überschrieben wird und nciht ein neuer mit dem gleichen Nick hinzugefügt wird... Kann mir jemand helfen?

      PHP-Code:
      <?php

          
      require("inc/config.inc.php");
          require(
      "mysql_connect.php");
          
          
      //IP Check
          
      $ipsperre FALSE;
          
      $sql "SELECT
                      COUNT(*) AS anzahl
                  FROM
                      unterschriften
                  WHERE
                      ip = '"
      .$_SERVER['REMOTE_ADDR']."' ;";
          
      $result mysql_query($sql) OR die(mysql_error());
                
      $row mysql_fetch_array($result);
                if(
      $row['anzahl']>0)
                    
      $ipsperre TRUE;

          
        if(
      $ipsperre == FALSE)
        {
          if(isset(
      $_POST))
          {
          
      $T17 $_POST['T17'];
          
      $T1 $_POST['T1'];
          
      $T2 $_POST['T2'];
          
      $T3 $_POST['T3'];
          
      $T4 $_POST['T4'];
          
      $T5 $_POST['T5'];
          
      $T6 $_POST['T6'];
          
      $T7 $_POST['T7'];
          
      $T8 $_POST['T8'];
          
      $T9 $_POST['T9'];
          
      $T10 $_POST['T10'];
          
      $T11 $_POST['T11'];
          
      $T12 $_POST['T12'];
          
      $T13 $_POST['T13'];
          
      $T14 $_POST['T14'];
          
      $T15 $_POST['T15'];
          
      $T16 $_POST['T16'];
              if((isset(
      $T17,$T1,$T2,$T3,$T4,$T5,$T6,$T7,$T8,$T9,$T10,$T11,$T12,$T13,$T14,$T15,$T16))
      &&(
      $T17!="")&&($T1!="")&&($T2!="")&&($T3!="")&&($T4!="")&&($T5!="")&&($T6!="")&&($T7!="")
      &&(
      $T8!="")&&($T9!="")&&($T10!="")&&($T11!="")&&($T12!="")&&($T13!="")&&($T14!="")&&($T15!="")&&($T16!=""))
          {
                do
                {    
                  
      //Eintragung in die Datenbank
                      
      $errorcode NULL;
                    
      $sql "INSERT INTO
                                truppenmanager
                            SET
                                T17 = '"
      .addslashes(htmlspecialchars($T17))."' ,
                                T1 = '"
      .addslashes(htmlspecialchars($T1))."' ,
                                T2 = '"
      .addslashes(htmlspecialchars($T2))."' ,
                                T3 = '"
      .addslashes(htmlspecialchars($T3))."' ,
                                T4 = '"
      .addslashes(htmlspecialchars($T4))."' ,
                                T5 = '"
      .addslashes(htmlspecialchars($T5))."' ,
                                T6 = '"
      .addslashes(htmlspecialchars($T6))."' ,
                                T7 = '"
      .addslashes(htmlspecialchars($T7))."' ,
                                T8 = '"
      .addslashes(htmlspecialchars($T8))."' ,
                                T9 = '"
      .addslashes(htmlspecialchars($T9))."' ,
                                T10 = '"
      .addslashes(htmlspecialchars($T10))."' ,
                                T11 = '"
      .addslashes(htmlspecialchars($T11))."' ,
                                T12 = '"
      .addslashes(htmlspecialchars($T12))."' ,
                                T13 = '"
      .addslashes(htmlspecialchars($T13))."' ,
                                T14 = '"
      .addslashes(htmlspecialchars($T14))."' ,
                                T15 = '"
      .addslashes(htmlspecialchars($T15))."' ,
                                T16 = '"
      .addslashes(htmlspecialchars($T16))."' ,
                                ip = '"
      .$_SERVER['REMOTE_ADDR']."' ,
                                datum = NOW()  ;"
      ;
                    
      $result mysql_query($sql) OR FALSE;
                    if(
      $result == FALSE)
                    {
                          
      $errorcode mysql_errno();
                          if(
      $errorcode 1146)
                          {
                                include 
      "firststart.php";
                          }else die(
      mysql_error()."<br> code: ".mysql_errno());
                      }
                }while(
      $result != TRUE);
                echo 
      "<h2>Vielen Dank für Deinen Eintrag!</h2><br>";             
          }else echo 
      "<h2>Fehlerhafte Angaben - Bitte füllen Sie das Forumlar korrekt aus!<br>
                      <a href=\"javascript:history.back()\">zurück</a></h2>"
      ;
          }else echo 
      "<h2>Fehler - Keine POST Übertragung</h2><br>";
        }else echo 
      "<h2>Du hast dich soeben schon eingetragen!!!</h2><br>";          
      ?>

          <p align="center"> 
              <b><font face="Arial" color="#666666">Was möchtest Du nun tun? 
          </font></b> 
          </p>
      <p align="center"><font face="Arial"><b><a href="javascript:history.back()">
          <font size="2" color="#000000"><span style="text-decoration: none">::zurück zum 
      Manager::</span></font></a><font size="2"><span style>&nbsp;&nbsp; </span>
      <span style="text-decoration: none"><a href="list/list.php">
      <font color="#000000">::Truppen ansehen::</font></a></span>&nbsp;&nbsp;
      <a target="_blank" href="http://www.black-hawk-down.dl.am">
      <font color="#000000"><span style="text-decoration: none">::zum Forum::</span></font></a></font></b></font></p>
      Zuletzt geändert von raffiausgoslar; 10.10.2006, 17:08.

      Kommentar


      • #4
        Regeln lesen, Code umbrechen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Weiß nicht ob du das meinst, woran ich jetzt denke.
          Aber du benutzt ja INSERT.
          Wenn du ein Eintrag bearbeiten möchtest, guck dir mal UPDATE an.
          Aber du kannst doch nicht jeden einfach so die Daten ändern lassen. Das würde ich im geschützem Bereich machen.
          Sonst kann ja jeder die Daten von jedem ändern wie man will.
          Gut geraten ist halb gewußt.

          Kommentar


          • #6
            Horror!
            Slava
            bituniverse.com

            Kommentar


            • #7
              Original geschrieben von Slava
              Horror!
              mein Code oder mein Wunsch?

              Naja bin halt noch Anfänger und weiß grad echt nicht weiter... Könnte mir jemand nen Ansatz für einen "gesicherten" Bereich geben?

              Kommentar


              • #8
                Ist nicht wirklich schwer. Aber ein bisschen php müßtest du dir schon aneignen.

                Guck dir mal $_SESSION und header() an.

                Einfaches Beispiel:

                Eingang:
                $_SESSION['login'] = "ja";

                Im internen Bereich:

                // prüfen ob er zugang hat
                if (!isset($_SESSION['login']) || $_SESSION['login'] == "ja")
                {
                header('......dahin');
                exit;
                }

                echo "drinne";

                Aber das ist nur ein beispiel und benutze nicht $_SESSION['login']. Man kann das auch mit ner db machen.
                Gut geraten ist halb gewußt.

                Kommentar


                • #9
                  ok danke dir erstmal, werd mich mal dran machen...

                  Jetzt nochmal zu meiner Ursprüglichen Frage;
                  ich ersetze das INSERT erstmal durch nen UPDATE,
                  aber da fehlt doch dann noch was, oder?

                  Kommentar


                  • #10
                    Das mit dem UPDATE war nur ein Hinweis.

                    Nehme dir ein Buch in die Hand und lese selber nach.
                    Gut geraten ist halb gewußt.

                    Kommentar


                    • #11
                      Original geschrieben von martinm79
                      Das mit dem UPDATE war nur ein Hinweis.

                      Nehme dir ein Buch in die Hand und lese selber nach.
                      geht klar chef!

                      ok dachte vielleicht, du hättest noch nen kleinen Tipp, aber dann muss ich mich wohl doch durch mein Wälzer prügeln...

                      Kommentar


                      • #12
                        ok, hab jetzt mit der update funkton gearbeitet... das updaten funktioniert, jedoch wird bei einem nicht vorhandenen "nickname" keine neue Zeile in die Tabelle eingefügt... Könnte bitte nochmal jemand meinen code durchchecken?

                        lg raffiausgoslar

                        PHP-Code:
                        <?php

                            
                        require("inc/config.inc.php");
                            require(
                        "mysql_connect.php");
                            
                            
                        //IP Check
                            
                        $ipsperre FALSE;
                            
                        $sql "SELECT
                                        COUNT(*) AS anzahl
                                    FROM
                                        unterschriften
                                    WHERE
                                        ip = '"
                        .$_SERVER['REMOTE_ADDR']."' ;";
                            
                        $result mysql_query($sql) OR die(mysql_error());
                                  
                        $row mysql_fetch_array($result);
                                  if(
                        $row['anzahl']>0)
                                      
                        $ipsperre TRUE;

                            
                          if(
                        $ipsperre == FALSE)
                          {
                            if(isset(
                        $_POST))
                            {
                            
                        $T17 $_POST['T17'];
                            
                        $T1 $_POST['T1'];
                            
                        $T2 $_POST['T2'];
                            
                        $T3 $_POST['T3'];
                            
                        $T4 $_POST['T4'];
                            
                        $T5 $_POST['T5'];
                            
                        $T6 $_POST['T6'];
                            
                        $T7 $_POST['T7'];
                            
                        $T8 $_POST['T8'];
                            
                        $T9 $_POST['T9'];
                            
                        $T10 $_POST['T10'];
                            
                        $T11 $_POST['T11'];
                            
                        $T12 $_POST['T12'];
                            
                        $T13 $_POST['T13'];
                            
                        $T14 $_POST['T14'];
                            
                        $T15 $_POST['T15'];
                            
                        $T16 $_POST['T16'];
                                if((isset(
                        $T17,$T1,$T2,$T3,$T4,$T5,$T6,$T7,
                        $T8,$T9,$T10,$T11,$T12,$T13,$T14,$T15,$T16))&&($T17!="")
                        &&(
                        $T1!="")&&($T2!="")&&($T3!="")&&($T4!="")&&($T5!="")
                        &&(
                        $T6!="")&&($T7!="")&&($T8!="")&&($T9!="")&&($T10!="")
                        &&(
                        $T11!="")&&($T12!="")&&($T13!="")&&($T14!="")&&($T15!="")
                        &&(
                        $T16!=""))
                            {
                                  do
                                  {    
                                    
                        //Eintragung in die Datenbank
                                        
                        $errorcode NULL;
                                                
                                                
                        $sql "UPDATE 
                                                truppenmanager 
                                                                SET
                                                  T1 = '
                        $T1',
                                                  T2 = '
                        $T2',
                                                  T3 = '
                        $T3',
                                                  T4 = '
                        $T4',
                                                  T5 = '
                        $T5',
                                                  T6 = '
                        $T6',
                                                  T7 = '
                        $T7',
                                                  T8 = '
                        $T8',
                                                  T9 = '
                        $T9',
                                                  T10 = '
                        $T10',
                                                  T11 = '
                        $T11',
                                                  T12 = '
                        $T12',
                                                  T13 = '
                        $T13',
                                                  T14 = '
                        $T14',
                                                  T15 = '
                        $T15',
                                                  T16 = '
                        $T16'
                                                                WHERE T17 = '
                        $T17' LIMIT 1;";
                                               
                                                
                        $result mysql_query($sql) OR FALSE;                    
                                                if(
                        $result == FALSE)
                                      {
                                            
                        $sql "INSERT INTO
                                                  truppenmanager
                                              SET
                                                  T17 = '"
                        .addslashes(htmlspecialchars($T17))."' ,
                                                  T1 = '"
                        .addslashes(htmlspecialchars($T1))."' ,
                                                  T2 = '"
                        .addslashes(htmlspecialchars($T2))."' ,
                                                  T3 = '"
                        .addslashes(htmlspecialchars($T3))."' ,
                                                  T4 = '"
                        .addslashes(htmlspecialchars($T4))."' ,
                                                  T5 = '"
                        .addslashes(htmlspecialchars($T5))."' ,
                                                  T6 = '"
                        .addslashes(htmlspecialchars($T6))."' ,
                                                  T7 = '"
                        .addslashes(htmlspecialchars($T7))."' ,
                                                  T8 = '"
                        .addslashes(htmlspecialchars($T8))."' ,
                                                  T9 = '"
                        .addslashes(htmlspecialchars($T9))."' ,
                                                  T10 = '"
                        .addslashes(htmlspecialchars($T10))."' ,
                                                  T11 = '"
                        .addslashes(htmlspecialchars($T11))."' ,
                                                  T12 = '"
                        .addslashes(htmlspecialchars($T12))."' ,
                                                  T13 = '"
                        .addslashes(htmlspecialchars($T13))."' ,
                                                  T14 = '"
                        .addslashes(htmlspecialchars($T14))."' ,
                                                  T15 = '"
                        .addslashes(htmlspecialchars($T15))."' ,
                                                  T16 = '"
                        .addslashes(htmlspecialchars($T16))."' ,
                                                  ip = '"
                        .$_SERVER['REMOTE_ADDR']."' ,
                                                  datum = NOW()  ;"
                        ;
                                      
                        $result mysql_query($sql) OR FALSE;
                                      if(
                        $result == FALSE)
                                      {
                                            
                        $errorcode mysql_errno();
                                            if(
                        $errorcode 1146)
                                            {
                                                  include 
                        "firststart.php";
                                            }else die(
                        mysql_error()."<br> code: ".mysql_errno());
                                        }
                                        }

                                                
                                  }while(
                        $result != TRUE);
                                  echo 
                        "<h2>Vielen Dank für Deinen Eintrag!</h2><br>";             
                            }else echo 
                        "<h2>Fehlerhafte Angaben - Bitte füllen Sie das Forumlar korrekt aus!<br>
                                        <a href=\"javascript:history.back()\">zurück</a></h2>"
                        ;
                            }else echo 
                        "<h2>Fehler - Keine POST Übertragung</h2><br>";
                          }else echo 
                        "<h2>Du hast dich soeben schon eingetragen!!!</h2><br>";          
                        ?>

                            <p align="center"> 
                                <b><font face="Arial" color="#666666">Was möchtest Du nun tun? 
                            </font></b> 
                            </p>
                        <p align="center"><font face="Arial"><b><a href="javascript:history.back()">
                            <font size="2" color="#000000"><span style="text-decoration: none">::zurück zum 
                        Manager::</span></font></a><font size="2"><span style>&nbsp;&nbsp; </span>
                        <span style="text-decoration: none"><a href="list/list.php">
                        <font color="#000000">::Truppen ansehen::</font></a></span>&nbsp;&nbsp;
                        <a target="_blank" href="http://www.black-hawk-down.dl.am">
                        <font color="#000000"><span style="text-decoration: none">::zum Forum::</span></font></a></font></b></font></p>

                        Kommentar


                        • #13
                          Original geschrieben von raffiausgoslar
                          das updaten funktioniert, jedoch wird bei einem nicht vorhandenen "nickname" keine neue Zeile in die Tabelle eingefügt...
                          Dann debugge halt - Kontrollausgaben, enthalten die Werte, die ich überprüfe, auch das, was ich erwarte, etc.


                          Btw: Kennst du REPLACE? Damit lassen sich UPDATE und INSERT "verbinden".
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            So habs jetzt mal mit SELECT probiert... Bei vorhandenem Nick wird ordentlich Aktualisiert, bei nicht vorhandenem Nick erscheint KEINE Fehlermeldung, jedoch taucht der neue Datensatz trotzdem nciht in der Tabelle auf? Bitte helft mir noch einmal... (Sry wenn ich euch soviel Mühe mache, aber jeder hat mal klein angefangen )

                            lg raffiausgoslar

                            PHP-Code:
                            <?php

                                
                            require("inc/config.inc.php");
                                require(
                            "mysql_connect.php");
                                
                                
                            //IP Check
                                
                            $ipsperre FALSE;
                                
                            $sql "SELECT
                                            COUNT(*) AS anzahl
                                        FROM
                                            unterschriften
                                        WHERE
                                            ip = '"
                            .$_SERVER['REMOTE_ADDR']."' ;";
                                
                            $result mysql_query($sql) OR die(mysql_error());
                                      
                            $row mysql_fetch_array($result);
                                      if(
                            $row['anzahl']>0)
                                          
                            $ipsperre TRUE;

                                
                              if(
                            $ipsperre == FALSE)
                              {
                                if(isset(
                            $_POST))
                                {
                                
                            $T17 $_POST['T17'];
                                
                            $T1 $_POST['T1'];
                                
                            $T2 $_POST['T2'];
                                
                            $T3 $_POST['T3'];
                                
                            $T4 $_POST['T4'];
                                
                            $T5 $_POST['T5'];
                                
                            $T6 $_POST['T6'];
                                
                            $T7 $_POST['T7'];
                                
                            $T8 $_POST['T8'];
                                
                            $T9 $_POST['T9'];
                                
                            $T10 $_POST['T10'];
                                
                            $T11 $_POST['T11'];
                                
                            $T12 $_POST['T12'];
                                
                            $T13 $_POST['T13'];
                                
                            $T14 $_POST['T14'];
                                
                            $T15 $_POST['T15'];
                                
                            $T16 $_POST['T16'];
                                    if((isset(
                            $T17,$T1,$T2,$T3,$T4,$T5,$T6,$T7,$T8,$T9,$T10,$T11,$T12,$T13,$T14,$T15,$T16))
                            &&(
                            $T17!="")&&($T1!="")&&($T2!="")&&($T3!="")&&($T4!="")&&($T5!="")&&($T6!="")&&($T7!="")
                            &&(
                            $T8!="")&&($T9!="")&&($T10!="")&&($T11!="")&&($T12!="")&&($T13!="")&&($T14!="")
                            &&(
                            $T15!="")&&($T16!=""))
                                {
                                      do
                                      {    
                                          
                            $query "SELECT * FROM truppenmanager WHERE T17 LIKE '$T17' LIMIT 1;";
                                        
                                        if(
                            $query == true)
                                            {
                                           
                                      
                            //Aktualisierung der Datenbank
                                            
                            $errorcode NULL;
                                                    
                                                    
                            $sql "UPDATE 
                                                    truppenmanager 
                                                                    SET
                                                      T1 = '
                            $T1',
                                                      T2 = '
                            $T2',
                                                      T3 = '
                            $T3',
                                                      T4 = '
                            $T4',
                                                      T5 = '
                            $T5',
                                                      T6 = '
                            $T6',
                                                      T7 = '
                            $T7',
                                                      T8 = '
                            $T8',
                                                      T9 = '
                            $T9',
                                                      T10 = '
                            $T10',
                                                      T11 = '
                            $T11',
                                                      T12 = '
                            $T12',
                                                      T13 = '
                            $T13',
                                                      T14 = '
                            $T14',
                                                      T15 = '
                            $T15',
                                                      T16 = '
                            $T16'
                                                                    WHERE T17 = '
                            $T17' LIMIT 1;";
                                                   
                                                    
                            $result mysql_query($sql) OR FALSE;                    
                                                    if(
                            $result == FALSE)
                                          {
                                          
                                    
                            $errorcode mysql_errno();
                                                if(
                            $errorcode 1146)
                                                {
                                                      include 
                            "firststart.php";
                                                }else die(
                            mysql_error()."<br> code: ".mysql_errno());

                                            }
                                            }
                                            
                                            else
                                            
                                            {
                                                   
                            //Eintragung in die Datenbank

                                                
                            $sql "INSERT INTO
                                                      truppenmanager
                                                  SET
                                                      T17 = '"
                            .addslashes(htmlspecialchars($T17))."' ,
                                                      T1 = '"
                            .addslashes(htmlspecialchars($T1))."' ,
                                                      T2 = '"
                            .addslashes(htmlspecialchars($T2))."' ,
                                                      T3 = '"
                            .addslashes(htmlspecialchars($T3))."' ,
                                                      T4 = '"
                            .addslashes(htmlspecialchars($T4))."' ,
                                                      T5 = '"
                            .addslashes(htmlspecialchars($T5))."' ,
                                                      T6 = '"
                            .addslashes(htmlspecialchars($T6))."' ,
                                                      T7 = '"
                            .addslashes(htmlspecialchars($T7))."' ,
                                                      T8 = '"
                            .addslashes(htmlspecialchars($T8))."' ,
                                                      T9 = '"
                            .addslashes(htmlspecialchars($T9))."' ,
                                                      T10 = '"
                            .addslashes(htmlspecialchars($T10))."' ,
                                                      T11 = '"
                            .addslashes(htmlspecialchars($T11))."' ,
                                                      T12 = '"
                            .addslashes(htmlspecialchars($T12))."' ,
                                                      T13 = '"
                            .addslashes(htmlspecialchars($T13))."' ,
                                                      T14 = '"
                            .addslashes(htmlspecialchars($T14))."' ,
                                                      T15 = '"
                            .addslashes(htmlspecialchars($T15))."' ,
                                                      T16 = '"
                            .addslashes(htmlspecialchars($T16))."' ,
                                                      ip = '"
                            .$_SERVER['REMOTE_ADDR']."' ,
                                                      datum = NOW()  ;"
                            ;
                                          
                            $result mysql_query($sql) OR FALSE;
                                          if(
                            $result == FALSE)
                                          {
                                                
                            $errorcode mysql_errno();
                                                if(
                            $errorcode 1146)
                                                {
                                                      include 
                            "firststart.php";
                                                }else die(
                            mysql_error()."<br> code: ".mysql_errno());
                                            }             
                                            }
                              

                                                    
                                      }while(
                            $result != TRUE);
                                      echo 
                            "<h2>Vielen Dank für Deinen Eintrag!</h2><br>";             
                                }else echo 
                            "<h2>Fehlerhafte Angaben - Bitte füllen Sie das Forumlar korrekt aus!<br>
                                            <a href=\"javascript:history.back()\">zurück</a></h2>"
                            ;
                                }else echo 
                            "<h2>Fehler - Keine POST Übertragung</h2><br>";
                              }else echo 
                            "<h2>Du hast dich soeben schon eingetragen!!!</h2><br>";          
                            ?>

                                <p align="center"> 
                                    <b><font face="Arial" color="#666666">Was möchtest Du nun tun? 
                                </font></b> 
                                </p>
                            <p align="center"><font face="Arial"><b><a href="javascript:history.back()">
                                <font size="2" color="#000000"><span style="text-decoration: none">::zurück zum 
                            Manager::</span></font></a><font size="2"><span style>&nbsp;&nbsp; </span>
                            <span style="text-decoration: none"><a href="list/list.php">
                            <font color="#000000">::Truppen ansehen::</font></a></span>&nbsp;&nbsp;
                            <a target="_blank" href="http://www.black-hawk-down.dl.am">
                            <font color="#000000"><span style="text-decoration: none">::zum Forum::</span></font></a></font></b></font></p>

                            Kommentar


                            • #15
                              PHP-Code:
                              if(isset($_POST)) 
                              Bist Du Dir im klaren, das diese Bedingung immer wahr ist?!
                              EDIT:
                              Und welcher Teil ist jetzt der relevante Codeteil?

                              Kommentar

                              Lädt...
                              X