Avatar billede Emma Seniormester
11. januar 2021 - 19:56 Der er 10 kommentarer og
1 løsning

Hjælp til mail i php

Jeg har brug for, at få hjælp til at lave en løsning, hvor jeg gemmer mailen inden den overskrives som på denne mail. Det jeg konkret har brug for er en
metode til at gemme de indkomne mail i en mappe med dato og tid for den indkomne mail.

<html>
<head><meta charset="utf-8">
</head>
<body>
<div id="Tid">
        <div id="Dato">Dato:<input type="text" name="Navn" size="10" /></div>
        <div id="Klokken">Klokken:<input type="text" name="Navn" size="10" /></div>
</div>
<table style="width:100%">
   
    <tr><form method="POST" action="Nyt-Svar-Ordreseddel.php">
      <td Colspan="2">Navn<input type="text" name="Navn" size="22" /></th>
      <td>Adresse<input type="text" name="Adresse" size="25"/></th>
      <td>Postnr/by<input type="text" name="Postnr" size="22" /></th>
      <td>Mail<input type="text" name="Mail" size="25"/></th>
      <td>Tlf.<input type="text" name="Tlf" size="15" /></th>
  </tr>
  <tr>
      <td>Tlf.<input type="text" name="Tlf" size="50" /></th>
  </tr>
</table>
</body>
</html>
Avatar billede jakobdo Ekspert
11. januar 2021 - 20:35 #1
Nu skriver du indkomne. Men du viser en formular.
Ved udfyldelse af denne formular, skal den så sende en email til dig eller til brugeren?
Og er det denne email du gerne vil gemme?
Et oplagt sted ville være at gemme emailen i en database. Du har alle dine felter til det.

Navn, adresse, postnr, mail, tlf osv.
Avatar billede Emma Seniormester
12. januar 2021 - 06:26 #2
Brugeren skal udfylde formularen og sende den til mig. Jeg sender så et brev til brugeren (Nyt-Svar-Ordreseddel.php), hvor alle dataerne fra fornularen er indsat i brevet for at sikre at alt er korrekt. Når brugeren har godkendt brevet vil jeg så indsætte denne formular i en SQL database.
Jeg vil dog gerne gemme denne formular, for at sikre, at en bruger ikke mistes. Derfor vil jeg gerne, at den udftldte formular gemmes, mindst indtil at jeg har læst den fra brugeren og sikret mig at brugeren har fået brevet. ((Nyt-Svar-Ordreseddel.php). Når bruheren har svaret på brevet. kan den udfyldte formular fjernes. Hvis jeg ikke har hørt fra brugeren vil han slettes efter knapt et år.
Avatar billede Emma Seniormester
12. januar 2021 - 08:40 #3
Hej igen
Jeg glemte at skrive, at det jeg ønsker hjælp til er at gemme formularen, hver gang brugeren sender en. Det der sker nu er at den tidligere formular overskrives, uden at den gemmes. Den skal gerne gemmes på en mappe eller side, hvor den gemmes under dato og tidspunkt. Jeg ved ikke om det kan lade sig gøre. Jeg vil også være glad for at den bare gemmes, inden den overskrives.
Avatar billede jakobdo Ekspert
12. januar 2021 - 10:27 #4
Jeg ville nok starte med at gemme dine data i en database.
Har du styr på dette?
Avatar billede Emma Seniormester
12. januar 2021 - 14:16 #5
Det har jeg ikke helt, men jeg har set at der på nemprogrammering er et begynder kursus i SQL, hvis jeg gennemgår den kan jeg nok lære at bruge en sådan. Jeg har dog kun lært om Microsoft Assess og det er ca. 20 år siden, da jeg bestod pc kørerkortet.
Kender du til noget bedre ellers vil jeg gennemgå de lektioner der er der.
Avatar billede jakobdo Ekspert
12. januar 2021 - 14:48 #6
Hvor har du din hjemmeside henne?
Ofte hvis du har en PHP hjemmeside, følger der en mysql database med.

Så det vil bestemt være en god ide at lære noget grundlæggende om php og mysql.
Og husk nu at lær MYSQLi og ikke den gamle mysql.
Dette har med sikkerhed blandt andre ting at gøre.
Avatar billede Emma Seniormester
13. januar 2021 - 12:15 #7
Jeg har min hjemmeside hos nordicway så vidt jeg kan se kan man kun oprette databasen. Så vidt jeg kan se har de kun den gamle MySQL hvis ikke jeg bruger løsningen Ekstern MySQL og her ved jeg ikke om jeg kan anvende MySQLi. Men så skal jeg installere databasen hos mig selv. Men det kan godt være at man har adgang til MySQLi fra nogle af de andre SQL'er der er 3 men ingen nævner MySQLi.
Jeg har et andet spørgsmål, når jeg skal benytte og indlæse formularen, som brugeren indtaster de oplysninger han vil sende til mig indtaster han evt. flere linjer, hvor de første linjer består af navn og adresse og så videre. De næste består af forskellige oplysninger om produktet, som type, størrelse, farve osv.
Nogle har brug for at skrive f.eks. 5 linjer andre har brug for 15 linjer osv., jeg er ikke helt sikker på hvordan man behandler et sådan.
Formularens opbygning:
1-4 linje: Med ca. 6 oplysninger pr. linje fremtræder kun en gang for formularen her: Navn,adresse osv. det kunne sagtens være en linje med 12 oplysninger.
Problemet er her Formular være fra linje 5 være på 5 linjer og for en anden være 15 linjer. For hver bruger
Linje:
* 5: som er overskrifter er alle linjerne ens på nær indholdet.
* 6 er farve f.eks. rød og andre forskelligheder 6 oplysninger i alt pr. linje
* 7 grøn osv.
for forståelsens skyld
kolonne            1          2            3              4            5            6
linje 1                                                overskrift 
linje 2            navn      adr.    postnr./by    osv
linje 3                                                  overskrift
linje 4              andre oplysninger ingen gentagelser 6 stk.
linje 5                                                  overskrift
linje 6            andre oplysninger ens opbygning for hver linje forskelligt indhold
-   
linje 15          nogle stopper med linje 6

skemaet kan evt. opbygges med en oplysning pr. linje og en if/else sætning med flere?
Det er nok et større problem, jeg har set efter et sådan forklaring på nettet men ikke fundet noget der giver et svar på dette.
Håber du har noget jeg kan se hvordan man gør. Det jeg har fundet skriver at der skal være en bruger for hver linje
Avatar billede Emma Seniormester
13. januar 2021 - 13:18 #8
Hej igen
For en ordensskyld har jeg her en prøve på hvordan linjerne ser ud i de 10 linjer jeg har standardlavet. Hvert felt har en input type med et ensidigt navn. Jeg tror, at de skal udskrives på en lang række, uanset om rækken så bliver på 180 kollonner og "en kilometer lang". Jeg oprettede et id felt før navnet i 2 linje se beskeden sendt før denne. For at gøre koden ensidiget. Hvis der er noget jeg har lavet forkert så giv endeligt besked, da det er min første SQL jeg laver.

<tr>
        <td><input type="text" name="1-Antal" size="6"/></td>
        <td><input type="text" name="1-Kode" size="10" /></td>
        <td><input type="text" name="1-Varenavn" size="25" /></td>
        <td><input type="text" name="1-Mål" size="22" /></td>
        <td><input type="text" name="1-Underlev" size="25" /></td>
        <td><input type="text" name="1-Ombearb"size="15" /></td>
    </tr>
    <tr>
        <td><input type="text" name="2-Antal" size="6"/></td>
        <td><input type="text" name="2-Kode" size="10" /></td>
        <td><input type="text" name="2-Varenavn" size="25" /></td>
        <td><input type="text" name="2-Mål" size="22" /></td>
        <td><input type="text" name="2-Underlev" size="25" /></td>
        <td><input type="text" name="2-Ombearb"size="15" /></td>
    </tr>
Avatar billede olsensweb.dk Ekspert
13. januar 2021 - 13:56 #9
nu er man gået bort fra tabeller til design for lidt over 20 år siden :), tabeller bruges til tabulære data, som du vil vise det i et regneark, og skal siden bruges på feks en mobil telefon, er tabeller ikke så smarte

hvorfor vil du have dato / tid på formularet ??, du kan jo bare tage den fra serveren når du indsætter i db og sender mailen

de submitted data skal selvføgelig valideres, inden de ligges i databasen, en bedre metode er at anvende Prepare Statement
https://www.computerworld.dk/uploads/eksperten-guider/1480-Prepared-Statements-under-MySQLI-kom-igang.pdf

et forslag til en indtastnings formular start html/php kunne værer
<!doctype html>
<html lang="da">
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            label{
                width:55px;
                display:inline-block
            }           
            input[readonly ="readonly"] {
                background-color: lightgray;
            }
        </style>
    </head>
    <body>
        <?php
        $full_date = date("Y-m-d H:i:s");
        $ar = explode(" ",$full_date);
        $date = $ar[0];
        $time = $ar[1];       
        ?>   
        <form method="post" action="Nyt_Svar_Ordreseddel.php">
            <label for="dato">Dato</label>
            <input type="text" name="dato" value="<?php echo $date;?>" readonly="readonly" ><br>
            <label for="Klokken">Klokken</label>
            <input type="text" name="klokken" value="<?php echo $time;?>" readonly="readonly"><br>
            <label for="Navn">Navn</label>
            <input type="text" name="Navn" placeholder="fulde navn"><br>
            <label for="Adresse">Adresse</label>
            <input type="text" name="Adresse" placeholder="addresse"><br>
            <label for="Postnr">Postnr</label>
            <input type="text" name="Postnr" placeholder="postnummer"><br>
            <label for="by">by</label>
            <input type="text" id="bynavn" value="bynavn skal komme via ajax" disabled><br>
            <label for="email">Mail</label>
            <input type="email" name="email" placeholder="email addresse" required><br>
            <label for="Tlf.">Tlf.</label>
            <input type="text" name="Tlf" placeholder="telefon nummer"><br>
            <input type="submit" name="send">
        </form>
    </body>
</html>


#7
>Så vidt jeg kan se har de kun den gamle MySQL
nej! mysql er selve databasen, det som #6 omtaler er et API til databasen, som PHP har

mysql er et database API som PHP har indbygget, blev tilgøngelig fra PHP 2.0. fjernet fra og med php 7  (Version 7.0.0 frigivet 03 Dec 2015), så du kan kun vælge mysqli eller PDO
mysqli er et database API som PHP har indbygget, blev tilgængelig fra PHP 5.0.
PDO er et database API som PHP har indbygget, blev tilgængelig fra PHP 5.1.

https://www.php.net/manual/en/mysqlinfo.api.choosing.php


hvilke mail vil du bruge ??
php's indbygget mail
https://www.php.net/manual/en/function.mail.php
eller et færdigt lib feks
https://github.com/PHPMailer/PHPMailer
https://mailchimp.com/

har du lavet databasen ??,

er den normaliseret ??
https://www.vidas.dk/mysql/MySQL_database_normalisering.html
https://stackoverflow.com/questions/1258743/normalization-in-mysql
https://www.computerworld.dk/uploads/eksperten-guider/234-Database-design-Normalisering.pdf

du kan ikke vise noget uddata på skærmen før du har din database på plads.


#8
hvorfor har du input felter i en visnings formular ??
du bør bare lave et link til en edit formular der editerer den enkelte post
Avatar billede Emma Seniormester
13. januar 2021 - 16:47 #10
Jeg er ikke helt skrap i databaser, og jeg tænkte at den måde jeg byggede den på så helt fornuftig ud. Fra din mail, har her fået en masse at gå videre med.
Jeg har bygget en del på min hjemmeside, men dette punkt er det vigtigste af dem alle.
Jeg vil så prøve, at sætte mig ind i det du har skrevet.
PS. pt. forstår jeg ikke det hele, men jeg tror, at jeg kan få  et godt resultat senere hen. Jeg vil forsøge, at lave det som du har skrevet. Jeg tror at din mail nok har givet mig arbejde til de næste 2-3 dage. Jeg har kørt min hjemmeside på en ipad og det så fornuftigt ud. Men jeg har ikke forsøgt på en telefon.
Avatar billede Emma Seniormester
14. januar 2021 - 17:13 #11
Jeg siger tak til dem, der er kommet med indlæg og er igang med at lave rettelser og ændringer og lære oop databasen at kende. Derfor lukker jeg dette emne.
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