我在PHP中制作简单的邮件系统。
我用了两张桌子:
- 用户表
- 消息表
醇>
我使用了来自users表的登录并且也使用了会话。 使用id消息发送消息时正在发送。但是,当我在" mto"中使用他们的名字时它自动占用0 id ..
有人可以回答我吗?
撰写按钮代码:
<a class="btn btn-block btn-compose btn-lg" id="loginButton"><i class="fa fa-" ></i> Compose Mail </a>
<!-- The login modal. Don't display it initially -->
<form id="loginForm" method="post" class="form-horizontal" style="display: none;">
<div class="form-group">
<label class="col-xs-3 control-label">To</label>
<div class="col-xs-5">
<input type="hidden" class="form-control" name="from" />
</div>
<div class="col-xs-5">
<input type="text" class="form-control" name="to" value="<?php echo 'name' ?>"/>
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Subject</label>
<div class="col-xs-5">
<input type="text" class="form-control" name="ssubject" />
</div>
</div>
<div class="form-group">
<label class="col-xs-3 control-label">Message</label>
<div class="col-xs-5">
<textarea name="smessage" class="form-control"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-xs-5 col-xs-offset-3">
<button type="submit" class="btn btn-default">Send</button>
</div>
</div>
</form>
如果我们输入id然后它需要id,但我想从用户名取名,并将id存储在消息表中。
请帮帮我。
<?php
include('../session.php');
$from="$session_id";
$to=mysql_real_escape_string($_POST["to"]);
$subject=mysql_real_escape_string($_POST["ssubject"]);
$message=mysql_real_escape_string($_POST["smessage"]);
if($from==$to){
echo "Message could not be sent";
die();
}
if($from>1 && $to>1){
echo "Message could not be sent";
die();
}
//echo $to.$message;
//validate before insert
if(strlen($subject)>50){
echo "Subject was too long";
die();
}
if(strlen($message)>150){
echo "Message was too long";
die();
}
include('../dbsource.php');
$mysqli=connect();
if(insert($mysqli,$from,$to,$subject,$message)>0)
{
echo "<script type=\"text/javascript\">".
"alert('Message was successfully sent');".
"</script>";
// $result='<div class="alert alert-success">Thank You! I will be in touch</div>';
}
else
{
echo "<script type=\"text/javascript\">".
"alert('there was error sending message.. please try it later');".
"</script>";
}
?>
<?php
function insert($mysqli,$from,$to,$subject,$message){
$mdate=date('Y-m-d');
$mtime=date('H:i:s');
$query = "INSERT INTO messages (mfrom,mto,subject,message,mdate,mtime)".
"VALUES ('$from','$to','$subject','$message','$mdate','$mtime')";
if($mysqli->query($query)>0)
return($mysqli->insert_id);
else
return 0;
}
?>
答案 0 :(得分:0)
但是当我在“mto”字段中使用该名称时,它会自动获取0 id - 这是因为mto字段有int类型,你不能在int类型中存储字符,如果你想存储名称,可以将它改为varchar。然而,然后存储您可以与用户表建立关系的名称,这是一种更好的方式。