(更新回覆一下)
1.php最好包在body中,
回覆:是這樣改嗎?
2.(1) 建議你留意一下 Coding Style,還有 html 規範。
(2) 網頁原始碼建議直接貼上來,不要用截圖。MySql 也是不要用截圖,改匯出成 .sql
檔案貼上來。
回覆:第一點:我有點不太清楚是什麼意思
第二點:的話我有匯出檔案但在這我不太清楚怎麼附上來。
3.(1)IDE建議選用Sublime Text,裝個phpfmt,可以有效的對齊你的代碼
(2)查詢密碼的時候不需要查出所有紀錄再做匹配,可以直接"select * from login
where id = $id and pwd = $pwd"
(3)能打開login.php,說明伺服器沒有問題,出問題的應該是代碼,看上去像是數據庫沒有紀
錄或者數據庫連接失敗導致的,MAMP 基礎版默認的MYSQL端口是8889,不知道你有沒有更
換,如果沒有更換,建議更換一下,具體見圖片,如果不想改的話,可以修改第21
行:mysql_connect('localhost:8889','root','root');
(4)建議打開PHP的錯誤日誌,方便Debug,具體不贅述
回覆:第一點:我有安裝了phpfmt了,但實體上我不太清楚怎麼使用...
第二點:是這樣修改嗎?
第三點:我有修改了port了,但是好像還是沒有解決
第四點:是這裡嗎?
以上謝謝各位大大的回覆,我會盡我所能嘗試。因為本身有點菜,所以能理解的不太多...
我是學校專題製作,以下東西在windows底下都可以正常運作。但是本身服役的筆電是Mac,所以想嘗試把東西放在Mac底下使用。
我的問題是以下:
我使用的後端是MAMP(版本:6.3)
這是我前段的樣子,問題在是我右下的網頁。
我有打php的程式在網頁底下,但是無法連接到我的php
我資料庫也有我放的資料庫跟表在系統裡面
1.IDE建議選用Sublime Text,裝個phpfmt,可以有效的對齊你的代碼
2.查詢密碼的時候不需要查出所有紀錄再做匹配,可以直接"select * from login where id = $id and pwd = $pwd"
3.能打開login.php,說明伺服器沒有問題,出問題的應該是代碼,看上去像是數據庫沒有紀錄或者數據庫連接失敗導致的,MAMP 基礎版默認的MYSQL端口是8889,不知道你有沒有更換,如果沒有更換,建議更換一下,具體見圖片,如果不想改的話,可以修改第21行:mysql_connect('localhost:8889','root','root');
4.建議打開PHP的錯誤日誌,方便Debug,具體不贅述
3.(1)IDE建議選用Sublime Text,裝個phpfmt,可以有效的對齊你的代碼
(2)查詢密碼的時候不需要查出所有紀錄再做匹配,可以直接"select * from login
where id = $id and pwd = $pwd"
(3)能打開login.php,說明伺服器沒有問題,出問題的應該是代碼,看上去像是數據庫沒有紀
錄或者數據庫連接失敗導致的,MAMP 基礎版默認的MYSQL端口是8889,不知道你有沒有更
換,如果沒有更換,建議更換一下,具體見圖片,如果不想改的話,可以修改第21
行:mysql_connect('localhost:8889','root','root');
(4)建議打開PHP的錯誤日誌,方便Debug,具體不贅述
回覆:第一點:我有安裝了phpfmt了,但實體上我不太清楚怎麼使用...
第二點:是這樣修改嗎?
第三點:我有修改了port了,但是好像還是沒有解決
第四點:是這裡嗎?
你可以試著這樣理解:html 的語法是被制定出來的,隨著時代的演進,html 可能也會有所變動,因此會有許多不同的「版本」。目前最新也是最流行的是 html 5(html 第五版)。
可以參考: html5 vs html4
建議你遵循 html 已經制定好的語法規範來撰寫網頁,雖然很多時候不按照語法規範來寫網頁,網頁還是會正常呈現,但是事後卻常常衍生出更多問題,因此建議養成遵循既定規範來寫 html。甚至是 css、JavaScript、php 等都有各自的語法規範,因此建議你都可以找時間了解看看。
舉個例子來說好了,以下是一個遵循 html 5 規範的網頁基本要有的東西:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>首頁</title>
</head>
<body>
<p>
哈囉,世界<br />
世界,哈囉
</p>
</body>
</html>
既然已經把資料庫的東西匯出成 .sql 檔案,你可以傳到雲端再放分享連結到這邊來。
也可以選擇把 .sql 檔案中的 SQL syntax 直接複製貼上到這邊,但是別忘了放到程式碼的區域。
html 規範
我會在花時間了解看看!!
謝謝~~
MySQL 資料庫匯出
雲端:
https://drive.google.com/file/d/1zn4UkhjPvxN3liUrdt-NTva2wlQm347s/view?usp=sharing
.sql 檔案中的 SQL syntax:
-- phpMyAdmin SQL Dump
-- version 2.11.0
-- http://www.phpmyadmin.net
--
-- 主機: localhost
-- 建立日期: May 14, 2021, 08:41 AM
-- 伺服器版本: 5.0.45
-- PHP 版本: 5.2.4
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 資料庫: `infonet`
--
CREATE DATABASE `infonet` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `infonet`;
-- --------------------------------------------------------
--
-- 資料表格式: `login`
--
CREATE TABLE `login` (
`id` varchar(12) NOT NULL,
`pwd` varchar(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- 列出以下資料庫的數據: `login`
--
INSERT INTO `login` (`id`, `pwd`) VALUES
('admin', '123123'),
('root', 'root'),
('123', '123');
-- --------------------------------------------------------
不好意思再麻煩了~~
所以你之前發問的問題還沒解決嗎?
如果還沒的話,你網頁的 code 再貼一下吧!
對的
網頁的 code:
<html>
<meta charset="utf-8">
<body bgcolor=#8C4ABC text=#5A2F7A>
<font size = +3>
<marquee behavior=alternate width=800> 即時資訊網登入系統 </marquee>
</font>
<form method ="post" action=""><br>
帳號:<br>
<input type = "text" name = "id" size = "16" maxlength = "12"><br>
密碼:<br>
<input type = "password" name = "pwd" size = "16" maxlength = "8"><br>
<input type = "submit" name = "sub" value = "登入">
<input type = "submit" name = "sub" value = "註冊"><br>
</form>
<?php
error_reporting(0);
$id = $_POST['id'];
$pwd = $_POST['pwd'];
$sub = $_POST['sub'];
if ($sub == "註冊") {
echo "<script> window.open('register.php','rf') </script>";
}
mysql_connect('localhost:8889', 'root', 'root');
$r = mysql_db_query(infonet, "select * from login where id = $id and pwd = $pwd");
$test = 0;
while ($row = mysql_fetch_array($r)) {
if ($id == $row['id'] && $pwd == $row['pwd']) {
$test = 1;
}
}
if ($id == "" || $pwd == "") {
echo "請輸入帳號或密碼";
} elseif ($test > 0) {
echo "<script type='text/javascript'>";
echo "window.open('left1.html','lf')";
echo "</script>";
echo "<script type='text/javascript'>";
echo "window.open('0.html','rf')";
echo "</script>";
} else {
echo "帳號或密碼錯誤!!!";
}
?>
</body>
</html>
不好意思再麻煩了~~
對了,我剛剛有去看一下參考網頁的老師他YouTube影片。那個老師是用Visual Studio Code 在寫網頁的,那想問一下說那個App也可以使用後端嗎?我有看到他有插件有php的,那是一樣可以建後端的嗎?
hsingli0328
是的 vscode 也能做後端,基本上前後端都可以,支援很多程式語言,只是要裝一下擴充套件。我自己也是慣用 vscode 來寫網頁前後端!
有些部份是我看不太順眼,所以順手修正,並不是造成錯誤的主因(但是還是建議修正,理由就是之前提過的規範等)。
以下是修正後的 code,我實際測試是能夠執行的。
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>TEST</title>
</head>
<body bgcolor=#8C4ABC text=#5A2F7A>
<font size=+3>
<marquee behavior=alternate width=800> 即時資訊網登入系統 </marquee>
</font>
<form method="post" action="test.php">
<br>
帳號:<br>
<input type="text" name="username" size="16" maxlength="12"><br>
密碼:<br>
<input type="password" name="password" size="16" maxlength="8"><br>
<input type="submit" name="login" value="登入">
<input type="submit" name="signup" value="註冊"><br>
</form>
<?php
error_reporting(0);
$username = $_POST['username'];
$password = $_POST['password'];
if(isset($_POST['signup']))
{
echo '<script>alert("導向註冊頁面 ......");</script>';
// echo "<script> window.open('register.php', 'rf') </script>";
}
else if(isset($_POST['login']))
{
if($username == '' || $password == '')
{
echo "請輸入帳號或密碼";
}
else
{
$dbCon = mysqli_connect('hostname', 'username', 'password', 'infonet');
$dbResult = mysqli_query($dbCon, "SELECT * FROM login WHERE id = '$username' AND pwd = '$password';");
if(mysqli_num_rows($dbResult) > 0)
{
echo '<script>alert("登入成功 ......");</script>';
/* echo "<script type='text/javascript'>";
echo "window.open('left1.html','lf')";
echo "</script>";
echo "<script type='text/javascript'>";
echo "window.open('0.html','rf')";
echo "</script>"; */
}
else
echo "帳號或密碼錯誤!!!";
}
}
?>
</body>
</html>
基本上你的 code 有一些嚴重的問題導致你的程式不如你想的執行。
針對你的 code 有一些建議,你可以參考。