22. august 2014 - 13:40
Der er
2 kommentarer
Php form script MySql+Email
Hej alle
Jeg håber nogle af jer med stor indsigt enten kan guide mig eller ved præcis hvor et script A'la nedenstående kan hentes.
Jeg har brug for et enkelt script hvor i der kan besvares 8 spørgsmål med en score fra 1 til 7 samt et kommentar felt. Når formen er udfyldt skal den gemmes i en MySql table samt fremsendes til en fast email. Ikke stort og kompliceret.
Takker mange gange.
05. september 2014 - 13:20
#2
Prøv dette. Undskyld mit brug af table i html. Jeg er lidt skadet der.
Skulle være dynamisk lavet så du kan tilføje flere end de 8 spørgsmål. Og endvidere dynamisk med hensyn til de 1 til 7 i svar muligheder.
Har skrevet kommentar ud for den variabel du skal ændre.
Håber det kan hjælpe.
Database tabeller:
CREATE TABLE IF NOT EXISTS `IndsendData` (
`IndsendData_ID` int(10) NOT NULL AUTO_INCREMENT,
`IndsendData_Kommentar` mediumtext COLLATE utf8_danish_ci,
`IndsendData_Dato` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`IndsendData_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `IndsendData_Svar` (
`DataSvar_ID` int(10) NOT NULL AUTO_INCREMENT,
`IndsendData_ID` int(10) NOT NULL,
`Svaret` int(2) NOT NULL,
PRIMARY KEY (`DataSvar_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=1 ;
<?php
$db_host="localhost";
$db_user="databasebruger";
$db_pass="databasekode";
$db_name="databasenavn";
mysql_connect("$db_host","$db_user","$db_pass");
mysql_select_db("$db_name");
mysql_query("SET NAMES utf8");
$AntalSpoergsmaal = array("Spørgsmål 1","Spørgsmål 2","Spørgsmål 3","Spørgsmål 4","Spørgsmål 5","Spørgsmål 6","Spørgsmål 7","Spørgsmål 8"); // Skriv den mængde spørgsmål du ønsker. Brug "" og adskil med ,
if($_POST['SendData'] == "data")
{
$GemData = "";
for ($i=0; $i < count($AntalSpoergsmaal); $i++) // Kontrol om alle spørgsmål er besvaret med prikken
{
$PostData = "svar$i";
if($_POST[$PostData] == ""){
if($GemData == ""){
$GemData = "$AntalSpoergsmaal[$i] ikke besvaret";
}else{
$GemData = "$GemData<br />$AntalSpoergsmaal[$i] ikke besvaret";
}
}
}
if($GemData == "")
{
$result = mysql_query("SHOW TABLE STATUS LIKE 'IndsendData'");
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
$sql_kolloner="IndsendData_Kommentar"; // De kolonner der bliver indsat ting i
$sqlkode="'$_POST[Kommentar]'"; // Indholdet af de forskellige variabler
$create_object2=mysql_query("INSERT INTO IndsendData ($sql_kolloner) Values ($sqlkode)");
if($create_object2)
{
print "Indsat data<br />";
}
else{print "Noget gik galt ved indsættelse af data i databasen<br />";}
for ($i=0; $i < count($AntalSpoergsmaal); $i++) // Kontrol om alle spørgsmål er besvaret med prikken
{
$PostData = "svar$i";
$sql_kolloner="IndsendData_ID,Svaret"; // De kolonner der bliver indsat ting i
$sqlkode="$nextId,$_POST[$PostData]"; // Indholdet af de forskellige variabler
$create_object2=mysql_query("INSERT INTO IndsendData_Svar ($sql_kolloner) Values ($sqlkode)");
if($create_object2)
{
print "Indsat data<br />";
}
else{print "Noget gik galt ved indsættelse af data i databasen<br />";}
}
include("class/PHPMailer/class.phpmailer.php"); // Download PHPMailer og inkluder class
$email = new PHPMailer();
$email->From = 'Sendt fra email';
$email->FromName = 'Spørgeskemaet';
$email->Subject = "Nyt data indtastet og gemt";
// HTML body
$body = "Data indsendt.<br /><table>";
for ($u=0; $u < count($AntalSpoergsmaal); $u++) {
$PostData = "svar$u";
$body .= "<tr>";
$body .= "<td>$AntalSpoergsmaal[$u]</td>";
$body .= "<td>$_POST[$PostData]</td>";
$body .= "</tr>";
}
$body .= "<tr>";
$body .= "<td>Kommentar</td>";
$body .= "<td>$_POST[Kommentar]</td>";
$body .= "</tr>";
$body .= "</table>";
$email->CharSet="UTF-8";
$email->IsHTML(true);
$email->Body = $body;
$email->AddAddress('DIN Email');
$email->Send();
/////////////////////////////////////
}else{
?><script type="text/javascript">alert(<?php print "$GemData"; ?>);</script><?php
}
}
?>
<form enctype='multipart/form-data' method='post' action='form.php'>
<table width="100%">
<tr><td colspan="2"><h1>Udfyld form</h1></td></tr>
<?php
$AfstandMellemPrikker = 50; // Juster afstanden mellem prikker i px
$AntalPrikker = 7; // Skriv antallet af prikker til svar
for ($i=0; $i < count($AntalSpoergsmaal); $i++)
{
if($i == 0){
?>
<tr style="font-weight: bold;">
<td>Spørgsmål</td>
<td>
<table>
<tr>
<?php
for ($y=1; $y <= $AntalPrikker; $y++) {
?><td align="center" width="<?php print "$AfstandMellemPrikker"; ?>"><?php print "$y"; ?></td><?php
}
?>
</tr>
</table>
</td>
</tr>
<?php
}
?>
<tr>
<td><?php print "$AntalSpoergsmaal[$i]"; ?></td>
<td>
<table>
<tr>
<?php
for ($y=1; $y <= $AntalPrikker; $y++)
{
?>
<td align="center" width="<?php print "$AfstandMellemPrikker"; ?>">
<input type="radio" name="<?php print "svar$i"; ?>" value="<?php print "$y"; ?>" />
</td>
<?php
}
?>
</tr>
</table>
</td>
</tr>
<?php
}
?>
<tr>
<td>Kommentar</td>
<td>
<textarea name="Kommentar" COLS=60 rows="10" class="form"></textarea>
</td>
</tr>
<tr>
<td><input type="hidden" name="SendData" value="data" /></td>
<td><input type="submit" value="Indsend svar" /></td>
</tr>
</table>
</form>