我一直试图让我的代码转换为PHP并运行PHP,并且一直试图弄清楚如何为我的表单设置mysqli它是我做过的第一个表单,任何人都可以帮忙出来mysqli和php的问题。当我在Dreamweaver中尝试PHP然后在chrome中加载页面时,它提供的是裸露的代码而不是网站,请帮助并且无论我做什么,我的注册按钮都不起作用。
<?php
$host_name = "localhost";
$u_name = "root";
$u_pass = "";
try {
$dbh = new PDO("mysql:host=$host_name;dbname=members", $u_name, $u_pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $ex) {
echo "Connection failed: " . $ex->getMessage();
}
$errors="";
if(isset($_POST['reg'])){
// check if fields are not empty
if(empty($_POST['email'])){
die("Enter email");
$errors++;
}else{
$email = $_POST['email'];
//verify email here
}
if(empty($_POST['password'])){
die("Enter password");
$errors++;
}else{
$password = $_POST['password'];
$hash = password_hash($password,PASSWORD_DEFAULT);// hashing password
}
if($errors<=0){
// No errors insert to the db
$stmt = $dbh->prepare("INSERT into users (userID,fname,lname,em,pswd,dob,sex) VALUES('userID','fname','lname','em','pswd','dob','sex')");
$stmt->execute(array($userid,$fname,lname,$em,$pswd,$dob,$sex));
echo "success";
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Trenndle</title>
<link type="text/css" rel="stylesheet" href="css/login.css" />
</head>
<body>
<div class="header">
<h1>Trenndle</h1>
</div>
<div>
<iframe width="50%" height="450" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/215699122& auto_play=true;"></iframe>
</div>
<div id="form">
<form action="#" method="post">
<table>
<td>
<tr>
<td><input name="fname" type="text" style="width:135px;" placeholder="First Name" /><input name="lname" type="text" style="width:135px;" placeholder="Last Name" /></td>
</tr>
<tr>
<td><input name="userID" type="text" style="width:278px;" placeholder="Username" /></td>
</tr>
<tr>
<td><input name="em" type="text" style="width:278px;" placeholder="Email" /></td>
</tr>
<tr>
<td><input name="em2" type="text" style="width:278px;" placeholder="Re-Type Email" /></td>
</tr>
<tr>
<td><input name="pswd" type="password" style="width:278px;" placeholder="Password" /><<br /></td>
</tr>
<tr>
<td><input name="pswd2" type="password" style="width:278px;" placeholder="Re-Type Password" /></td>
</tr>
<tr>
<td name="dob"><br />
<?php
// ======================Months drop Down=============
$month_array = array(
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
);
echo '<select name="birthmonth">';
foreach ($month_array as $months) {
echo '<option value="' . $months . '">' . $months . '</option>';
}
echo '</select>';
//End Months dropdown
//===============Days Dropdown=================
$dates = range(1, 31);
echo '<select name="day">';
foreach ($dates as $birthday) {
echo '<option value="' . $birthday . '">' . $birthday . '</option>';
}
echo '</select>';
//Start years Dropdown
$yearArray = array_combine(range(date("Y"), 1960), range(date("Y"), 1960));
echo "<select>";
foreach ($yearArray as $bithyears) {
echo "<option value=\"" . $bithyears . "\">" . $bithyears . "</option>";
}
?>
</td>
</tr>
<tr>
<td>
<input type="radio" name="sex" value="1" />
<label style="color: white;">Female</label>
<input type="radio" name="sex" value="2" />
<label style="color: white;">Male</label>
</td>
</tr>
<td>
<p style="color: whitesmoke;">By clicking Sign Up, you agree to our Terms <br/> and that you have read our Data Policy, including our Cookie Use.</p>
<hr><br/>
<button name="reg" type="submit" style="width:200px; height:40px; font-weight:bold; background:rgba(0, 191, 255, 0.3); border-radius:10px; border:1px solid black; color:white; font-size:20px;">Register Now</button>
</td>
</td>
</table>
</form>
</div>
</body>
</html>
答案 0 :(得分:0)
您的计算机上似乎没有设置php环境。 要使用mysql运行php,首先需要下载一台服务器才能在你的机器上本地使用,它可以是xampp / wampp / easyPhpDevserver中的任何一个以及其他我没有提及你喜欢的任何一个。
在这个答案中我将使用Xampp,你可以在一次安装中下载Xampp here这个xampp附带apache,mysql和php。
注意:我正在使用Windows环境
步骤1:在上面的链接上下载Xampp。 步骤2:运行.exe文件并安装xampp。 第3步:您将提示您选择要安装的组件,(在这种情况下,我们需要php和mysql)请选择那些。然后单击“下一步”。
步骤4:选择要安装XAMPP的文件夹。此文件夹将保存所有Web应用程序文件,因此请确保选择具有足够空间的驱动器。通常是C盘。
安装现在将处理,你会得到一些恼人的促销BitNami,一个服务器软件的应用程序商店。取消选中“详细了解BitNami for XAMPP”复选框,除非您真的喜欢收到促销邮件。
第5步:安装现已完成!选择“是否要立即启动控制面板?”复选框以打开XAMPP控制面板。
步骤6:在Xampp控制面板上单击启动apache以及mysql(稍后我们将在回答上述问题时使用此功能)
步骤7:让我们测试我们的服务器是否被读取,现在转到C:\ xampp / htdocs 插入htdocs创建一个目录,按照你想要的名字命名,我将命名我的测试。 现在我们的目录是C:\ xampp / htdocs / test
步骤8:插入测试创建名为index.php的文件
步骤9:使用文本编辑器/ IDE打开index.php文件,我使用的是phpstorm,所以在你的情况下是dreameaver
步骤10:现在插入文件类型以下
<?php
echo "My First php example";
?>
然后保存。
现在最后一步是检查这是否正在运行
打开网络浏览器并输入:localhost / test /或127.0.0.1/test /
您应该看到以下屏幕
如果你在浏览器上看到这个文字:My First php example
祝贺您已成功使用php安装xampp并创建了第一个php基本程序。
现在是mysql
在第6步启动mysql服务,现在让我们创建第一个数据库,在这个例子中我们将使用PDO。
现在打开一个新标签并输入localhost / phpmyadmin,这是我们要创建数据库的地方。您应该看到以下屏幕
您的数据库不会太多,我们将使用默认用户的详细信息根。
现在点击SQL标签
在显示的块上键入以下sql
create database firstdb;
然后点击右下方的 go ,然后刷新页面时应创建数据库,您将在左侧看到数据库。
现在我们有了一个数据库,我们需要一个表来保存您的用户数据。
现在再次单击SQL选项卡,然后键入以下内容:
use firstdb;
create table users(
userID int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
firstname varchar(255) NOT NULL,
lastname varchar(255) NOT NULL,
DOB date not null,
gender enum('M','F') NOT NULL,
email varchar(255) NOT NULL,
password varchar(255) NOT NULL
)engine=innodb;
然后输入go,恭喜您已成功创建第一个表格。
现在让我们使用php连接到数据库并回答上面的问题。
要连接到我们的数据库:返回我们的index.php文件并删除我们在步骤9/10中写的内容
然后编写此代码
<?php
$host_name = "localhost";
$u_name = "root";
$u_pass = "";
try {
$dbh = new PDO("mysql:host=$host_name;dbname=firstdb", $u_name, $u_pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connected :)";
}
catch (PDOException $ex) {
echo "Connection failed: " . $ex->getMessage();
}
?>
这是使用PDO在数据库上连接的代码,现在我们已成功连接到数据库,现在让我们在你的表单上工作,它太长了我会把它缩短。我只会告诉你使用php和html制作出生日期下拉的简单快捷方法。
<?php
// ======================Months drop Down=============
$month_array = array(
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
);
echo '<select name="birthmonth">';
foreach ($month_array as $months) {
echo '<option value="' . $months . '">' . $months . '</option>';
}
echo '</select>';
//End Months dropdown
//===============Days Dropdown=================
$dates = range(1, 31);
echo '<select name="day">';
foreach ($dates as $birthday) {
echo '<option value="' . $birthday . '">' . $birthday . '</option>';
}
echo '</select>';
//Start years Dropdown
$yearArray = array_combine(range(date("Y"), 1960), range(date("Y"), 1960));
echo "<select>";
foreach ($yearArray as $bithyears) {
echo "<option value=\"" . $bithyears . "\">" . $bithyears . "</option>";
}
?>
输出选择下拉列表,非常简单,而不是您拥有的那么长的HTML代码。
正如我上面所说的那样,我不会为你做完整的表格,因为它很长,我有其他的工作,
现在让我们将表单中的数据保存到我们数据库中的用户表中。
我只需在数据库中插入电子邮件和密码,以节省时间,
我们的代码现在看起来像:
<?php
$host_name = "localhost";
$u_name = "root";
$u_pass = "";
try {
$dbh = new PDO("mysql:host=$host_name;dbname=firstdb", $u_name, $u_pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $ex) {
echo "Connection failed: " . $ex->getMessage();
}
$errors="";
if(isset($_POST['register'])){
// check if fields are not empty
if(empty($_POST['email'])){
die("Eter email");
$errors++;
}else{
$email = $_POST['email'];
//verify email here
}
if(empty($_POST['password'])){
die("Enter password");
$errors++;
}else{
$password = $_POST['password'];
$hash = password_hash($password,PASSWORD_DEFAULT);// hashing password
}
if($errors<=0){
// No errors insert to the db
$stmt = $dbh->prepare("INSERT into users (email,password) VALUES(?,?)");
$stmt->execute(array($email,$password));
echo "success";
}
}
?>
现在我们已经成功地在数据库中插入了我们的第一个信息,用户现已注册,我们需要立即登录用户
我们的简单登录脚本:
<?php
ob_start();
session_start();
$host_name = "localhost";
$u_name = "root";
$u_pass = "";
try {
$dbh = new PDO("mysql:host=$host_name;dbname=firstdb", $u_name, $u_pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $ex) {
echo "Connection failed: " . $ex->getMessage();
}
if (isset($_SESSION['user'])):
header("Location:dashboard");
endif;
if (isset($_POST['login'])) {
if (empty($_POST['uname']) || empty($_POST['pass'])) {
$loginError = "Enter username and Password";
} else {
$username = userInput($_POST['uname']);
$password = userInput($_POST['pass']);
try {
$stmt = $dbh->prepare("SELECT
userID,
email,
password
FROM
users
Where
email=?
");
$stmt->bindValue(1, $username);
$stmt->execute();
$results = $stmt->fetchall(PDO::FETCH_ASSOC);
if (count($results > 1)) {
foreach ($results as $row) {
if (password_verify($password, $row['admin_password'])) {
echo "Login Succcess!! Redirecting...";
$_SESSION['user'] = $row['userID'];
header("refresh:10; url=dashboard");
} else {
die("username and password does not match");
}
}
}
}
catch (Exception $e) {
error_log($e);
}
}
}
ob_end_clean();
上面是我们的登录脚本,首先我们检查用户是否登录后如果他们登录我们将他们带回仪表板。或者显示登录页面。
我希望这会帮助你获得一两件事,我建议你看看:
php简介 - &gt;&gt;&gt; Click here
Php表格处理 - &gt;&gt;&gt; Here
谢谢,随意给我买啤酒。