我非常喜欢html / php场景,但我已经在这里工作了好几个小时。我很难过。
我正在尝试连接到一个存储用户名和密码信息的sql数据库。我使用财富城进行托管,我已经使用他们的phpAdmin来设置所有必要的东西(db ,表等..)。
我正在使用Eclipse和Zend。我也在运行Sql Server和Apache 2.2。
我认为我的问题如下:
我有一个位于某个IP地址的数据库(远程fortunecity服务器),我正在本地服务器上测试我的项目。财富城提供两种不同的主机名,一种用于内部连接,另一种用于外部连接。我从每个人得到不同的结果:
如果我连接到内部网站它没有任何连接,我知道这是因为我的死亡声明。如果我连接到它连接的外部主机,但不允许我连接到数据库。 (查看代码下面的案例)
目前我的流程如下。 ( PLEASSSSE告诉我一个更好的方式,如果我做得不够,我每次都会感觉很脏!! )
请记住我的sql数据库位于网络上
可以这样做吗?在网上访问数据库时进行本地测试?
以下是代码:
<?php
if (!isset($_POST['username']) || !isset($_POST['password'])) {
header( "Location: http://localhost/index.php" );
}
elseif (empty($_POST['username']) || empty($_POST['password'])) {
header( "Location: http://localhost/index.php" );
}
else{
$user = addslashes($_POST['username']);
$pass = md5($_POST['password']);
$dbHost = "mysql3341.dotsterhost.com";
$dbUser = "*********";
$dbPass = "******";
$dbDatabase = "**********";
$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database.");
mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database.");
$result=mysql_query("select * from userInfo where username='$user' AND password='$pass'", $db);
$rowCheck = mysql_num_rows($result);
if($rowCheck > 0){
while($row = mysql_fetch_array($result)){
session_start();
session_register('username');
echo 'Success!';
header( "Location: checkLogin.php" );
}
}
else {
echo 'Incorrect login name or password. Please try again.';
}
}
?>
同样,我从来没有过去
案例:1 $db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database.");
案例:2 mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database.");
感谢您阅读我的小说!
答案 0 :(得分:1)
可以这样做吗?在网上访问数据库时进行本地测试?
是的,你可以,但要注意,如果你在数据库中存储任何敏感信息,你可能不希望通过网络发送未加密的数据。 (除非您通过VPN或其他类型的安全网络连接进行连接。)
通常您需要在本地机器上设置开发环境,或者您可以在Aptana(http://www.aptana.com/)等本地编辑文件,并自动将文件部署到服务器每次你保存。
此外,正如评论中所建议的那样,使用框架进行开发通常会为您提供功能强大的数据库,而无需自行重新构建。 (除非你想包装自己的!)