Имам два въпроса

human

Registered
Код:
<?php 
session_start(); 
header("Cache-control: private"); 
?> 
<html> 
<head> 
<title>Logged-in</title> 
</head> 
<body> 

<?php 
$datafile="data.txt"; //name of the data file 



if($_GET['action'] == "login") { 

if(!isset($_POST['username']) || !isset($_POST['password'])){ //this checks that all the fields are filled in 

error_message("Едно или повече полета остават да бъдат попълнени!", $username, $password); 
} 

$file = file($datafile); 
while(list(,$value) = each($file)) { 
list($fname,$femail,$furl,$fuser,$fpass,$blank) = explode('|', $value); 
if($_POST['username'] == $fuser && $_POST['password'] == $fpass){ 



$_SESSION['name'] = $fuser; 
$_SESSION['realname'] = $fname; 
$_SESSION['url'] = $furl; 
$_SESSION['email'] = $femail; //adds the users data to the php session
$_SESSION['pass'] = $fpass; 




//insert html for sucessfull log on here 
//you can use . $_SESSION['name'] . for username 
// replace name with realname, url, email to display different name 
?> 


<P> Здравей  <b><?php echo $username;?> </b>!<br>
Приятно сърфиране!<br> 
<a href="profile.php">Виж профила си</a><br> 
<a href="logout.php">Излез</a>




<?php 
$logink = true; 
} 
} 

if($logink !== true) { 
?> 
<form name="login" method="post" action="login.php?action=login"> 
<p> 
Логин име: <input type="text" name="username"> 
</p> 
<p> 
Парола: 
<input type="password" name="password"> 
</p> 
<p> 
<input type="submit" name="Submit" value="Влез"> 
</p> 
<p>Не си регистриран?<a href="signup.php">От тук</a></p> 

<b>Влизането неуспешно -грешно име или парола</b> 
<? 

} 
} elseif($_GET['action'] == 'change') { 

if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['url']) || !isset($_POST['newpass'])) { 

//this checks that all the fields are filled in 
?> 
all fields were not filled in 
<? 
} 

$file = file($datafile); 
while(list(,$value) = each($file)){ 
list($fname,$femail,$furl,$fuser,$fpass) = explode('|', $value); 
if($_SESSION['name'] == $fuser){ 

//opens data file to change it 

$oldword = "$fname|$femail|$furl|$fuser|$fpass|"; 
$newword = $_POST['name'] . '|' . $_POST['email'] . '|' . $_POST['url'] . '|' . $_SESSION['name'] . '|' . $_POST['newpass'] . '|'; 
$fp = fopen($datafile, 'r'); 
$data = fread($fp, filesize($datafile)); 
fclose($fp); 
$newdata = str_replace($oldword, $newword, $data); 
$fp = fopen($datafile, 'w'); 
fwrite($fp,$newdata) or die ('error writing'); 
fclose($fp); 

$succ = true; //data changed sucessfully 
?> 
<b>Всичко беше променено успешно моля <a href="user.php">влез</a></b> 
<? 




$_SESSION['name'] = FALSE; 
$_SESSION['pass'] = FALSE; 
$_SESSION['url'] = FALSE; 
$_SESSION['realname'] = FALSE; 
$_SESSION['email'] = FALSE; 

} 
} 
if($succ !== true) { 
?> 
<form name="login" method="post" action="login.php?action=login"> 
<p> 
Логин име: <input type="text" name="username"> 
</p> 
<p> 
Парола: 
<input type="password" name="password"> 
</p> 
<p> 
<input type="submit" name="Submit" value="Влез"> 
</p> 
<p>Не си регистриран?<a href="signup.php">От тук</a></p> 
<b>Влизането неупешно -грешно име или парола <b>
<? 
} 
} else { 
exit; 
} 

?>
Искам да попитам как да направа така, че да има форм за логин
Код:
<form name="login" method="post" action="login.php?action=login"> 
Логин име: <input type="text" name="username"><br> 
Парола: <input type="password" name="password"> <br>
<input type="submit" name="Submit" value="Влез">  <br>
Не си регистриран?<a href="signup.php">От тук</
и когато се логне успешно тази форм на да махне и да показва тази част
Код:
<P> Здравей  <b><?php echo $username;?> </b>!<br>
Приятно сърфиране!<br> 
<a href="profile.php">Виж профила си</a><br> 
<a href="logout.php">Излез</a>

Другият ми въпрос е как да използвам cookie в този код.Когато влезнеш в login.php(така се казва файла) не да показва форм-а, а да показва направо Здравей $username...
 
Пробвай така:


<?php
session_start();
header("Cache-control: private");
?>
<html>
<head>
<title>Logged-in</title>
</head>
<body>

<?php

if (!isset($HTTP_SESSION_VARS['name']))
{
echo '<form name="login" method="post" action="login.php?action=login">
Логин име: <input type="text" name="username"><br>
Парола: <input type="password" name="password"> <br>
<input type="submit" name="Submit" value="Влез"> <br>
Не си регистриран?<a href="signup.php">От тук</a>';
}





$datafile="data.txt"; //name of the data file



if($_GET['action'] == "login") {

if(!isset($_POST['username']) || !isset($_POST['password'])){ //this checks that all the fields are filled in

error_message("Едно или повече полета остават да бъдат попълнени!", $username, $password);
}

$file = file($datafile);
while(list(,$value) = each($file)) {
list($fname,$femail,$furl,$fuser,$fpass,$blank) = explode('|', $value);
if($_POST['username'] == $fuser && $_POST['password'] == $fpass){



$_SESSION['name'] = $fuser;
$_SESSION['realname'] = $fname;
$_SESSION['url'] = $furl;
$_SESSION['email'] = $femail; //adds the users data to the php session
$_SESSION['pass'] = $fpass;




//insert html for sucessfull log on here
//you can use . $_SESSION['name'] . for username
// replace name with realname, url, email to display different name
?>


<P> Здравей <b><?php echo $username;?> </b>!<br>
Приятно сърфиране!<br>
<a href="profile.php">Виж профила си</a><br>
<a href="logout.php">Излез</a>




<?php
$logink = true;
}
}

if($logink !== true) {
?>
<form name="login" method="post" action="login.php?action=login">
<p>
Логин име: <input type="text" name="username">
</p>
<p>
Парола:
<input type="password" name="password">
</p>
<p>
<input type="submit" name="Submit" value="Влез">
</p>
<p>Не си регистриран?<a href="signup.php">От тук</a></p>

<b>Влизането неуспешно -грешно име или парола</b>
<?

}
} elseif($_GET['action'] == 'change') {

if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['url']) || !isset($_POST['newpass'])) {

//this checks that all the fields are filled in
?>
all fields were not filled in
<?
}

$file = file($datafile);
while(list(,$value) = each($file)){
list($fname,$femail,$furl,$fuser,$fpass) = explode('|', $value);
if($_SESSION['name'] == $fuser){

//opens data file to change it

$oldword = "$fname|$femail|$furl|$fuser|$fpass|";
$newword = $_POST['name'] . '|' . $_POST['email'] . '|' . $_POST['url'] . '|' . $_SESSION['name'] . '|' . $_POST['newpass'] . '|';
$fp = fopen($datafile, 'r');
$data = fread($fp, filesize($datafile));
fclose($fp);
$newdata = str_replace($oldword, $newword, $data);
$fp = fopen($datafile, 'w');
fwrite($fp,$newdata) or die ('error writing');
fclose($fp);

$succ = true; //data changed sucessfully
?>
<b>Всичко беше променено успешно моля <a href="user.php">влез</a></b>
<?




$_SESSION['name'] = FALSE;
$_SESSION['pass'] = FALSE;
$_SESSION['url'] = FALSE;
$_SESSION['realname'] = FALSE;
$_SESSION['email'] = FALSE;

}
}
if($succ !== true) {
?>
<form name="login" method="post" action="login.php?action=login">
<p>
Логин име: <input type="text" name="username">
</p>
<p>
Парола:
<input type="password" name="password">
</p>
<p>
<input type="submit" name="Submit" value="Влез">
</p>
<p>Не си регистриран?<a href="signup.php">От тук</a></p>
<b>Влизането неупешно -грешно име или парола <b>
<?
}
} else {
exit;
}

?>
 
Я сложи това да видя!

<?php
session_start();
header("Cache-control: private");
?>
<html>
<head>
<title>Logged-in</title>
</head>
<body>

<?php

if (!isset($HTTP_SESSION_VARS['name']))
{
echo '<form name="login" method="post" action="login.php?action=login">
Логин име: <input type="text" name="username"><br>
Парола: <input type="password" name="password"> <br>
<input type="submit" name="Submit" value="Влез"> <br>
Не си регистриран?<a href="signup.php">От тук</a>';
}




$datafile="data.txt"; //name of the data file



if($_GET['action'] == "login") {

if(!isset($_POST['username']) || !isset($_POST['password'])){ //this checks that all the fields are filled in

error_message("Едно или повече полета остават да бъдат попълнени!", $username, $password);
}

$file = file($datafile);
while(list(,$value) = each($file)) {
list($fname,$femail,$furl,$fuser,$fpass,$blank) = explode('|', $value);
if($_POST['username'] == $fuser && $_POST['password'] == $fpass){



$_SESSION['name'] = $fuser;
$_SESSION['realname'] = $fname;
$_SESSION['url'] = $furl;
$_SESSION['email'] = $femail; //adds the users data to the php session
$_SESSION['pass'] = $fpass;




//insert html for sucessfull log on here
//you can use . $_SESSION['name'] . for username
// replace name with realname, url, email to display different name
?>


<P> Здравей <b><?php echo $username;?> </b>!<br>
Приятно сърфиране!<br>
<a href="profile.php">Виж профила си</a><br>
<a href="logout.php">Излез</a>




<?php
$logink = true;
}
}

if($logink !== true) {
?>
<form name="login" method="post" action="login.php?action=login">
<p>
Логин име: <input type="text" name="username">
</p>
<p>
Парола:
<input type="password" name="password">
</p>
<p>
<input type="submit" name="Submit" value="Влез">
</p>
<p>Не си регистриран?<a href="signup.php">От тук</a></p>

<b>Влизането неуспешно -грешно име или парола</b>
<?

}
} elseif($_GET['action'] == 'change') {

if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['url']) || !isset($_POST['newpass'])) {

//this checks that all the fields are filled in
?>
all fields were not filled in
<?
}

$file = file($datafile);
while(list(,$value) = each($file)){
list($fname,$femail,$furl,$fuser,$fpass) = explode('|', $value);
if($_SESSION['name'] == $fuser){

//opens data file to change it

$oldword = "$fname|$femail|$furl|$fuser|$fpass|";
$newword = $_POST['name'] . '|' . $_POST['email'] . '|' . $_POST['url'] . '|' . $_SESSION['name'] . '|' . $_POST['newpass'] . '|';
$fp = fopen($datafile, 'r');
$data = fread($fp, filesize($datafile));
fclose($fp);
$newdata = str_replace($oldword, $newword, $data);
$fp = fopen($datafile, 'w');
fwrite($fp,$newdata) or die ('error writing');
fclose($fp);

$succ = true; //data changed sucessfully
?>
<b>Всичко беше променено успешно моля <a href="user.php">влез</a></b>
<?




$_SESSION['name'] = FALSE;
$_SESSION['pass'] = FALSE;
$_SESSION['url'] = FALSE;
$_SESSION['realname'] = FALSE;
$_SESSION['email'] = FALSE;

}
}
if($succ !== true) {
?>
<b>Влизането неупешно -грешно име или парола <b>
<?
}
} else {
exit;
}

?>
 
http://bukhum6.freehostia.com/login/login.php

Warning: Cannot modify header information - headers already sent by (output started at /home/www/bukhum6.freehostia.com/login/login.php:11) in /home/www/bukhum6.freehostia.com/login/login.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /home/www/bukhum6.freehostia.com/login/login.php:11) in /home/www/bukhum6.freehostia.com/login/login.php on line 14
Искам да попитам тази грешка от FeeHostia ли си е или в мене е проблема.Ако проблема е в мене моля кажете как да го оправя.Кода за грешката е :
Код:
setcookie ("user", $username);
setcookie ("pass", $password);
 
Soul_Stealler каза:
setcookie трябва да е преди <head>

BTW ... не слагай паролата на потребителя в cookie !
Мерси,ще пробвам по-късно,а защо да не слагам,как ще я разпознае да се логне автоматично?
 
Код:
<?php 
session_start(); 
header("Cache-control: private"); 
?> 
<html> 
setcookie("user", $username);

<head> 
<title>Logged-in</title> 
</head> 
<body>
 
setcookie е php код :wink:
Код:
<?php
session_start();
header("Cache-control: private");
setcookie("user", $username);
?>
<html>


<head>
<title>Logged-in</title>
</head>
<body>
 
Soul_Stealler каза:
setcookie е php код :wink:
Код:
<?php
session_start();
header("Cache-control: private");
setcookie("user", $username);
?>
<html>


<head>
<title>Logged-in</title>
</head>
<body>

Да де :D .Ма как да направа да използва cookies,в смисъл когато излезне от сайта(примерно даде back) и после пак влезне в страницата да продължава да показва Здравей username а не да показва пак формата за логване.

admin с това да ми показва form-ата като вляза в файла се справих, като замених
Код:
error_message("Едно или повече полета остават да бъдат попълнени!", $username, $password); 
}
с
Код:
echo '<form name="login" method="post" action=""> 
Логин име: <input type="text" name="username"><br> 
Парола: <input type="password" name="password"> <br> 
<input type="submit" name="Submit" value="Влез"> <br> 
Не си регистриран?<a href="signup.php">От тук</a>'; 
}
, но сега когато вляза в файла показва форм-ата и после доста пъти
Здравей
Виж профила си...

ВИЖ.Как да направа да го показва само един път, и как да направа ако не е логнат да показва ГОСТ или IP-то му?
 
Админ добавих
Код:
if (!isset($HTTP_SESSION_VARS['name'])) 
{ 
echo '<form name="login" method="post" action=""> 
Логин име: <input type="text" name="username"><br> 
Парола: <input type="password" name="password"> <br> 
<input type="submit" name="Submit" value="Влез"> <br> 
Не си регистриран?<a href="signup.php">От тук</a>'; 
} 
else { 
echo "Здравей, <b>$username</b> !.<br>Приятно сърфиране!<a href='profile.php'>Виж профила си</a><br> 
<a href='logout.php'>Излез</a> "; 
}
.Помни че съм логнат и пише Здравей, $username, но ако излезна от логин.пхп и пак влезна в него пише Здравей, ! .Без $username. Също така с това имам и др проблем.Неще да излезне...
 

Back
Горе