Автор Тема: MCF - форма за регистрация 1  (Прочетена 12332 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

vaskoralev

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 35
Отг:MCF - форма за регистрация 1
« Отговор #15 -: 27 Февруари 2010, 13:03:07 »
Аз всичко си пиша по уроците. Но просто някъде правя грешки. Понякога успявам да ги оправя, но когато немога да намеря къде съм сбъркал е добре да мога да погледна работещ код.
В момента всичко ми тръгна и продължавам напред  :cheer:

wuser

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 85
  • -Получени: 49
  • Публикации: 2761
Отг:MCF - форма за регистрация 1
« Отговор #16 -: 27 Февруари 2010, 13:07:37 »
Значи аз мога да ти дам файловете, но не е това начина.Точно грешките, търсенето им и тяхното поправяне ти дават този опит и знание, които са ти небходими. И аз и всеки друг, сме се мъчили часове с елементарни проблеми, но това е пътя.
Мъдростта на патилото
Perl Monks: PHP - it's "training wheels without the bike" -- Randal L. Schwartz


Дееба... чувствам се все едно обяснявам на майка ми как да си отвори пощата
"не работи"
WTF?!?!? к'во значи че не работи?
Не ти се компилира, дава ти грешка, вади ти грешни резултати, компютърът ти се изключва като го напишеш или на целия квартал му спира тока?
Stilgar

vaskoralev

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 35
Отг:MCF - форма за регистрация 1
« Отговор #17 -: 28 Февруари 2010, 20:04:21 »
Да прав си за начина, но когато човек е прекалено начинаещ не е толкова лесно да си отркире всички грешки. Вчера си прецаках базата данни и покрай нея си замина проекта. Днес го написах наново и имам проблем с бутона submit. Явно пак съм сбъркал някъде, но бутона не иска да работи
или можеби работи, но не ми дава никакви грешки и не ми валидира данни а просто изчезват от полетата. Някой ако може да помогне със съвет. Ако е необходимо да постна кода?

SocialEvil

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 3
  • -Получени: 4
  • Публикации: 463
Отг:MCF - форма за регистрация 1
« Отговор #18 -: 28 Февруари 2010, 20:30:20 »
Здравей, vaskoralev.
Да знаеш, че всички програмисти правят купчина грешки. Не си мисли, че начинаещите допускат грешки, пък хората, които ги разбират нещата - пишат кода без проблеми. И като начинаещ и напреднал и експерт пак ще има пропуски.
Само дето сега трябва да се научиш сам да си откриваш грешките. После, като почнеш работа, там ти ще ги правиш проектите, няма да има source и ако нямаш навика сам да таршуваш за грешки, ще ти е доста тъжен живота.

П.П.
Без код няма как да разберем какъв е проблемът.
Също бих те посъветвал да почнеш нова тема в съответния раздел, така друг със същият проблем лесно може да открие темата и да прочете решението.
Мерси.
Please allow me to introduce myself
I'm a man of wealth and taste
I've been around for a long, long year
Stole many a man's soul and faith

MeMoS

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 2
Отг:MCF - форма за регистрация 1
« Отговор #19 -: 03 Юни 2010, 15:45:48 »
при мен се получава следния проблем
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\\AppServ\\www\\mcf\\functions.php:31) in C:\\AppServ\\www\\mcf\\functions.php on line 4

marto

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 7
Отг:MCF - форма за регистрация 1
« Отговор #20 -: 01 Юли 2010, 11:46:00 »
Ами дай код. Gatakka вече е обяснил защо излиза тази грешка. Вероятно имаш някакъв друг код преди session_start()

marto

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 7
Отг:MCF - форма за регистрация 1
« Отговор #21 -: 02 Юли 2010, 12:27:56 »
Това добър вариант ли е?
Код: PHP
  1. <?php
  2. include ( ' functions.php ' );
  3. my_header( ' Регистрация ' );
  4. if ($_SESSION[ ' logged ' ]!==true)
  5. {
  6. if (htmlspecialchars(addslashes($_POST[ ' submit ' ]))!= "  " )
  7. {
  8. $username=addslashes(trim($_POST[ ' username ' ]));
  9. $realname=addslashes(trim($_POST[ ' realname ' ]));
  10. $email=addslashes(trim($_POST[ ' email ' ]));
  11. $pass=addslashes(trim($_POST[ ' pass ' ]));
  12. $pass2=addslashes(trim($_POST[ ' pass_retype ' ]));
  13. if (strlen($username)>4 && strlen($realname)>7 && strlen($email)>10 && strlen($pass)>5 && $pass==$pass2)
  14. {
  15. echo  ' Благодарим Ви, че се регистрирахте ' ;
  16. // вкарай в базата данни
  17. }
  18. else
  19. {
  20. echo  ' Моля проверете за грешка ' ;
  21. }
  22. }
  23. if ($_POST[ ' submit ' ])
  24. {
  25. ?>
  26. <form action= " register.php "  method= " post " >
  27. <table>
  28. <tr><td>Username:</td> <td><input type= " text "  name= " username "  /></td><?php
  29. if(strlen($username)<5)
  30. {
  31. echo  ' <td>Името трябва да е поне 5 символа</td> ' ;
  32. }
  33. if(!preg_match( ' /[a-z0-9]/ ' ,$username))
  34. {
  35. echo  ' <td>В полето могат да се използват единствено цифри и малки букви</td> ' ;
  36. }
  37. ?></tr>
  38. <tr><td>Real Name:</td> <td><input type= " text "  name= " realname "  /></td><?php
  39. if(strlen($realname)<8)
  40. {
  41. echo  ' <td>Името в сайта трябва да е поне 8 символа</td> ' ;
  42. }
  43. if(!preg_match( ' /[a-zA-Z0-9]/ ' ,$username))
  44. {
  45. echo  ' <td>В полето могат да се използват единствено цифри и букви</td> ' ;
  46. }
  47. ?></tr>
  48. <tr><td>Password:</td> <td><input type= " password "  name= " pass "  /></td>
  49. <?php
  50. if(strlen($pass)<6)
  51. {
  52. echo  ' <td>Паролата трябва да е поне 6 символа</td> ' ;
  53. }
  54. ?></tr>
  55. <tr><td>Retype passowrd:</td> <td><input type= " password "  name= " pass_retype "  /></td><?php
  56. if(strlen($pass)!=NULL && $pass!=$pass2)
  57. {
  58. echo  ' <td>Паролите не съвпадат</td> ' ;
  59. }
  60. ?></tr>
  61. <tr><td>Email:</td> <td><input type= " text "  name= " email "  /></td>
  62. <?php
  63. if(!preg_match( ' /^[a-z0-9\\.]+\\@[a-z0-9\\-]+\\.[a-z]{2,4}$/ ' ,$email))
  64. {
  65. echo  ' <td>Електронната поща е невалидна</td> ' ;
  66. }
  67. ?></tr>
  68. <tr><td><input type= " submit "  value= " Регистрирай се "  name= " submit "  /></td></tr>
  69. </table>
  70. </form>
  71. <?php
  72. }
  73. else
  74. {
  75. ?>
  76. <form action= " register.php "  method= " post " >
  77. <table>
  78. <tr><td>Username:</td> <td><input type= " text "  name= " username "  /></td></tr>
  79. <tr><td>Real Name:</td> <td><input type= " text "  name= " realname "  /></td></tr>
  80. <tr><td>Password:</td> <td><input type= " password "  name= " pass "  /></td></tr>
  81. <tr><td>Retype passowrd:</td> <td><input type= " password "  name= " pass_retype "  /></td></tr>
  82. <tr><td>Email:</td> <td><input type= " text "  name= " email "  /></td></tr>
  83. <tr><td><input type= " submit "  value= " Регистрирай се "  name= " submit "  /></td></tr>
  84. </table>
  85. </form>
  86. <?php
  87. }
  88. my_footer();
  89. }
  90. else
  91. {
  92. header( ' Location: index.php ' );
  93. }
  94. ?>
« Последна редакция: 08 Февруари 2011, 17:38:02 от echeveria »

valio

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 2
Re:MCF - форма за регистрация 1
« Отговор #22 -: 08 Февруари 2011, 15:46:32 »
Здравейте.
Мерси много първо за уроците. Наистина са доста добро помагало.
Та хванах се да правя тези уроци за php форум и тука позапецнах яката на формата за регистрация. Имам следният проблем.Всичко що е надпис по страниците ме препраща в register.php.Демек на index.php страницата освен "Регистрирай се" и "Здравейте"  ми го показва като линк водещ към register.php.А и на самия register.php всички полета (меил име парола и т.н.т.)са като едно тяло което също е линк към себеси и в полетата не може да се пише нищо. Ако може някой да ми каже вижда ли грешка някъде щото ми изкапаха очите да го гледам тоя код и не виждам нищо.

functions.php
Код: PHP
  1. <?php
  2.  
  3. function my_header($title)
  4. {
  5.     session_start();
  6. ?>
  7.     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8.     <html>
  9.         <head>
  10.             <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  11.             <title><?php echo $title; ?></title>
  12.         </head>
  13.         <body>
  14.             <div id="top_menu">
  15.             <?php
  16.             if ($_SESSION['is_logged'] === true)
  17.             {
  18.                
  19.             }
  20.             else
  21.             {
  22.                 echo '<a href="register.php"> Регистрирай се </а>';
  23.             }
  24.             ?></div>
  25.         <?php
  26.         }
  27.  
  28.         function footer()
  29.         {
  30.             echo '</body></html>';
  31.         }
  32.  
  33.         function db_init()
  34.         {
  35.             mysql_connect('localhost', 'valio', '******') or die("Грешка с базата данни");
  36.             mysql_select_db('mcf');
  37.         }
  38.  

index.php
Код: PHP
  1. <?php
  2.  
  3. include 'functions.php';
  4. my_header("Начало");
  5. echo '<h1>Здравейте</h1>';
  6. footer();
  7.  

Кажете ако ви трябва ше пусна и register.php
« Последна редакция: 08 Февруари 2011, 17:39:01 от echeveria »

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re:MCF - форма за регистрация 1
« Отговор #23 -: 08 Февруари 2011, 17:21:16 »
Добре дошъл във форума, valio,

до колкото си спомням този проблем беше характерен когато изпишеш html елемента "а" с кирилица:
echo '<a href="register.php"> Регистрирай се </а>';

Пробвай да го напишеш на ново, с латински символи.
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

valio

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 2
Re:MCF - форма за регистрация 1
« Отговор #24 -: 08 Февруари 2011, 17:55:43 »
Мерси много! Точно в това е бил проблема.
Продължавам да се напъвам.

relax

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 61
Re:MCF - форма за регистрация 1
« Отговор #25 -: 24 Април 2011, 21:02:15 »
Привет! Имам проблем с формата за регистрация. Когато попълня полетата (правилно) винаги ми изписва „Паролите не съвпадат“.... Ето го кодът:

<?php
include 'functions.php';
my_header('Регистрация');
if (!
$_SESSION['is_logged'] == true) {

    if (
$_POST['form_submit'] == 1) {
        
$login trim($_POST['login']);
        
$pas trim($_POST['pass']);
        
$pas2 trim($_POST['pass2']);
        
$mail trim($_POST['mail']);
        
$name trim($_POST['name']);

        if (
strlen($login) < 4) {
            
$error_array ['login'] = 'Невалидно потребителско име';
        }

        if (
strlen($pas) < 4) {
            
$error_array ['pass'] = 'Твърде кратка парола';
        }

        if (
$pas1 != $pass2) {
            
$error_array ['pass'] = 'Паролите не съвпадат';
        }

        if (!
eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$"$mail)) {
            
$error_array ['mail'] = 'Невалиден имейл';
        }

        if (!
ereg("^[a-zA-Z]{3,16}$"$name)) {
            
$error_array ['name'] = 'Грешно име';
        }
        if (!
count($error_array) > 0) {
            
db_init();


            
$sql 'SELECT * FROM ussers

       WHERE ussers_name="' 
$usser_name '" OR ussers_email="' $email '"';



            
$res mysql_query($sql);





            if (
$cnt 0) {

                
$_SESSION['have_registration'] = "Imeto ili Emaila sa zaeti veche !!!";

                
header('Location: ../register.php');

                exit;
            }
            
$res mysql_query($sql);


            if (
$row['cnt'] == 0) {
                
mysql_query('INSERT INTO users(login,pass,real_name,email,date_registered)  
                  VALUES("' 
addslashes($login) . '","' md5($pas) . '","' addslashes($name) . '", "' addslashes($mail) . '",' time() . ')');
                if (
mysql_error ()) {
                    echo 
mysql_error();
                    echo 
'<h1>Грешка с базата данни.Опитайте пак!</h1>';
                } else {
                    
header('Location: index.php');
                    exit;
                }
            } else {
                
$error_array ['login'] = 'Името или имейла са вече заети';
                
$error_array ['mail'] = 'Името или имейла са вече заети';
            }
        }
    }
?>

    <form action="register.php" method="POST">
        Login:<input type="text" name="login" value="" /><?php
    
if ($error_array['login']) {
        echo (
$error_array['login']);
    }
?>
<br>

    Парола:<input type="text" name="pass" value="" /><?php
    
if ($error_array['pass']) {
        echo (
$error_array['pass']);
    }
?>
<br>
    Повтори парола:<input type="text" name="pass2" value="" /><?php
    
if ($error_array['pass']) {
        echo (
$error_array['pass']);
    }
?>
<br>
    Email:<input type="text" name="mail" value="" /><?php
    
if ($error_array['mail']) {
        echo (
$error_array['mail']);
    }
?>
<br>
    Име:<input type="text" name="name" value="" /><?php
    
if ($error_array['name']) {
        echo (
$error_array['name']);
    }
?>
<br>
    <input type="hidden" name="form_submit" value="1"/>
    <input type="submit" value="Регистрирай се" />
</form>

<?php
    footer
();
} else {
    
header('Location:index.php');
    exit;
}

Моля Ви помогнете ми. :)

HD

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 208
  • -Получени: 165
  • Публикации: 3077
Re:MCF - форма за регистрация 1
« Отговор #26 -: 24 Април 2011, 21:09:23 »
Разгледай си проверката на двете пароли и ще си намериш грешката...  :)

federer_11

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 1
  • Публикации: 931
  • ULTRAS LEVSKI
Re:MCF - форма за регистрация 1
« Отговор #27 -: 24 Април 2011, 21:45:57 »
Към $pas присъединяваш POST променливата, а в проверката си писал $pas1... :D
(x)HTML, CSS, PHP, MySQL, XML, WML, JavaScript (jQuery)

relax

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 61
Re:MCF - форма за регистрация 1
« Отговор #28 -: 24 Април 2011, 22:11:22 »
Упс... ;D Благодаря, но пак не стана... Ето го кодът:

<?php
include 'functions.php';
my_header('Регистрация');
if (!
$_SESSION['is_logged'] == true) {

    if (
$_POST['form_submit'] == 1) {
        
$login trim($_POST['login']);
        
$pas trim($_POST['pass']);
        
$pas2 trim($_POST['pass2']);
        
$mail trim($_POST['mail']);
        
$name trim($_POST['name']);

        if (
strlen($login) < 4) {
            
$error_array ['login'] = 'Невалидно потребителско име';
        }

        if (
strlen($pas) < 4) {
            
$error_array ['pass'] = 'Твърде кратка парола';
        }

        if (
$pas != $pass2
{
            
$error_array ['pass'] = 'Паролите не съвпадат';
        }

        if (!
eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$"$mail)) {
            
$error_array ['mail'] = 'Невалиден имейл';
        }

        if (!
ereg("^[a-zA-Z]{3,16}$"$name)) {
            
$error_array ['name'] = 'Грешно име';
        }
        if (!
count($error_array) > 0) {
            
db_init();


            
$sql 'SELECT * FROM ussers

       WHERE ussers_name="' 
$usser_name '" OR ussers_email="' $email '"';



            
$res mysql_query($sql);





            if (
$cnt 0) {

                
$_SESSION['have_registration'] = "Imeto ili Emaila sa zaeti veche !!!";

                
header('Location: ../register.php');

                exit;
            }
            
$res mysql_query($sql);


            if (
$row['cnt'] == 0) {
                
mysql_query('INSERT INTO users(login,pass,real_name,email,date_registered)  
                  VALUES("' 
addslashes($login) . '","' md5($pas) . '","' addslashes($name) . '", "' addslashes($mail) . '",' time() . ')');
                if (
mysql_error ()) {
                    echo 
mysql_error();
                    echo 
'<h1>Грешка с базата данни.Опитайте пак!</h1>';
                } else {
                    
header('Location: index.php');
                    exit;
                }
            } else {
                
$error_array ['login'] = 'Името или имейла са вече заети';
                
$error_array ['mail'] = 'Името или имейла са вече заети';
            }
        }
    }
?>

    <form action="register.php" method="POST">
        Login:<input type="text" name="login" value="" /><?php
    
if ($error_array['login']) {
        echo (
$error_array['login']);
    }
?>
<br>

    Парола:<input type="text" name="pass" value="" /><?php
    
if ($error_array['pass']) {
        echo (
$error_array['pass']);
    }
?>
<br>
    Повтори парола:<input type="text" name="pass2" value="" /><?php
    
if ($error_array['pass']) {
        echo (
$error_array['pass']);
    }
?>
<br>
    Email:<input type="text" name="mail" value="" /><?php
    
if ($error_array['mail']) {
        echo (
$error_array['mail']);
    }
?>
<br>
    Име:<input type="text" name="name" value="" /><?php
    
if ($error_array['name']) {
        echo (
$error_array['name']);
    }
?>
<br>
    <input type="hidden" name="form_submit" value="1"/>
    <input type="submit" value="Регистрирай се" />
</form>

<?php
    footer
();
} else {
    
header('Location:index.php');
    exit;
}

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re:MCF - форма за регистрация 1
« Отговор #29 -: 24 Април 2011, 22:15:47 »
Пак на същото място имаш грешка, виж какво всъщност сравняваш - не прави нещата механично!
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!