Php 向数据库中添加变量
我正在尝试使用引导编辑器向数据库添加一个变量。例如,我有这样一个例子:Php 向数据库中添加变量,php,Php,我正在尝试使用引导编辑器向数据库添加一个变量。例如,我有这样一个例子: $templateName = $_POST["templateName"]; $emailFrom = $_POST["emailFrom"]; $emailSubject = $_POST["emailSubject"]; $emailContent = $_POST["emailContent"]; if(mysqli_query($kon, "INSERT INTO emailtexts VALUES
$templateName = $_POST["templateName"];
$emailFrom = $_POST["emailFrom"];
$emailSubject = $_POST["emailSubject"];
$emailContent = $_POST["emailContent"];
if(mysqli_query($kon, "INSERT INTO emailtexts VALUES (NULL, '". $templateName ."', '". $emailFrom ."', '". $emailSubject ."', '". $emailContent ."')")){
echo "Added";
}
$var= "This is value of my variable";
$rez = mysqli_query($kon, "SELECT * FROM emailTexts WHERE id = 2");
$red = mysqli_fetch_assoc($rez);
echo "Test result : <br /><br />" . $red["content"];
其中$emailContent是这样的:这是我的内容,带有一个变量$var,然后在我要显示结果的文件中,我有如下内容:
$templateName = $_POST["templateName"];
$emailFrom = $_POST["emailFrom"];
$emailSubject = $_POST["emailSubject"];
$emailContent = $_POST["emailContent"];
if(mysqli_query($kon, "INSERT INTO emailtexts VALUES (NULL, '". $templateName ."', '". $emailFrom ."', '". $emailSubject ."', '". $emailContent ."')")){
echo "Added";
}
$var= "This is value of my variable";
$rez = mysqli_query($kon, "SELECT * FROM emailTexts WHERE id = 2");
$red = mysqli_fetch_assoc($rez);
echo "Test result : <br /><br />" . $red["content"];
我想得到这样的东西:
测试结果:
这是我对变量的内容这是我变量的值
但是我越来越
测试结果:
这是我的内容,带有一个变量$var
有什么建议吗?谢谢
更新
我的php表单是:
<div class="box-body">
<p class="help-block" style="text-align:center;color:#f00;">Alle velden moeten ingevuld worden!.</p>
<div id="addedSuccess" class="alert alert-success col-lg-12 col-md-12 col-sm-12 col-xs-12" style="text-align:center;display:none;"></div>
<div id="addedError" class="alert alert-danger col-lg-12 col-md-12 col-sm-12 col-xs-12" style="text-align:center;display:none;"></div>
<form id="frmAddTemplate" role="form" action="" method="post">
<div class="form-group col-lg-6" style="float:none;margin:10px auto;">
<input type="text" class="form-control" id="txtTemplateName" name="txtTemplateName" placeholder="De naam van de email template">
</div>
<div style="clear:both;"></div>
<div class="form-group col-lg-6" style="float:none;margin:10px auto;">
<input type="text" class="form-control" id="txtEmailFrom" name="txtFromEmail" placeholder="Sender (from email)">
</div>
<div class="form-group col-lg-6" style="float:none;margin:10px auto;">
<input type="text" class="form-control" id="txtEmailSubject" name="txtEmailSubject" placeholder="Subject">
</div>
<div class="form-group">
<textarea class="bs-texteditor form-control" rows="12" placeholder="Email content" name="txtEmailContent" id="txtEmailContent"></textarea><br />
</div>
<div id="pleaseWait" style="float:right;margin:4px 0 0 3px;display:none;"><img src="../img/ajax-loader-small.gif" title="Please wait"/></div>
<button type="submit" class="pull-right btn btn-success" name="btnAddTemplate" id="btnAddTemplate"><i class="fa fa-plus-circle"></i> Save template</button>
</form>
<div style="clear:both;"></div>
我的jquery和ajax调用是:
<script type="text/javascript">
$(document).ready(function(e) {
$(document).on("click", "#btnAddTemplate", function(e){
var templateName = $("#txtTemplateName").val();
var emailFrom = $("#txtEmailFrom").val();
var emailSubject = $("#txtEmailSubject").val();
var emailContent = $("#txtEmailContent").val();
$.ajax({
url : "adding-new-template.php",
type: "POST",
data: {templateName : templateName, emailFrom : emailFrom, emailSubject : emailSubject, emailContent : emailContent, status : "insert"},
beforeSend: function(){
$("#pleaseWait").show();
},
success: function(msg){
$("#pleaseWait").hide();
if(msg == "Added"){
$("#addedSuccess").html("De tamplate is succesvol toegevoegd.").fadeIn(300).fadeOut(10000);
}else{
$("#addedError").html("Er is iets misgelopen. De template is niet succesvol toegevoegd.").fadeIn(300).fadeOut(8000);
}
},
error: function(){
$("#pleaseWait").hide();
$("#addedError").html("Er is iets misgelopen. De template is niet succesvol toegevoegd.").fadeIn(300).fadeOut(8000);
}
});
e.preventDefault();
});
});
</script>
最后,我的adding-new-template.php代码是:
<?php
session_start();
include("config.php");
global $kon;
$templateName = $_POST["templateName"];
$emailFrom = $_POST["emailFrom"];
$emailSubject = $_POST["emailSubject"];
$emailContent = $_POST["emailContent"];
$status = $_POST["status"];
if($status == "insert"){
if(mysqli_query($kon, "INSERT INTO emailtexts VALUES (NULL, '". $templateName ."', '". $emailFrom ."', '". $emailSubject ."', '". $emailContent ."')")){
echo "Added";
}
}else{
if($status == "update"){
}
}
?>
我想添加的电子邮件内容是:
亲爱的
您的密码已更改。您的证件是:
用户名:$Username值New password=$password值
致意
İ相信在$var变量前面有额外的$sign,最终会添加 变量接受变量的值并将其视为变量的名称。在上面的示例中,hello可以使用两个美元符号作为变量的名称。i、 e 你可以试试
$var= "This is value of my variable";
$rez = mysqli_query($kon, "SELECT * FROM emailTexts WHERE id = 2");
$red = mysqli_fetch_assoc($rez);
echo "Test result : <br /><br />" . str_replace("$var", $var, $red["content"]);
但它并不是很灵活,您应该解释为什么需要在数据库中放置一个var
如果您正在寻找模板,您可以举以下示例:
<?php
function parse($text, $data)
{
// Loop to replace all the variables known as : {{[a-z_]+}}
while (preg_match("/{{(\w+)}}/", $text, $matches) == 1)
{
// Keeping trace of the text you're going to replace
$str_to_replace = $matches[0];
// Retrieving only the name of the variable
$var_to_seek = $matches[1];
// Assigning the variable found
$new_var = "";
if (isset($data[$var_to_seek]))
$new_var = $data[$var_to_seek];
// Replacing the variable in the original string.
$text = str_replace($str_to_replace, $new_var, $text);
}
return $text;
}
$str = "Hello {{firstname}} {{name}}.{{unsetvar}} {{sentence}}";
echo parse($str, array("firstname" => "John", "name" => "Doe", "sentence" => "Templates are cool."));
//Output is "Hello John Doe. Templates are cool."
另外,在插入数据库之前,不要忘记转义您的值。这样做行不通。我正在尝试制作电子邮件模板。因此,如果用户更改了密码,我希望能够编辑发送给他的电子邮件。但是在那封电子邮件中,我需要一些动态变量,比如密码和用户名。你应该尝试一个模板,然后我会编辑我的答案@BokyMy template system非常适合你,只需将$var更改为{{var}},并通过我的函数@Boky传递字符串。那么我应该如何向数据库添加变量,比如{var}或者?有可能看到您正在制作的模板吗?也许你没有把引号放在正确的位置,所以你最终得到的是$var而不是它包含的变量?告诉我们你不是通过电子邮件发送的。告诉我们您存储的是散列密码而不是纯文本密码。告诉我们这不是一个现场直播的网站。这不是一个实时站点。我试图解释我想做什么。那么,为什么每个人都在徒劳地编写你的脚本呢?听起来像是家庭作业。我讨厌别人说我没走那么远。。。否则此网站将不会公开。。。或者只是为了学校,所以安全不重要。。。。如果老师和教授从一开始就不谈论安全问题,那他们就是做错了。他们正在教授草率而危险的编码实践,学生们以后将不得不放弃这些实践。我也讨厌人们说,我以后会增加安全性。。。。如果你第一次没有时间做正确的事情,你什么时候能抽出时间来添加呢?