PHP fgetcsv未将第一行放入数组 #设置页面标题和显示标题部分。 $page_title='寄存器'; include('includes/header.html'); #检查提交的表格。 如果($\u服务器['REQUEST\u METHOD']='POST') { $csv=array(); $myfile=fopen(“database.csv”,“r”)或die(“无法打开文件!”); 而(!feof($myfile)) { $csv[]=fgetcsv($myfile); } fclose($myfile); #初始化错误数组。 $errors=array(); #检查电子邮件地址: 如果(空($_POST['email'])) { $errors[]=“输入您的电子邮件地址”; } #检查密码和匹配的输入密码。 如果(!空($_POST['pass1'])) { 如果($邮政['pass1']!=$邮政['pass2']) { $errors[]=“密码不匹配”; } } 其他的 { $errors[]=“输入密码”; } #检查电子邮件地址是否已注册。 if(空($errors)) { $email=$_POST['email']; foreach($csv作为$value) { 如果($value[0]=$email) { $errors[]='电子邮件地址已注册。 '; } } } #成功注册后,用户将插入“用户”数据库表。 if(空($errors)) { $myfile=fopen(“database.csv”、“a”)或 死亡(“无法打开文件!”); $email=$_POST['email']; $password=$_POST['pass1']; $salt=“面包”; $hashed_password=crypt($password,$salt); $guesses=0; $last_login=date('YmdHis'); $values=array($email、$hash\u password、$guesss、$last\u login); fputcsv($myfile,$value); echo'已注册!
您现在已注册。 '; #显示页脚部分并退出脚本: include('includes/footer.html'); fclose($myfile); 退出(); } #或报告错误。 其他的 { echo'错误!PHP fgetcsv未将第一行放入数组 #设置页面标题和显示标题部分。 $page_title='寄存器'; include('includes/header.html'); #检查提交的表格。 如果($\u服务器['REQUEST\u METHOD']='POST') { $csv=array(); $myfile=fopen(“database.csv”,“r”)或die(“无法打开文件!”); 而(!feof($myfile)) { $csv[]=fgetcsv($myfile); } fclose($myfile); #初始化错误数组。 $errors=array(); #检查电子邮件地址: 如果(空($_POST['email'])) { $errors[]=“输入您的电子邮件地址”; } #检查密码和匹配的输入密码。 如果(!空($_POST['pass1'])) { 如果($邮政['pass1']!=$邮政['pass2']) { $errors[]=“密码不匹配”; } } 其他的 { $errors[]=“输入密码”; } #检查电子邮件地址是否已注册。 if(空($errors)) { $email=$_POST['email']; foreach($csv作为$value) { 如果($value[0]=$email) { $errors[]='电子邮件地址已注册。 '; } } } #成功注册后,用户将插入“用户”数据库表。 if(空($errors)) { $myfile=fopen(“database.csv”、“a”)或 死亡(“无法打开文件!”); $email=$_POST['email']; $password=$_POST['pass1']; $salt=“面包”; $hashed_password=crypt($password,$salt); $guesses=0; $last_login=date('YmdHis'); $values=array($email、$hash\u password、$guesss、$last\u login); fputcsv($myfile,$value); echo'已注册!,php,Php,您现在已注册。 '; #显示页脚部分并退出脚本: include('includes/footer.html'); fclose($myfile); 退出(); } #或报告错误。 其他的 { echo'错误!以下错误 发生: ",; foreach($msg错误){echo“-$msg”;} echo“请再试一次。”; } } 如果电子邮件位于数据库的第一行中,则不起作用,但在后续行中则为ok 我添加了who代码,以防出现某种逻辑错误,但不确定可能是什么 如果有人能发现任何东西,请告诉我
以下错误
发生:
",;
foreach($msg错误){echo“-$msg
”;}
echo“请再试一次。
不确定是否与fgetcvs和fputcvs函数有关?先生,我测试过,它工作正常,没有问题。你可以用这种方式展示
# Set page title and display header section.
$page_title = 'Register' ;
include ( 'includes/header.html' ) ;
# Check form submitted.
if ($_SERVER['REQUEST_METHOD']=='POST')
{
$csv = array();
$myfile = fopen("database.csv", "r") or die("Unable to open file!");
while (!feof($myfile))
{
$csv[] = fgetcsv($myfile);
}
fclose($myfile);
# Initialize an error array.
$errors = array();
# Check for an email address:
if(empty($_POST['email']))
{
$errors[] = 'Enter your email address.';
}
# Check for a password and matching input passwords.
if (!empty($_POST['pass1']))
{
if ($_POST['pass1']!=$_POST['pass2'])
{
$errors[]='Passwords do not match.';
}
}
else
{
$errors[]='Enter your password.';
}
# Check if email address already registered.
if(empty($errors))
{
$email = $_POST['email'];
foreach($csv as $value)
{
if($value[0] == $email)
{
$errors[] = 'Email address already registered.
<a href="login.php">Login</a>';
}
}
}
# On success register user inserting into 'users' database table.
if ( empty( $errors ) )
{
$myfile = fopen("database.csv", "a") or
die("Unable to open file!");
$email = $_POST['email'];
$password = $_POST['pass1'];
$salt = "bread";
$hashed_password = crypt($password,$salt);
$guesses=0;
$last_login = date('YmdHis');
$values = array($email,$hashed_password,$guesses,$last_login);
fputcsv($myfile, $values);
echo '<h1>Registered!</h1><p>You are now registered.</p><p>
<a href="login.php">Login</a></p>';
# Display footer section and quit script:
include ('includes/footer.html');
fclose($myfile);
exit();
}
# Or report errors.
else
{
echo '<h1>Error!</h1><p id="err_msg">The following error(s)
occurred:
<br>' ;
foreach ( $errors as $msg ){ echo " - $msg<br>" ; }
echo 'Please try again.</p>';
}
}
foreach($csv作为$value)
{
echo$value[0];
如果($value[0]=$email)
{
$errors[]=“电子邮件地址已注册。”;
}
}
与您的问题无关,但您确实应该为此使用数据库。能否添加数据库.csv的示例?文件中每行的格式:电子邮件,密码规范的一部分是使用平面文件而不是数据库我相信问题出在database.csv文件中,无法再现csv的代码和给定格式的问题。当为空时:数组(大小=1)0=>array(大小=1)0=>string“”(长度=3)在第一个条目之后:数组(大小=2)0=>array(大小=4)0=>string'test@domain.com'(长度=18)1=>字符串'bruv7wxzBISVw'(长度=13)1=>boolean False它不匹配test@domain.com,如果我尝试注册,它将在第二行再次注册,但从第二行开始工作确定,正确匹配
foreach($csv as $value)
{
echo $value[0];
if($value[0] == $email)
{
$errors[] = 'Email address already registered. <a
href="login.php">Login</a>';
}
}