Ankündigung

Einklappen
Keine Ankündigung bisher.

sql Eintrag

Einklappen

Neue Werbung 2019

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

  • sql Eintrag

    ich habe folgenden code
    Code:
    <?
    if($_POST[flag==1]);
    {
    $tabelle = "stammdaten";
    $benutzer = "root";
    $passwort ="";
    $dbname="kunden";
    $sql="INSERT INTO $tabelle(id, anrede, name, ansprechpartner, strasse, plz, ort, telefon, mail) values ('".$_POST[anrede]."','".$_POST[name]."','".$_POST[ansprechpartner]."','".$_POST[strasse]."','".$_POST[plz]."','".$_POST[ort]."','".$_POST[telefon]."','".$_POST[mail]."')";
    $link = mysql_connect("localhost", $benutzer, $passwort) or die( "<H2>Abfragefehler</H2>" . mysql_error()); 
    mysql_select_db("kunden", $link) or die( "<H2>Abfragefehler</H2>" . mysql_error()); 
    mysql_query($sql, $link) or die( "<H2>Abfragefehler</H2>" . mysql_error()); 
    $meldung = "Angaben wurden eingetragen";
    echo $meldung;
    }
    if(!$POST[flag])
    {
    ?>
    <form action="<? echo $PHP_SELF; ?>" method="post">
    <input type="hidden" name="flag" value="1" />
    <p>Anrede:<br />
    <input type="text" name="anrede" value="<? echo $_POST[anrede]; ?>"></p>
    <p>Name:<br />
    <input type="text" name="name" value="<? echo $_POST[name]; ?>"></p>
    <p>Ansprechpartner:<br />
    <input type="text" name="ansprechpartner" value="<? echo $_POST[ansprechpartner]; ?>"></p>
    <p>Strasse:<br />
    <input type="text" name="strasse" value="<? echo $_POST[strasse]; ?>"></p>
    <p>PLZ:<br />
    <input type="text" name="plz" value="<? echo $_POST[plz]; ?>"></p>
    <p>Ort:<br />
    <input type="text" name="ort" value="<? echo $_POST[ort]; ?>"></p>
    <p>Telefon:<br />
    <input type="text" name="telefon" value="<? echo $_POST[telefon]; ?>"></p>
    <p>Mail:<br />
    <input type="text" name="mail" value="<? echo $_POST[mail]; ?>"></p>
    <input type="submit" value="Eintragen" />
    </form>
    <?
    }
    ?>
    Nun meine Fragen
    warum wird alles doppelt eingetragen ?
    und wie kann ich "id" überspringen ?

  • #2
    Kannst du den Code bitte vorher noch in PHP-Tags setzen und sinnvolle Einrückungen vornehmen? Dann wird dir auch geholfen.

    Kommentar


    • #3
      Hallo rest,

      Code:
      <?
      if($_POST[flag==1]);
      {
      Da sehe ich schonmal einen Fehler. Richtig würde es heißen:

      Code:
      if($_POST['flag'] == 1) {
      Auf keinen Fall Semikolon hinter der If-Anweisung!

      Gruß,
      Leibi

      Kommentar


      • #4
        Hey,
        willkommen bei uns im Forum PHP kann dir bei der Fehlersuche helfen, wenn du das Error-Reporting hochschraubst. Dazu error_reporting(E_ALL | E_STRICT) an den Anfang deines Skriptes stellen

        Auch mal hier vorbeischauen:
        PHP: Arrays - Manual

        Kommentar


        • #5
          Zitat von rest Beitrag anzeigen
          warum wird alles doppelt eingetragen ?
          Das ist Quatsch, es wird gar nichts eingetragen, sonder MySQL generiert einen Fehler, weil die Anzahl Werte nicht der Anzahl der Felder entspricht.
          Zitat von rest Beitrag anzeigen
          wie kann ich "id" überspringen ?
          Lass doch die Angabe bei den Feldern einfach weg (dann verschwindet auch die oben genannte Fehlermeldung).

          Ansonsten gilt alles, was hier schon gesagt wurde.

          Kommentar


          • #6
            Zitat von Leibi Beitrag anzeigen
            Code:
            <?
            if($_POST[flag==1]);
            {
            Da sehe ich schonmal einen Fehler. Richtig würde es heißen:
            Einen? Eher drei...

            Kommentar


            • #7
              Hallo!

              Davon würde ich dir auch abraten,das ist XSS anfällig!
              PHP-Code:
              <form action="<? echo $PHP_SELF; ?>" method="post">
              Wenn dann eher so hier schreiben!

              PHP-Code:
              <form action="<?php echo htmlentities($_SERVER['SCRIPT_NAME']); ?>" method="post">

              Kommentar


              • #8
                Oder ein leeres Action Attribut. Tuts auch.

                Kommentar


                • #9
                  Zitat von nikosch77-new Beitrag anzeigen
                  Einen? Eher drei...
                  War damit gemeint - Denk dir einfach ne drei hin
                  Mit XSS-Sicherheitslücken sollte man vorsichtig sein. Auf keinen Fall unterschätzen!

                  Kommentar


                  • #10
                    Oder ein leeres Action Attribut. Tuts auch.
                    Ahhh - ich hab immer ein leeres Action-Attribut genommen, wenn das Script sich selbst aufrufen sollte, hab dann hier irgendwo gelesen, dass das eher nur zufällig funktioniert und man da besser was gescheites reinschreibt, und schau grade meine Scripts durch, wo es was zu verbessern gibt - und nu schreibst du, dass man das machen kann.

                    Ich geh erstmal Kaffee trinken

                    Kommentar


                    • #11
                      Hallo!

                      nickosch hat recht man kann das machen. Über das Thema der Sicherheit scheiden sich die geister,viele haben unterschiedliche Ansichten!

                      Kommentar

                      Lädt...
                      X