Avatar billede lefsa62 Seniormester
30. januar 2019 - 22:21 Der er 9 kommentarer

insert formular

Jeg har en insert formular som driller lidt som i ser den her så siger den det
den kan godt få fat i DB.
men kan den i linje 24 laves lidt enklere for jeg skal bruge skabelonen ca mellem 10-20 steder

Notice: Undefined variable: landecode in /Applications/MAMP/htdocs/finans_dk.dk/lave1_data/insert.php on line 24 Data too long for column 'moms' at row 1



<?php
include "debug.php";
require_once "connect.php";

if (isset($_POST['FormCreateUserSend'])) {
// print_r($_POST);
    // mangler validering
    $telefon = $_POST['telefon'];
    $virksomhedcvr = $_POST['virksomhed_cvr'];
    $søgenavn = $_POST['søgenavn'];
    $navn = $_POST['navn'];
    $adress = $_POST['adress'];
    $eannr = $_POST['ean_nr'];
    $postnr = $_POST['post_nr'];
    $by = $_POST['by'];
    $land = $_POST['land'];
    $brugerid = $_POST['bruger_id'];
    $email = $_POST['email'];
    $attention = $_POST['attention'];
    $moms = $_POST['moms'];
    $landekode = $_POST['landekode'];
    $betalingsfrist = $_POST['betalings_frist'];
    $betalingsmåde = $_POST['betalings_måde']; // post lave mellemrummet om til _
    $sql = "INSERT INTO debitor (telefon, `virksomhed cvr`, `søgenavn`, navn, adress, `ean nr`, `post nr`, `by`, land, `bruger id`, email, attention, moms, `landekode`, `betalings frist`, `betalings måde`) VALUES ( '" . $telefon . "', '" . $virksomhedcvr . "', '" . $søgenavn . "', '" . $navn . "', '" . $adress . "', '" . $eannr . "', '" . $postnr . "', '" . $by . "', '" . $land . "', '" . $brugerid . "', '" . $email . "', '" . $attention . "', '" . $moms . "', '" . $landecode . "', '" . $betalingsfrist . "', '" . $betalingsmåde ."')";
    // echo $sql;
    $conn->query($sql) or die($conn->error);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>demo</title>
        <style type="text/css">
        </style>
    </head>
    <body>
    <style>
    .header {
        background: #003366;
    }
    button[name=register_btn] {
        background: #003366;
    }
    </style>
  </head>
  <div id="pagewith">
  <body>
  <div class="col-12 col-s-12 branding">
        <h1>Finans-dk.dk<h1>
    </div>
        <form method="post" action="insert.php" id="FormMail" name="FormMail">
            <input type="text" placeholder ="telefon" value="" name="telefon"  required><br>
            <!-- eks på dårlig navn givning -->
            <input type="text" placeholder ="virksomhed cvr" value="" name="virksomhed cvr" > <br>
            <input type="text" placeholder ="søgenavn" value="" name="søgenavn" > <br>
            <input type="text" placeholder ="navn" value="" name="navn"  id="navn"required> <br>
            <input type="text" placeholder ="adress" value="" name="adress" required> <br>
            <input type="text" placeholder ="ean nr" value="" name="ean nr" > <br>
            <input type="text" placeholder ="post nr" value="" name="post nr"  required> <br>
            <input type="text" placeholder ="by" value="" name="by" required> <br>
            <input type="text" placeholder ="land" value="" name="land" > <br>
            <input type="text" placeholder ="bruger id" value="" name="bruger id" required> <br>
            <input type="text" placeholder ="email" value="" name="email"  required> <br>
            <input type="text" placeholder ="attention" value="" name="attention" > <br>
            <select name="moms" placeholder="moms"required><br>
                    <option value="moms">vælg moms</option>
                    <option value="ingen moms">ingen</option>
                    <option value="indgående moms">i</option>
                    <option value="udgående moms">u</option>
            </select><br>
            <select name="landekode" placeholder="landekode"required><br>
                    <option value="landekode">vælg landekode</option>
                    <option value="danmark">dkk</option>
                    <option value="sverige">sek</option>
                    <option value="norsk">nok</option>
            </select><br>
            <input type="text" placeholder ="betalings frist" value="" name="betalings frist"  required> <br>
            <input type="text" placeholder ="betalings måde" value="" name="betalings måde" required> <br>
            <input type="Submit" value="Send" name ="FormCreateUserSend" id="send">
        </form>
    </body>
</html>
Avatar billede lefsa62 Seniormester
30. januar 2019 - 22:22 #1
jeg glemte lige at dette er localhost
Avatar billede lefsa62 Seniormester
30. januar 2019 - 22:36 #2
jeg glemte lige også at når jeg indsendte formularen så bad mysql om at jeg skulle udfylde feltet cvr og ean som i kan se så er de ikke med required meget mystisk
Avatar billede olsensweb.dk Ekspert
31. januar 2019 - 09:20 #3
>Notice: Undefined variable: landecode
stavefejl
er code med k eller c ??

$landekode = $_POST['landekode'];
" . $landecode . "', '" . $betalingsfrist . "',



du vil gøre det svært for dig selv!!
>$søgenavn = $_POST['søgenavn'];
>$betalingsmåde = $_POST['betalings_måde']; // post lave mellemrummet om til _
aldrig special tegn i variabel navne omdøb $søgenavn, $betalingsmåde

<!-- eks på dårlig navn givning -->
<input type="text" placeholder ="søgenavn" value="" name="søgenavn" >
<input type="text" placeholder ="ean nr" value="" name="ean nr" > <br>
<input type="text" placeholder ="post nr" value="" name="post nr"  required>
med flere

hvorfor forsætte med dårlig navngivning ??
element name må ikke indeeholde specialtegn eller mellemrum


#2 det er ikke requered i html, men det er requered i databasen
lav et sql dump af din database / tabel



postnummer og by hænger det ikke sammen ??, ligner en seperat postnummer tabel
land og landekode hænger det ikke sammen ??, ligner en seperat lande tabel

kig på normalisering af din database
Avatar billede cht22 Professor
31. januar 2019 - 11:06 #4
Jeg tror der mangler:

$telefon= $conn->real_escape_string($telefon);

etc.
Avatar billede olsensweb.dk Ekspert
31. januar 2019 - 12:20 #5
#4
så vil det være bedre at bruge Prepared Statements, mem selvføgelig, det er mere omfattende
https://www.computerworld.dk/uploads/eksperten-guider/1480-Prepared-Statements-under-MySQLI-kom-igang.pdf
fra ovenstående link
citat
Meget ofte vil mysql_real_escape_string o.lign. 'hacks' ydermere resultere i uønskede dobbelt escapings
med deraf følgende backslashes (\) i de gemte data, når disse udskrives.
/citat
Avatar billede lefsa62 Seniormester
31. januar 2019 - 12:55 #6
Jeg er ved at lave det om vedr mellem rum det er lavet så lige nu er der caous i  systemet men det problem som det er med de tal skal jeg have kikker på det er lige noget større.

Ja det er både telefon og ean r og cvrnr som har det problem
Avatar billede lefsa62 Seniormester
31. januar 2019 - 14:31 #7
Til cht22

Har du set det sidste jeg har skrevet. Det er alle i DB som har" int " er det problem med at den vil have at de skal udfyldes. Det er jeg ikke med på jeg vil selv bestemme
Avatar billede olsensweb.dk Ekspert
31. januar 2019 - 15:52 #8
#7
>Det er alle i DB som har" int " er det problem med at den vil have at de skal udfyldes.
som jeg skrev i https://www.computerworld.dk/eksperten/spm/1027260?k=8319813


vær opmærksom på hvilke datatype følgende felter er:
post_nummer:
vil du beholde foranstillede nullerer ?? feks 0800

telefon_nummer:
må telefon nummeret starte med lande kode ( (+45) ), må der der være mellemrum i nummeret, må der være foranstillet nuller (000)

jeg vil anbefale at sette dem til varchar
Avatar billede lefsa62 Seniormester
02. februar 2019 - 13:30 #9
nu er de to ting løst vedr landekode (+45) på danske telefon nr så er ( int i dette tilfælde med 8 tal vil det kunde indsætte lande kode op til (0020) men efter der skal det være  mediumInt op til (0040) efter der så skal det være bigInt den kan klare tal som kan ganges med eks( 2x2=4x2=8x....) sådan kan det gøres i 32 ganger så kan man se hvor et stort tal de bliver det hjalp ikke at indsætte _nummer men ved at indsætte i databasen hvor der skal stå int men istedet bigInt så alt i dette tilfælde er løst
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester