私は非常によく似た質問をしました。私はそれが仕事をしたと思っていたが、それはしませんでした!私の人生のために、私はなぜこれがうまくいかないのか理解できません!私はユーザーがログインしているときにhtmlのフォームを消したい!これまでのところ私のコードをheres! (HTMLはloooongあるとして、私は文句を言わない、すべてのコードが表示されますが、私はこれは私がPHPの初期の初心者の段階で午前心に留めてください、releventだと思う):PHPとHTML - ユーザがログインしたときに<form>を隠す
:私は私のページの上部にこれを持っています
<?php
if (isset($_GET['showerror']))
$errorcode = $_GET['showerror'];
else
$errorcode = 0;
?>
は、次に試してみて、フォームを隠し、ユーザー名/パスワードが間違っている場合、エラーを表示するようにするコードは:
<?php
if ($errorcode == 1)
{
echo "<h3>Your login has failed. Try again</h3>";
}
?>
<?php
session_start();
if (!isset($_SESSION['is_logged_in'])) {
?>
<form id="login" name="login" action="logincheck.php" method="post">
User Name:
<input type="text" name="username"></input>
Password:
<input type="password" name="password"></input>
<input type="submit" name="submit" value="login"></input>
<a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a>
<br /><br /><br />
</form>
<?
}
?>
次のコードは、私がログイン資格情報が正しいかどうかを確認するために書いたもので、 index.htmlページに戻すには、errorcodeに値を割り当てて、資格情報が間違っている場合はエラーメッセージが表示され、正しい場合はフォームを非表示にするためにis_logged_inに値を割り当てます。両方の場合において、我々は、ディスプレイ上のフォームとeroorメッセージ、またはno形式およびメッセージなしで戻ったindex.htmlにうまくいけば、いずれかの電源が入っている:
<?php
session_start();
require "dbconn.php";
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM person WHERE name ='".$username."' AND password='".$password."'";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
if ($row != null)
{
$_SESSION['username'] = $row['name'];
header("Location: index.html?is_logged_in=1?");
exit();
}
else
{
header("Location: index.html?showerror=1");
exit();
}
?>
(dbconn.phpは、MySQLデータベースへの接続の私です)問題は、2つの結果のどちらも、エラーメッセージが表示されず、何も起こっていないので、私が間違っている場所を判断するのが難しいため、隠された形式が得られないということです。
何か助けてくれてありがとう...私はxamppを正しくセットアップして、たくさんのことを学ぶ準備をしていましたが、今ここ数時間良いところにいらしています!
EDIT:まだこのコードを編集しています!いくつかのコードを表示していませんでしたが、私は今完了したと思います!
とにかく、$ usernameと$ passwordにはmysql_real_escape_string()を使うべきです! – Dion
私はそれを見て、私は絶対初心者ですので、ハード暗号化や何も....基本的な機能を持つグリップにしようとしている! – Phil
私は怪しげに見える2つのことを見ていますが、私は答えを投稿したいとは思えません。とにかく:1)session_start()は常にすべてのPHPの最上位になければなりません - それが使用されている文書? 2) 'header(" Location:index.html?is_logged_in = 1? ");の2番目の疑問符も間違っているように見えます。あなたがこれら2つのことを変えるとどうなりますか? – davogotland