사용자가 로그인하거나 등록하여 독점적으로 통신 할 수있는 간단한 메시징 응용 프로그램을 만들고 있습니다. 사용자 이름과 암호는 .txt (모든 사용자를 저장하는) 줄에 저장되며 대화는 고유 한 사용자 이름에 한 줄씩 저장됩니다.Html 폼 들여 쓰기
사용자가 등록하거나 로그인하면 양식에서 벗어나 대화를 표시하는 독립형 텍스트 영역으로 리디렉션하십시오. 그러나, 사용자를 리다이렉션 할 때 우리의 대화 내용을 표시 할 수 있도록 사용자 이름 (usrNm)을 다음 php 파일로 보내는 방법을 모르겠습니다 (이 파일은 사용자 이름 임). 난 포함 (index.php) 아무 소용 시도했다. html을 전달하지 않고 index.php도 포함시키는 방법. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
내가 ''
대 ""
를 사용하는 일반 규칙에 대한 혼란도 해요, ""
변수는 내부와 다른 모든 것들에 대한 ''
작품이 될 수 있습니다 생각? 나는 또한 <input type="text"
html로 들었다. 텍스트가 따옴표로 묶여 있어야하며, 따옴표없이 작동하면 어떤 이점이 있습니까? 만약 당신이 나를 계몽하고 싶다면 또 하나의 미니 질문이 30 행에있다. 모든 조언은 대단히 감사합니다!
//index.php
<?php
echo "Login or register. ";
//Ensures form exists and instantiates neccesary variables
if (isset($_POST['usrNm'],$_POST['pass'],$_POST['passConf'])) {
$usrNm = $_POST['usrNm'];
$pass = $_POST['pass'];
$passConf = $_POST['passConf'];
$rec = file('userPass.txt');
//Parses username from users txt file
function usrName($indx){
global $rec;
$usrName = substr($rec[$indx], 0, stripos($rec[$indx], ' '));
return $usrName;
}
//Parses password from users txt file
function passWrd($indx){
global $rec;
$passWrd = trim(substr($rec[$indx], stripos($rec[$indx], ' ')));
return $passWrd;
}
//Attempts to log user in
if(!empty($usrNm)&&!empty($pass)&&empty($passConf)) {
for($i=0;$i<count($rec);$i++) {
//Logs user in
if (($usrNm==usrName($i))&&($pass==passWrd($i))) {
//Outputs admin screen
if ($usrNm=='rich') {
for ($x=1; $x<count($rec); $x++) {
//How to evaluate usrName($x) between link tags?
$usrNameLink = usrName($x);
echo "<a href='$com.php'>$usrNameLink</a> ";
}
break;
}
else header('Location: com.php');
}
//Wrong password
elseif (($usrNm==usrName($i))&&($pass!=passWrd($i))) {
echo 'Wrong password.';
break;
}
//Username doesn't exist
elseif (($i==count($rec)-1)&&($usrNm!=usrName($i))) {
echo 'Username doesn\'t exist.';
}
}
}
//Attempts to register user.
elseif (!empty($usrNm)&&!empty($pass)&&!empty($passConf)) {
for($i=0;$i<count($rec);$i++) {
//Username taken
if ($usrNm==usrName($i)) {
echo 'Username taken.';
break;
}
//Registers user: updates user txt file and creates txt file that saves correspondence between the user and me
elseif (($i==count($rec)-1)&&($usrNm!=usrName($i))&&($pass==$passConf)) {
$handle = fopen('userPass.txt', 'a');
$handle2 = fopen("$usrNm.txt", 'a');
fwrite($handle, $usrNm.' '.$pass."\r\n");
fwrite($handle2, 'Richard: Here you can send me messages.');
fclose($handle);
fclose($handle2);
header('Location: com.php');
}
//Passwords don't match
elseif (($i==count($rec)-1)&&($usrNm!=usrName($i))&&($pass!=$passConf)) {
echo 'Passwords don\'t match.';
}
}
}
//User didn't fill in the password field
else{echo 'Fill in the required fields.';}
}
?>
<form action="index.php" method="post">
Username:<input name="usrNm" type="text"></input><br>
Password:<input name="pass" type="password"></input><br>
Confirm Password (only for registration):<input name="passConf" type="password"></input><br>
<input name="submit" type="submit"></input>
</form>
//com.php
<?php
include('index.php');
if (isset($_POST['msg'])) {
if (!empty($_POST['msg'])) {
echo $usrNm;
}
}
?>
Welcome!
<form action="com.php" method="post">
<textarea name="msg" cols="64" rows="4" type="text"></textarea><br>
<input name="send" type="submit"></input>
</form>
정말 고마워요! 나는 일하게 될거야. – user1656125
이 답변이 만족 스러우면 아래쪽 화살표 밑에있는 체크 표시를 클릭하여 동의하십시오. – Daedalus