Къде е грешката при тази писана система за регистрация

WildFire

Registered
Warning: Cannot modify header information - headers already sent by (output started at C:\VertrigoServ\www\pisan\index.php:38) in C:\VertrigoServ\www\pisan\includes\login.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at C:\VertrigoServ\www\pisan\index.php:38) in C:\VertrigoServ\www\pisan\includes\login.php on line 21
Вие влязохте успешно!

Ето login.php

Код:
<?php

include "config.php";

if (!$log['username']) {

if (isset($_POST['login'])) {

$username = $_POST['username'];
$password = $_POST['password'];
$skype = $_POST['skype'];


$data = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'")); # Срързва се с БД и ...
if ($data['password'] != $password) { #..... Проверява дали въведента парола е вярна ....
echo "Грешно потребителско име или паролата! <meta http-equiv=\"Refresh\" content=\"1; URL=mesage.php\"/>"; # .... И ако не е вярна извежда това
} else {
$info = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'"));
setcookie("id", $info['id'],time()+(60*60*24*5), "/", ""); # Ако парота е варна се изпълнява това
setcookie("password", $info['password'],time()+(60*60*24*5), "/", ""); # ---//----
echo "Вие влязохте успешно! <meta http-equiv=\"Refresh\" content=\"1; URL=index.php\"/>"; # Ако всичко е ОК излиза това
}
} else {
# Форма за Влизане
echo "<center>
<link href='files/style2.css' rel='stylesheet' type='text/css' />
<form method='post'>
Потребител:<br><img src='img/users.png' width=16 height16 target='blank' ><input type='text' class='input' name='username'><br>
Парола:<br><img src='img/password.png' width=16 height16 target='blank' ><input type='password' class='input' name='password'><br>
<input type='submit' name='login' class='btnExample' value='Влез'>
</form></center>";
}
}
else {
$test=mysql_query("SELECT skype,avatar FROM users WHERE username='$log[username]'") or die(mysql_error());
$e=mysql_fetch_array($test);
$skypeone=$e['skype'];
if($skypeone==NULL){
$skaip = "Няма"; }
else {
$skaip = "<a rel=\"nofollow\" href=\"skype:$skypeone?userinfo\" ><img width=\"16\" height=\"16\" src=\"http://mystatus.skype.com/smallicon/$skypeone\" alt=\"Skype\" title=\"Skype\" border=\"0\" /></a>";
}
$avatarche=$e['avatar'];
echo "<div align='center'><img src='$avatarche'></div><br><center>Ти се логна като <b>".$log['username']."</b></center></br>";
echo "<br><center>Скайп: ".$skaip."</center></br>";
echo "<br><img src='img/Source.png' width=16 height16 target='blank' title='Изпрати Съобщение'><a class='btnExample' href='mesage.php'>Изпрати Съобщение</a></br>";
echo "<br><img src='img/exit.png' width=16 height16 target='blank' title='Вашите Съобщения'><a class='btnExample' href='box.php'>Вашите Съобщения</a></br>";
echo "<br><img src='img/Quit.png' width=16 height16 target='blank' title='Изход'><a class='btnExample' href='logout.php'>Изход</a></br>";
}
?>

Ето register.php
Код:
<?php

include('config.php');
echo '
   &nbsp<span style="color:gray">Отбелязаните в </span><font color="red">*</font><span style="color:gray"> полета са задължителни!</span><br><br>
<link href="files/style2.css" rel="stylesheet" type="text/css" />
<form action="" method="post">
<span style="color:gray">&nbspПотребител<font color="red">*</font>:</span><br> <img src="img/users.png">&nbsp<input type="text" class="input" name="username" />
<br />
<span style="color:gray">&nbspПарола<font color="red">*</font>:</span><br> <img src="img/password.png">&nbsp<input type="password" class="input" name="password" />
<br />
<span style="color:gray">&nbspИмейл адрес<font color="red">*</font>:</span><br> <img src="img/mail.png" width="16" height="16" >&nbsp<input type="email" class="input" name="email" />
<br />
<span style="color:gray">&nbspСкайп<font color="red">*</font>:</span><br> <img src="img/skype.png">&nbsp<input type="skype" class="input" name="skype" />
<br /><br>
     &nbsp<input type="submit" class="btnExample" name="submit" value="Регистрирай ме" />
</form>
';

if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$skype = $_POST['skype'];

mysql_query("INSERT INTO users (username, password, email, skype) VALUES ('$username', '$password', '$email', '$skype')") or die(mysql_error());
echo 'Поздравления. Вие се регистрирахте успешно!';
}else{
echo '';
}
?>

Според мене е нещо от VertrigoServ. А пък може и да е грешка. И може ли да ми го оправите да може да проверява за "парола от 6 до 32 символа, имейл да се пише например test@abv.bg, а не който каквото иска си пише.
 
Код:
<?php
session_start();
ob_start();
include "config.php";

if (!$log['username']) {

if (isset($_POST['login'])) {

$username = $_POST['username'];
$password = $_POST['password'];
$skype = $_POST['skype'];


$data = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'")); # Срързва се с БД и ...
if ($data['password'] != $password) { #..... Проверява дали въведента парола е вярна ....
echo "Грешно потребителско име или паролата! <meta http-equiv=\"Refresh\" content=\"1; URL=mesage.php\"/>"; # .... И ако не е вярна извежда това
} else {
$info = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'"));
setcookie("id", $info['id'],time()+(60*60*24*5), "/", ""); # Ако парота е варна се изпълнява това
setcookie("password", $info['password'],time()+(60*60*24*5), "/", ""); # ---//----
echo "Вие влязохте успешно! <meta http-equiv=\"Refresh\" content=\"1; URL=index.php\"/>"; # Ако всичко е ОК излиза това
}
} else {
# Форма за Влизане
echo "<center>
<link href='files/style2.css' rel='stylesheet' type='text/css' />
<form method='post'>
Потребител:<br><img src='img/users.png' width=16 height16 target='blank' ><input type='text' class='input' name='username'><br>
Парола:<br><img src='img/password.png' width=16 height16 target='blank' ><input type='password' class='input' name='password'><br>
<input type='submit' name='login' class='btnExample' value='Влез'>
</form></center>";
}
}
else {
$test=mysql_query("SELECT skype,avatar FROM users WHERE username='$log[username]'") or die(mysql_error());
$e=mysql_fetch_array($test);
$skypeone=$e['skype'];
if($skypeone==NULL){
$skaip = "Няма"; }
else {
$skaip = "<a rel=\"nofollow\" href=\"skype:$skypeone?userinfo\" ><img width=\"16\" height=\"16\" src=\"http://mystatus.skype.com/smallicon/$skypeone\" alt=\"Skype\" title=\"Skype\" border=\"0\" /></a>";
}
$avatarche=$e['avatar'];
echo "<div align='center'><img src='$avatarche'></div><br><center>Ти се логна като <b>".$log['username']."</b></center></br>";
echo "<br><center>Скайп: ".$skaip."</center></br>";
echo "<br><img src='img/Source.png' width=16 height16 target='blank' title='Изпрати Съобщение'><a class='btnExample' href='mesage.php'>Изпрати Съобщение</a></br>";
echo "<br><img src='img/exit.png' width=16 height16 target='blank' title='Вашите Съобщения'><a class='btnExample' href='box.php'>Вашите Съобщения</a></br>";
echo "<br><img src='img/Quit.png' width=16 height16 target='blank' title='Изход'><a class='btnExample' href='logout.php'>Изход</a></br>";
}
?>

Като гледай, session_start(); и ob_start(); да са на първите редове, както са сега, не трябва да има празни места или такива неща .. ПЪРВИТЕ РЕДОВЕ !
 
Сега дава и още една грешка логина :D Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\e107system\VertrigoServ\www\prikrepi\index.php:38) in D:\e107system\VertrigoServ\www\prikrepi\includes\login.php on line 3
Потребител:
 
Човек

session_start();
ob_start();



Тези две нещица трябва да седят веднага след <?php но <?php трябва да е на първият ред в самият текстов редактор,

session_start();
ob_start();

трябва да седят неотлъчно след <?php без празни редове, не да напишеш
Код:
<?php

session_start();
ob_start();

Трябва да е

Код:
<?
session_start();
ob_start();

Като това всичко става на първите редове на редактора, много е важно.. иначе ще ти дава грешка ..
 
Ама човек сега дава две грешки в логина :lol:. А пък при регистрацията не проверява дали информацията, която регистриращия се е попълнил
 
register.php
Код:
<?php
session_start();
ob_start();
include('config.php');
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$skype = $_POST['skype'];
if(empty($username)) {
$err_array['username']='Моля, попълнете полето!';
}
if(strlen($password)<6)
{
$err_array['password']='Кратка парола!';
}
if(strlen($password)>32) {
$err_array['password']='Дълга парола!';
}
if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $email))
{
$error_array['user_email']='Невалиден е-мейл!';
}
if(!count($error_array)>0)
{
mysql_query("INSERT INTO users (username, password, email, skype) VALUES ('$username', '$password', '$email', '$skype')") or die(mysql_error());
echo 'Поздравления. Вие се регистрирахте успешно!';
}
}
else {?>
   &nbsp<span style="color:gray">Отбелязаните в </span><font color="red">*</font><span style="color:gray"> полета са задължителни!</span><br><br>
<link href="files/style2.css" rel="stylesheet" type="text/css" />
<form action="" method="post">
<span style="color:gray">  Потребител<font color="red">*</font>:</span><br> <img src="img/users.png" alt="">&nbsp<input type="text" class="input" name="username" />
<?php
if($err_array['username']) {
    echo $err_array['username'];
}
?><br />
<span style="color:gray">  Парола<font color="red">*</font>:</span><br> <img src="img/password.png" alt="">&nbsp<input type="password" class="input" name="password" />
<?php
if($err_array['password']) {
    echo $err_array['password'];
}
?><br />
<span style="color:gray">  Имейл адрес<font color="red">*</font>:</span><br> <img src="img/mail.png" width="16" height="16" alt="">&nbsp<input type="email" class="input" name="email" />
<?php
if($err_array['email']) {
    echo $err_array['email'];
}
?><br />
<span style="color:gray">  Скайп<font color="red">*</font>:</span><br> <img src="img/skype.png" alt="">&nbsp<input type="skype" class="input" name="skype" />
<br /><br>
      <input type="submit" class="btnExample" name="submit" value="Регистрирай ме" />
</form>
<?php
}
?>
 
login на мен това ми дава на register.php като го замених

Код:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\e107system\VertrigoServ\www\prikrepi\register.php:2) in D:\e107system\VertrigoServ\www\prikrepi\register.php on line 45

Това сигурно е от vertrigo-то
 
kulov каза:
Човек

session_start();
ob_start();



Тези две нещица трябва да седят веднага след <?php но <?php трябва да е на първият ред в самият текстов редактор,

session_start();
ob_start();

трябва да седят неотлъчно след <?php без празни редове, не да напишеш
Код:
<?php

session_start();
ob_start();

Трябва да е

Код:
<?
session_start();
ob_start();

Като това всичко става на първите редове на редактора, много е важно.. иначе ще ти дава грешка ..
 
А я смени местата на session_start(); и ob_start(); :idea:
 
<?php
@session_start();
ob_start();
include "config.php";

if (!$log['username']) {

if (isset($_POST['login'])) {

$username = $_POST['username'];
$password = $_POST['password'];
$skype = $_POST['skype'];


$data = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'")); # Срързва се с БД и ...
if ($data['password'] != $password) { #..... Проверява дали въведента парола е вярна ....
echo "Грешно потребителско име или паролата! <meta http-equiv=\"Refresh\" content=\"1; URL=mesage.php\"/>"; # .... И ако не е вярна извежда това
} else {
$info = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'"));
setcookie("id", $info['id'],time()+(60*60*24*5), "/", ""); # Ако парота е варна се изпълнява това
setcookie("password", $info['password'],time()+(60*60*24*5), "/", ""); # ---//----
echo "Вие влязохте успешно! <meta http-equiv=\"Refresh\" content=\"1; URL=index.php\"/>"; # Ако всичко е ОК излиза това
}
} else {
# Форма за Влизане
echo "<center>
<link href='files/style2.css' rel='stylesheet' type='text/css' />
<form method='post'>
Потребител:<br><img src='img/users.png' width=16 height16 target='blank' ><input type='text' class='input' name='username'><br>
Парола:<br><img src='img/password.png' width=16 height16 target='blank' ><input type='password' class='input' name='password'><br>
<input type='submit' name='login' class='btnExample' value='Влез'>
</form></center>";
}
}
else {
$test=mysql_query("SELECT skype,avatar FROM users WHERE username='$log[username]'") or die(mysql_error());
$e=mysql_fetch_array($test);
$skypeone=$e['skype'];
if($skypeone==NULL){
$skaip = "Няма"; }
else {
$skaip = "<a rel=\"nofollow\" href=\"skype:$skypeone?userinfo\" ><img width=\"16\" height=\"16\" src=\"http://mystatus.skype.com/smallicon/$skypeone\" alt=\"Skype\" title=\"Skype\" border=\"0\" /></a>";
}
$avatarche=$e['avatar'];
echo "<div align='center'><img src='$avatarche'></div><br><center>Ти се логна като <b>".$log['username']."</b></center></br>";
echo "<br><center>Скайп: ".$skaip."</center></br>";
echo "<br><img src='img/Source.png' width=16 height16 target='blank' title='Изпрати Съобщение'><a class='btnExample' href='mesage.php'>Изпрати Съобщение</a></br>";
echo "<br><img src='img/exit.png' width=16 height16 target='blank' title='Вашите Съобщения'><a class='btnExample' href='box.php'>Вашите Съобщения</a></br>";
echo "<br><img src='img/Quit.png' width=16 height16 target='blank' title='Изход'><a class='btnExample' href='logout.php'>Изход</a></br>";
}
?>
Пробвай така :)
 
baso каза:
shashma88 каза:
Сложи едно @ пред session_start(); и ob_start(); :).

Така като гледаш на моя отговор от горе как е ;)

Не съм чел по-горните мнения :) Ако бачка точката за тебе, аз претенции нямам. :?:
 
shashma88 каза:
baso каза:
shashma88 каза:
Сложи едно @ пред session_start(); и ob_start(); :).

Така като гледаш на моя отговор от горе как е ;)

Не съм чел по-горните мнения :) Ако бачка точката за тебе, аз претенции нямам. :?:

Извинявам се ако се получи спам но искам да споделя на шамана че и на него точката да дадат мен това не ме интересува интересува ме само това да помогнем на потребителя :)
 
shashma88 каза:
baso каза:
shashma88 каза:
Сложи едно @ пред session_start(); и ob_start(); :).

Така като гледаш на моя отговор от горе как е ;)

Не съм чел по-горните мнения :) Ако бачка точката за тебе, аз претенции нямам. :?:


А наясно ли сте какво прави @ пред функция ? в този случай, просто ще отбегнете грешката, а тя ще си я има, просто няма да се показва. Братле, разбери, това session_start(); и ob_start(); трябва да седят плътно до лентата, тоест да няма празни места пред тях, да са веднага след <?php, МНОГО Е ВАЖНО, защото ти не го правиш, и за това имаш тази грешка .. Не знам как да го обясня по-ясно .. :idea:
 
kulov каза:
..... Братле, разбери, това session_start(); и ob_start(); трябва да седят плътно до лентата, тоест да няма празни места пред тях, да са веднага след <?php, МНОГО Е ВАЖНО, защото ти не го правиш, и за това имаш тази грешка .. Не знам как да го обясня по-ясно .. :idea:
Също така, много е важно и пред и след отварящите и затварящите php тагове да НЯМА празни места. (<?php , ?>)
 
Да така се оправи едната грешка остана само тази :)

Код:
Warning: Cannot modify header information - headers already sent by (output started at D:\e107system\VertrigoServ\www\prikrepi\index.php:38) in D:\e107system\VertrigoServ\www\prikrepi\includes\login.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at D:\e107system\VertrigoServ\www\prikrepi\index.php:38) in D:\e107system\VertrigoServ\www\prikrepi\includes\login.php on line 22
Вие влязохте успешно!
 
Я виш така
Код:
<?php
session_start();
ob_start();
include "config.php";

if (!$log['username']) {

if (isset($_POST['login'])) {

$username = $_POST['username'];
$password = $_POST['password'];
$skype = $_POST['skype'];


$data = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'")); # Срързва се с БД и ...
if ($data['password'] != $password) { #..... Проверява дали въведента парола е вярна ....
echo "Грешно потребителско име или паролата!"; # .... И ако не е вярна извежда това
header("location:mesage.php");
} else {
$info = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE username = '$username'"));
setcookie("id", $info['id'],time()+(60*60*24*5), "/", ""); # Ако парота е варна се изпълнява това
setcookie("password", $info['password'],time()+(60*60*24*5), "/", ""); # ---//----
echo "Вие влязохте успешно!"; # Ако всичко е ОК излиза това
header("location:index.php");
}
} else {
# Форма за Влизане
echo "<center>
<link href='files/style2.css' rel='stylesheet' type='text/css' />
<form method='post'>
Потребител:<br><img src='img/users.png' width=16 height16 target='blank' ><input type='text' class='input' name='username'><br>
Парола:<br><img src='img/password.png' width=16 height16 target='blank' ><input type='password' class='input' name='password'><br>
<input type='submit' name='login' class='btnExample' value='Влез'>
</form></center>";
}
}
else {
$test=mysql_query("SELECT skype,avatar FROM users WHERE username='$log[username]'") or die(mysql_error());
$e=mysql_fetch_array($test);
$skypeone=$e['skype'];
if($skypeone==NULL){
$skaip = "Няма"; }
else {
$skaip = "<a rel=\"nofollow\" href=\"skype:$skypeone?userinfo\" ><img width=\"16\" height=\"16\" src=\"http://mystatus.skype.com/smallicon/$skypeone\" alt=\"Skype\" title=\"Skype\" border=\"0\" /></a>";
}
$avatarche=$e['avatar'];
echo "<div align='center'><img src='$avatarche'></div><br><center>Ти се логна като <b>".$log['username']."</b></center></br>";
echo "<br><center>Скайп: ".$skaip."</center></br>";
echo "<br><img src='img/Source.png' width=16 height16 target='blank' title='Изпрати Съобщение'><a class='btnExample' href='mesage.php'>Изпрати Съобщение</a></br>";
echo "<br><img src='img/exit.png' width=16 height16 target='blank' title='Вашите Съобщения'><a class='btnExample' href='box.php'>Вашите Съобщения</a></br>";
echo "<br><img src='img/Quit.png' width=16 height16 target='blank' title='Изход'><a class='btnExample' href='logout.php'>Изход</a></br>";
}
?>
 
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\e107system\VertrigoServ\www\prikrepi\index.php:38) in D:\e107system\VertrigoServ\www\prikrepi\includes\login.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\e107system\VertrigoServ\www\prikrepi\index.php:38) in D:\e107system\VertrigoServ\www\prikrepi\includes\login.php on line 3
 

Back
Горе