我在Liferay中制作了一个简单的HTML表单。提交表单后,其内容应该转到我的电子邮件地址,并显示一行“谢谢”。我用php完成了动作部分。但提交后,我得到的只是“谢谢”部分,表单未提交到我的电子邮件地址。
知道为什么这不起作用?我根本不擅长PHP。只有基础知识。
还有其他办法吗?例如用javascript?虽然这可能不是一个好的选择。
我正在使用Liferay 6.1和Tomcat 7。
HTML表单:
<form name="form" method="post" action="form.php">
<table>
</tr>
<tr>
<td>
<label for="first_name">First Name</label>
</td>
<td>
<input type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td>
<label for="last_name">Last Name</label>
</td>
<td>
<input type="text" name="last_name" maxlength="50" size="30">
</td>
</tr>
</table>
</form>
PHP:
<?php
if(isset($_POST['email'])) {
// Email where form is sent:
$email_to = "myemail@mydomain.com";
Thank you!
<?php
}
die();
?>
答案 0 :(得分:1)
最后得到了JSP的答案,我从上学开始就没用过。这是代码,以防有人想尝试它。
<%@ page import="sun.net.smtp.SmtpClient, java.io.*, javax.servlet.http.HttpServletResponse, javax.servlet.jsp.PageContext,java.util.*" %>
<%
String from= request.getParameter("from");
String to= request.getParameter("to");
try{
SmtpClient client = new SmtpClient("smtp.mysitedomain.com");
client.from(from);
client.to(to);
PrintStream message = client.startMessage();
message.println("From: " + from);
message.println("To: " + to);
message.println();
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String paramValue = request.getParameter(paramName);
message.println(paramName + ":" + paramValue);
}
client.closeServer();
}
catch (IOException e){
System.out.println("ERROR IN DELIVERING THE FORM:"+e);
}
response.sendRedirect("thanks.htm");
%>
答案 1 :(得分:0)
Liferay能够使用PHP Portlet,但你必须做一些配置,也许这个链接可以帮助你的案例:http://www.liferay.com/community/wiki/-/wiki/Main/PHP+Portlets
答案 2 :(得分:0)
我在版本6.2中为$ _POST params的php portlet出了问题。解决方案是将portlet前缀以这种方式放入参数
<input name="_SamplePHP_WAR_samplephpportlet_foo" type="text" />
让$ _POST ['foo']有一个参数
答案 3 :(得分:-1)
可能不是完整的答案,但是你的PHP代码中有两个打开的PHP标记和一个结束标记