einträge in mysql mit formularen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Charlie_M
Mitglied
Beiträge: 1210
Registriert: 17.07.2008 13:09
Kontaktdaten:

Re: einträge in mysql mit formularen

Beitrag von Charlie_M »

Sowas in der Art:

Code: Alles auswählen

$name= $_POST["name"];
$vorname= $_POST["vorname"];
$strasse= $_POST["strasse"];
=> http://www.schattenbaum.net/php/insert2.php
lodosbaer
Mitglied
Beiträge: 5
Registriert: 27.09.2011 14:42

Re: einträge in mysql mit formularen

Beitrag von lodosbaer »

habe das script verändert:
....
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
......
mysql_query('INSERT INTO clients (code,nom, adresse,plz, ville)
VALUES(\''.$code.'\',\''.$nom.'\',\''.$adresse.'\',\''.$plz.'\',\''.$ville.'\')');
jetzt wird in db eingetragen, aber zusätzlich noch ein leerer datensatz mit id eingetragen.
Weiß jemand warum?
lodosbaer
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: einträge in mysql mit formularen

Beitrag von cYbercOsmOnauT »

Das hier
lodosbaer hat geschrieben:<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
kannst Du auch einfach so schreiben

Code: Alles auswählen

<form method="POST">
Wenn die action fehlt nimmt jeder Browser der heutzutage im Umlauf ist die aktuelle Seite als Empfänger der Daten.

Dein Code zudem nicht ganz korrekt.

Code: Alles auswählen

<?php
      if (isset($_POST['code'])){$code=$_POST['code'];}
      if (isset($_POST['nom'])){$nom=$_POST['nom']; }
      if (isset($_POST['adresse'])){$adresse=$_POST['adresse']; }
      if (isset($_POST['plz'])){$plz=$_POST['plz'];}
      if (isset($_POST['ville'])){$ville=$_POST['ville'];}
      $sql_insert='INSERT INTO clients ( code,nom, adresse,plz, ville)
        VALUES('.$code.','.$nom.','.$adresse.','.$plz.','.$ville.')';
      mysql_query($sql_insert,$link);
        ?>
Bei jedem Seitenaufbau wird etwas in die Tabelle clients eingefügt. Egal ob es Daten gibt oder nicht. Ausserdem sind Deine Daten komplett ungesichert.

Code: Alles auswählen

<?php
      if (isset($_POST['code'])){$code=mysql_real_escape_string(trim($_POST['code']), $link);}
      if (isset($_POST['nom'])){$nom=mysql_real_escape_string(trim($_POST['nom']), $link); }
      if (isset($_POST['adresse'])){$adresse=mysql_real_escape_string(trim($_POST['adresse']), $link); }
      if (isset($_POST['plz'])){$plz=mysql_real_escape_string(trim($_POST['plz']), $link);}
      if (isset($_POST['ville'])){$ville=mysql_real_escape_string(trim($_POST['ville']), $link);}
      // Abfrage ob überhaupt alle Felder Werte besitzen
      if (strlen($code)&&strlen($nom)&&strlen($adresse)&&strlen($plz)&&strlen($ville)
      {
            $sql_insert='INSERT INTO clients ( code,nom, adresse,plz, ville)
              VALUES('.$code.','.$nom.','.$adresse.','.$plz.','.$ville.')';
            mysql_query($sql_insert,$link);
      }
        ?>
Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
lodosbaer
Mitglied
Beiträge: 5
Registriert: 27.09.2011 14:42

Re: einträge in mysql mit formularen

Beitrag von lodosbaer »

es klappt! entscheidend war "if..."
vielen dank
lodosbaer
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: einträge in mysql mit formularen

Beitrag von canonknipser »

In der Form würde ich das nur nirgends auf einen Webspace packen - keine Schutz gegen SQl-Injektion, kein Errorhandling, keine Variablentypüberprüfung ....
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: einträge in mysql mit formularen

Beitrag von cYbercOsmOnauT »

canonknipser hat geschrieben:In der Form würde ich das nur nirgends auf einen Webspace packen - keine Schutz gegen SQl-Injektion, kein Errorhandling, keine Variablentypüberprüfung ....
Am Wichtigsten ist die Injection Gefahr. Hierzu siehe meinen Code. Klar kann man noch die PLZ udgl auf Plausibilität testen, aber ich wollte die Kirche im Dorf lassen. ;)
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Antworten

Zurück zu „Coding & Technik“