|
首先预览一下最终成果图:(可以点击用户名称转到个人页面,发表前必须登陆,或者登记一个新用户进行发言)
![]()
在这里建立一个以php,html 连接数据库进行操作的建议论坛,废话不多说,首先介绍一下各文件信息:
![]()
转载请注明出处: http://blog.csdn.net/elfprincexu
我们可以看到,其中forum.php为主登陆页面,其中包含显示论坛信息,和登录信息,format.css为简单的修饰论坛文件,在这里我们需要建立两个表单,一个表单forum为几率聊天信息,另一个表单为用户信息,记录用户相关信息:密码,用户名,个人邮件,个人网址。
forum.php内容:
<?php session_start();?>
<html>
<head>
<link rel="stylesheet" href="format.css" type ="text/css">
</head>
<body>
<?php
$time = time();
if ($_SESSION['connecte'])
{ echo"<p class='bienvenue'>Bienvenue, mon ami:" .$_SESSION['user']."</p>";
echo"<p><a href='deconnect.php'>se déconnecter ?</a></p>";
echo"<p><a href='nouveau_message.html'>Poster un nouveau message</a></p>";
}
if (!$_SESSION['connecte'])
{
echo"<p><a href='form_login.html'>Login: vous voulez vous connecter ?</a></p>";
echo"<p><a href='form_ajouterlogin.html'>ou vous pouvez ajouter un login</a></p>";
}
echo"<p>Maintenant, Il'est : ".date("Y-m-d H-i-s",$time)."</p>";
$con1 = mysql_connect("mysql.infres.enst.fr:3307","toto55","toto55");
if(!$con1) {
die ('Could not connect: ' .mysql_error());
}
if(!mysql_select_db("toto55",$con1)) {
echo "<p>Desolé, accès à la base impossible</p>"; exit;
}
mysql_query("SET NAMES utf8"); /* Pour l’encodage */
$con = mysql_connect("mysql.infres.enst.fr:3307","toto55","toto55");
if(!$con) {
die ('Could not connect: ' .mysql_error());
}
if(!mysql_select_db("toto55",$con)) {
echo "<p>Desolé, accès à la base impossible</p>"; exit;
}
mysql_query("SET NAMES utf8"); /* Pour l’encodage */
$resultat= mysql_query("SELECT * FROM forum order by time desc");
if($resultat) {
echo "<table border='1'>
<tr>
<th> message </th>
<th> utilisateur </th>
<th> date </th>
</tr>";
while($ligne=mysql_fetch_assoc($resultat)) {
$nom = $ligne['reference'];
$urlask= mysql_query("SELECT * FROM user where nom='".$nom."'");
$correctrow=mysql_fetch_assoc($urlask);
$url = $correctrow['url'];
echo"<tr>";
echo"<td class='message'>" .$ligne['text']. "</td>";
echo"<td class='author'><a href= $url>".$ligne['reference']."</a></td>";
echo"<td class='time'>" .$ligne['time']. "</td>";
echo"</tr>";
}
echo"</table>";
}
else {
echo "<p>Erreur dans l’exécution de la requete.</p>";
echo "<p>Message de MySQL: ".mysql_error()."</p>";
}
mysql_close($con);
?>
其中我们用到相关的提交表单:
form_login.html //此为登陆页面
form_ajouterlogin.html //添加一个新用户页面
form_login.html内容:
<html>
<body>
<p>tapez votre nom et votre passzword<p>
<form action="login.php" method="post">
<p>username:<input type="text" name="username"/><p>
<p>password: <input type="text" name="password"/><p>
<input type="submit"/>
</form>
</body>
</html>
其中form_login.html中调用了 login.php进行对数据库的操作:
login.html内容:
<?php session_start();
$_SESSION['connecte']= false;
?>
<?php
$con = mysql_connect("mysql.infres.enst.fr:3307","toto55","toto55");
if(!$con) {
die ('Could not connect: ' .mysql_error());
}
if(!mysql_select_db("toto55",$con)) {
echo "<p>Desolé, accès à la base impossible</p>"; exit;
}
mysql_query("SET NAMES utf8"); /* Pour l’encodage */
$resultat= mysql_query("SELECT * FROM user");
if($resultat) {
while ($row = mysql_fetch_assoc($resultat)){
if ($row['nom']== $_POST[username] && $row['password']==$_POST[password]){
$_SESSION['connecte']= true;
$_SESSION['user']= $row['nom'];
header("Location: forum.php");
exit;
}
}
}
else {
session_destroy();
header("Location: form_login.html");
}
echo"<p><a href='forum.php'>Revenir à accueil</a></p>";
mysql_close($con);
?>
form_ajouterlogin.html:
<html>
<body>
<p>Donnez vos informations s'il vous plait.<p>
<form action="ajouterlogin.php" method="post">
<p>username*:<input type="text" name="newusername"/><p>
<p>password*: <input type="text" name="newpassword"/><p>
<p>email: <input type="text" value="parexeple@gmail.com" name="email"/><p>
<p>homepage: <input type="text" value="http://www.yahoo.fr" name="homepage"/><p>
<input type="submit"/>
</form>
</body>
</html>
其中form_ajouterlogin.html中调用了
ajouterlogin.php进行对数据库的操作:
ajouterlogin.html内容:
<?php session_start();?>
<?php
$con = mysql_connect("mysql.infres.enst.fr:3307","toto55","toto55");
if(!$con) {
die ('Could not connect: ' .mysql_error());
}
if(!mysql_select_db("toto55",$con)) {
echo "<p>Desolé, accès à la base impossible</p>"; exit;
}
mysql_query("SET NAMES utf8"); /* Pour l’encodage */
$sql="insert into user (nom,url,password,email) values ('$_POST[newusername]','$_POST[homepage]','$_POST[newpassword]','$_POST[email]')";
if (!mysql_query($sql,$con))
{
die('ERROR: ' .mysql_error());
}
echo "vous avez reussit d'ajouter un nouveau message";
$_SESSION['user']= $_POST[newusername];
$_SESSION['connecte']= true;
header("Location: forum.php");
exit;
mysql_close($con);
?>
关于在主页面中的nouveau_message.html 和deconnect.html内容:
nouveau_message.html:
<html>
<body>
<form action="insert.php" method="post">
<p><textarea name="text" cols="40" rows="20">mettez votre texte ici</textarea></p>
<input type="submit"/>
</form>
</body>
</html>
关于在nouveau_message.html页面中的insert.php内容:
<?php session_start();?>
<?php
$con = mysql_connect("mysql.infres.enst.fr:3307","toto55","toto55");
if(!$con) {
die ('Could not connect: ' .mysql_error());
}
if(!mysql_select_db("toto55",$con)) {
echo "<p>Desolé, accès à la base impossible</p>"; exit;
}
mysql_query("SET NAMES utf8"); /* Pour l’encodage */
$time=date("Y-m-d H-i-s",time());
$user=$_SESSION['user'];
$sql="insert into forum (text,reference,time) values ('$_POST[text]','$user','$time')";
if (!mysql_query($sql,$con))
{
die('ERROR: ' .mysql_error());
}
echo "vous avez reussit d'ajouter un nouveau message";
header("Location: forum.php");
exit;
mysql_close($con);
?>
deconnect.html内容很为简单,主要清空session,让用户重新登陆返回主页面:
deconnect.html内容:
<?php session_start();?>
<?php
session_destroy();
header("Location: forum.php");
?>
差点忘了,附上最为简单的css文件:
.message{color:red;font-size=200%;font-style:normal;}
.author{color:blue;}
.time{color:black;}
.bienvenue{font-style:italic;font-size=200%;}
好了,是不是很简单呢,以上亲测都是可以运行的,大家一起试试看吧,理解其中的form表单推送关系很为重要,同时对数据库的连接也可以加深理解。
Merci beaucoup ~
|