Seite 2 von 2

Re: einträge in mysql mit formularen

Verfasst: 29.09.2011 12:05
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

Re: einträge in mysql mit formularen

Verfasst: 30.09.2011 13:45
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

Re: einträge in mysql mit formularen

Verfasst: 30.09.2011 23:33
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

Re: einträge in mysql mit formularen

Verfasst: 01.10.2011 14:20
von lodosbaer
es klappt! entscheidend war "if..."
vielen dank
lodosbaer

Re: einträge in mysql mit formularen

Verfasst: 02.10.2011 00:41
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 ....

Re: einträge in mysql mit formularen

Verfasst: 02.10.2011 01:16
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. ;)