Top
Phpuniverset logo
 
930 banner

INDHOLD

Forside

Script libary

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

Forum

Online udviklere


ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Forside Forum PHP, mysql Mailform der også indsætter i database.

Mailform der også indsætter i database.


 

Mailform der også indsætter i database.

Jost L. Hansen  

Hej 

Jeg har har lavet en mail form der skal sende en mail men også putte data i en database.
Men den virker ikke. Den sender ikke mail og indsætter ikke noget i databasen.

Scriptet består af to filer: selve mailformen og php-koden

Mailform:

----------------
<script language="JavaScript">
<!--


function valider () {
switch ("") {
case document.tilmeld.name.value:
window.alert ("Du har glemt at indtaste dit navn");
return false;
break;
case document.tilmeld.aargang.value:
window.alert ("Du har glemt at indtaste din årgang");
return false;
break;
case document.tilmeld.liniefag.value:
window.alert ("Du har glemt at indtaste dit liniefag");
return false;
break;
case document.tilmeld.email.value:
window.alert ("Du har glemt at indtaste din email-adresse");
return false;
break; 
}
}
-->
</script>
Da julefrokosten er for alle tidligere elever på Højskolen og ikke kun medlemmer af
elevforeningen og tidligere elever med adgang til forummet, så er det lavet sådan at du
skal indtaste navn, årgang, liniefag og email selvom du er logget ind.
Se de tilmeldte nederst på siden.

<div class="style3" id="formular">
<form name="tilmeld" method="post" action="viewpage.php?page_id=2">

<p><strong>Husk at udfylde alle felter med *</strong></p>

<label for="t1">*Navn: </label>
<br />
<input id="t1" type="text" name="name" />
<br />
<br />

<label for="t7">*Årgang: </label>
<br />
<input id="t7" type="text" name="aargang" />
<br />
<span class="style4">F.eks.: <em>Forår 2003</em> eller hvis du har gået på to hold
<em>Efterår 2002 og Forår 2003</em>.</span></p>
<!--
<form id="t8" name="jubilar" method="post" action="sender.php">
-->
<!--
</form>
!-->
<label for="t9">*Liniefag:</label>
<br />
<input id="t9" type="text" name="liniefag" />
<br /><br />


<label for="t2">*Email:</label>
<br />
<input id="t2" type="text" name="email" />
<br /><br />

<input id="t3" type="hidden" name="subject" value="Tilmelding til Julefrokosten 2006"/>

<label for="t4">Skriv en bemærkninger (det kan f.eks. være en hilsen eller om du er
vegetar):</label>
<br />
<textarea id="t4" name="message" rows="7" cols="47"></textarea>
<br />

<label for="t5">Ønsker du en kvitering (kopi af de intastede informationer)
tilsendt?</label>

<input type="checkbox" id="t5" name="customer_copy" checked="checked" />

<label for="t6"> </label> <br /><br />
<input id="t6" type="submit" name="submit" value=" Send Tilmelding "
onClick="javascript:return valider()" />

<input type="reset" value=" Slet alt " />
</form>
<p>Ovenstående informationer sendes til Marianne på højskolens kontor.</p>
</div>
----------------

PHP-Koden:

-----------------------
<?php

include 'dbforbindelse.inc.php';

if (isset(
$_POST['submit']))
{

//Data fyldes i databasen 
$name $_POST['name'];
$email $_POST['email'];
$besked $_POST['message'];
$aargang $_POST['aargang'];
$liniefag $_POST['liniefag'];

$sql "INSERT INTO tilmeldte SET
navn='
$name',
email='
$email',
besked='
$besked',
liniefag='
$liniefag',
ankomst='
$ankomst',
dato=LOCALTIMESTAMP()"
;
if (@
mysql_query($sql)) {





if (!empty(
$_POST['name']) && // tjek, at der er skrevet et navn
!empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse
!empty($_POST['subject']) && // tjek, at der er skrevet et subject
!empty($_POST['aargang']) && // tjek, at der er skrevet en argang
!empty($_POST['liniefag']) && // tjek, at der er skrevet et liniefag



// her følger sikringen mod spambotter
!strpos($_POST['name'], "stovringhojskole.dk") && // tjek, at dit domæne ikke er skrevet
i feltet "navn"
//!strpos($_POST['email'], "stovringhojskole.dk") && // tjek, at dit domæne ikke er
skrevet i feltet "email"
!strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
!eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i "navn"
!eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i "navn"
!eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email"
!eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i "email"

$mail_body="
Hej Marianne.

Jeg vil gerne tilmelde mig til Julefrokosten 2006.


Med venlig hilsen
$name
$aargang
Liniefag: 
$liniefag

Evt. bemærkning:
$besked";

$headers="From: ".$_POST['name']."<".$_POST['email'].">\r\nContent-Type: text/plain;
charset=iso-8859-1\r\nContent-Disposition: inline\r\nContent-Transfer-Encoding: 8bit"

if (@
$_POST['customer_copy'])
{
$headers .= "\r\nBcc: ".$_POST['email'];
}
if (@
mail("jost@dicksmock.dk"strip_tags($_POST['subject']),
stripslashes(strip_tags($mail_body
/*'message' . 'aargang' . 'jubilar' . 'liniefag' . 'ankomst'*/)), $headers))
//Er det den rigtige måde at kombinere flere ting i en mail?

{
echo 
'<p>Du er nu tilmeldt sommerfesten. Du kan se <a
href="viewpage.php?page_id=1">her</a> hvem der også er tilmeldt. Hvis du alligevel ikke
kan komme så skynd dig at skrive en mail til Marianne på marianne@stovringhojskole.dk,
så Christa ikke laver for meget mad.<br />' 
;
} else {
echo 
'<p>Der skete en fejl, <a href="tilmeld.php">prøv igen</a> <br />FEJL: ' .
mysql_error() . '</p>';
}


}


?>
---------------

Er der nogen der har et bud?

Mvh

Jost



Dato : 23.10.2006, 22:37

Visninger : 1868

Points : 150

 

Du skriver:

$sql = "INSERT INTO tilmeldte SET
navn='$name',
email='$email',
besked='$besked',
liniefag='$liniefag',
ankomst='$ankomst',
dato=LOCALTIMESTAMP()";

Skal man ikke bruge 

mysql_query("INSERT INTO tilmeldte(navn, email....) VALUES ('$navn','$email'...)",
connection);


Dato : 27.10.2006, 11:31

Kommentar af : mirko  

 

Det kan man også gøre.

Men jeg synes den måde jeg gør det på er langt mere overskuelig end den anden måde. Om
end det fylder lidt mere.
Ved at gøre det på den måde jeg gør det på kan man lynhurtig se hvad en variabel er
lig med. På den anden måde skal man tælle sig frem til om variablen passer på det den
skal skal. Og hvis man har 25 af slagsen så tæller man hurtigt forkert.

Men jeg har faktisk løst det. Det viste sig der var en række i tabellen i databasen, som
ikke måtte være der fordi den ikke havde en default-værdi. Hvorfor og hvordan ved jeg
ikke, men da jeg slettede den virkede det.

/jost


Dato : 27.10.2006, 15:29

Kommentar af : Jost L. Hansen  

 

,

Dato : 31.10.2006, 18:21

Kommentar af : Esben Andersen  

 

ups... fejl

Dato : 31.10.2006, 18:22

Kommentar af : Esben Andersen  

 

Hej 

Hvis du har fundet et svar på dit spørgsmål må du meget gerne godkende et svar eller
selv give et svar og godkende. 


Dato : 13.12.2006, 12:14

Kommentar af : Phpuniverset  

 

Ah, det virker på den måde.

Så laver jeg lige et svar.


Dato : 14.12.2006, 01:12

Godkendt svar af : Jost L. Hansen  

 

Hej,

Jeg prøver på at lave en lille medarbejder database hvori man kan oprette, slette og
opdatere. 
Mnr står for medarbejdernummer. Det er meningen, at når man klikker på nummeret så
skal persones oplysninger overføres til en ny side hvor man så kan redigere i dette
tilfælde fx navn eller efternavn. Jeg kan bare ikke lave linket. Forneden har jeg skrevet
hvor jeg ønsker linket håber nogen kan hjælpe mig.


mysql_select_db(" ", $con);

$result = mysql_query("SELECT mnr, fornavn, efternavn FROM medarb order by fornavn");

echo "<table border='1'>
<tr>
<th>Mnr</th>
<th>Fornavn</th>
<th>Efternavn</th>
</tr>";while($row = mysql_fetch_array($result))
  {
  
  echo "<tr>";
  echo "<td>" . $row['mnr'] . "</td>";  /*Her skal man klikke på nummeret, som så       

        overfører mnr, fornavn og efternavn videre til denne side arb_redig.php. Jeg har

        lavet databasen tidligere i ASP, og der så det sådan her ud: 
<td align= "center"><%Response.Write("<a href=arb_redig.asp?id="+nr+">"+nr+"</a>")%></td>

  echo "<td>" . $row['fornavn'] . "</td>";
  echo "<td>" . $row['efternavn'] . "</td>";
  echo "</tr>";
  }
echo "</table>";mysql_close($con);
?> 
</center>
</body>
</html>


Dato : 16.12.2006, 00:52

Kommentar af : kim  

 

sorry jeg tilføjet mit indlæg et forkert sted...beklager!

Dato : 16.12.2006, 01:00

Kommentar af : kim  




Login for at skrive et indlg :



   Brugernavn

Password
 

+ Opret en ny Bruger, Klik her

+ Glemt brugernavn/password

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk

Bund