Автор Тема: Грешка в register.php  (Прочетена 7013 пъти)

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

kalata_951

  • Newbie
  • *
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 18
Грешка в register.php
« -: 16 Декември 2010, 21:23:22 »
Кода ми дава тази грешка:   
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in E:\Netbeans\xampp\htdocs\mcf\register.php on line 36


А ето и кода:
Код: PHP
  1. <?php
  2. include &#39;functions.php&#39;;
  3. my_header(&#39;Регистрация&#39;);
  4. if (!$_SESSION&#91;&#39;is_logged&#39;] == true) {
  5.  
  6.     if ($_POST&#91;&#39;form_submit&#39;] == 1) {
  7.        $login = trim($_POST&#91;&#39;login&#39;]);
  8.        $pas = trim($_POST&#91;&#39;pass&#39;]);
  9.        $pas2 = trim($_POST&#91;&#39;pass2&#39;]);
  10.        $mail = trim($_POST&#91;&#39;mail&#39;]);
  11.        $name = trim($_POST&#91;&#39;name&#39;]);
  12.  
  13.         if (strlen($login) < 4) {
  14.             $error_array &#91;&#39;login&#39;] = &#39;Невалидно потребителско име&#39;;
  15.        }
  16.  
  17.         if (strlen($pas) < 4) {
  18.             $error_array &#91;&#39;pass&#39;] = &#39;Твърде кратка парола&#39;;
  19.        }
  20.  
  21.         if ($pas1 != $pass2) {
  22.             $error_array &#91;&#39;pass&#39;] = &#39;Паролите не съвпадат&#39;;
  23.        }
  24.  
  25.         if (!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $mail)) {
  26.             $error_array &#91;&#39;mail&#39;] = &#39;Невалиден имейл&#39;;
  27.        }
  28.  
  29.         if (!ereg("^[a-zA-Z]{3,16}$", $name)) {
  30.             $error_array &#91;&#39;name&#39;] = &#39;Грешно име&#39;;
  31.        }
  32.         if (!count($error_array) > 0) {
  33.             db_init();
  34.             $sql = &#39;SELECT COUNT (*) as cnt FROM users WHERE login="&#39; . addslashes($login) . &#39;" OR e-mail"&#39; . addslashes($mail) . &#39;"&#39;;
  35.            $res = mysql_query($query);
  36.             [size=12pt][u][b]$row = mysql_fetch_assoc($res);[/b][/u][/size]
  37.             if ($row&#91;&#39;cnt&#39;] == 0) {
  38.                mysql_query(&#39;INSERT INTO users(login,pass,real_name,e-mail,date_registered)
  39.                   VALUES("&#39; . addslashes($login) . &#39;"."&#39; . md5($pas) . &#39;","&#39; . addslashes($mail) . &#39;",&#39; . time() . &#39;)&#39;);
  40.                if (mysql_error ()) {
  41.  
  42.                     echo &#39;<h1>Грешка с базата данни.Опитайте пак!</h1>&#39;;
  43.                } else {
  44.                     header(&#39;Location: index.php&#39;);
  45.                    exit;
  46.                 }
  47.             } else {
  48.                 $error_array &#91;&#39;login&#39;] = &#39;Името или имейла са вече заети&#39;;
  49.                $error_array &#91;&#39;mail&#39;] = &#39;Името или имейла са вече заети&#39;;
  50.            }
  51.         }
  52.     }
  53. ?>
  54.     <form action="register.php" method="POST">
  55.         Login:<input type="text" name="login" value="" /><?php
  56.     if ($error_array&#91;&#39;login&#39;]) {
  57.        echo ($error_array&#91;&#39;login&#39;]);
  58.    }
  59. ?><br>
  60.  
  61.         Парола:<input type="text" name="pass" value="" /><?php
  62.     if ($error_array&#91;&#39;pass&#39;]) {
  63.        echo ($error_array&#91;&#39;pass&#39;]);
  64.    }
  65. ?><br>
  66.     Повтори парола:<input type="text" name="pass2" value="" /><?php
  67.     if ($error_array&#91;&#39;pass&#39;]) {
  68.        echo ($error_array&#91;&#39;pass&#39;]);
  69.    }
  70. ?><br>
  71.     Email:<input type="text" name="mail" value="" /><?php
  72.     if ($error_array&#91;&#39;mail&#39;]) {
  73.        echo ($error_array&#91;&#39;mail&#39;]);
  74.    }
  75. ?><br>
  76.     Име:<input type="text" name="name" value="" /><?php
  77.     if ($error_array&#91;&#39;name&#39;]) {
  78.        echo ($error_array&#91;&#39;name&#39;]);
  79.    }
  80. ?><br>
  81.     <input type="hidden" name="form_submit" value="1"/>
  82.     <input type="submit" value="Регистрирай се" />
  83. </form>
  84.  
  85.     <?php
  86.     footer();
  87. } else {
  88.     header(&#39;Location:index.php&#39;);
  89.    exit;
  90. }
« Последна редакция: 16 Декември 2010, 21:47:55 от echeveria »

Pitankata

  • Мно'о доблестни
  • Hero Member
  • ***
  • Благодарности
  • -Казани: 89
  • -Получени: 136
  • Публикации: 1321
  • ПАЗИТЕЛ НА ЧАТА
Re: Грешка в register.php
« Отговор #1 -: 16 Декември 2010, 21:28:47 »
ми да нищо странно ...
mysql_fetch_assoc() очаква нещо а то нищо не му се подава ... дъли не е заради това "равно" което нямаш?
$sql = 'SELECT COUNT (*) as cnt FROM users WHERE login="' . addslashes($login) . '" OR e-mail="' . addslashes($mail) . '"';
« Последна редакция: 16 Декември 2010, 21:39:06 от pitankata »
Мързелът всъщност е доста гадна работа, не можеш да спреш за да си починеш...

svet1bg

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 1
  • Публикации: 124
Re: Грешка в register.php
« Отговор #2 -: 16 Декември 2010, 21:37:30 »
ми да нищо странно ...
mysql_fetch_assoc() очаква нещо а то нищо не му се подава ... дъли не е заради това "равно" което нямаш?
$sql = 'SELECT COUNT (*) as cnt FROM users WHERE login="' . addslashes($login) . '" OR e-mail="' . addslashes($mail) . '"';

изпревари ме :)

kalata_951

  • Newbie
  • *
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 18
Re: Грешка в register.php
« Отговор #3 -: 16 Декември 2010, 22:14:00 »
Еми явно не е това пак дава същата грешка...  :'(

svet1bg

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 1
  • Публикации: 124
Re: Грешка в register.php
« Отговор #4 -: 16 Декември 2010, 22:24:08 »
Еми явно не е това пак дава същата грешка...  :'(

Код: PHP
  1. $sql = &#39;SELECT COUNT (*) as cnt FROM users WHERE login="&#39; . addslashes($login) . &#39;" OR e-mail="&#39; . addslashes($mail) . &#39;"&#39;;
  2.               $res = mysql_query($query);
  3.                $row = mysql_fetch_assoc($res);
  4.  

Грешката ти е че $query трябва да е  $sql
Когато ползваш бързото дописване на нетБийнс-а променяй променливите който са там по дафаулт.
Успех
« Последна редакция: 16 Декември 2010, 22:26:28 от svet1bg »

echeveria

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 72
  • -Получени: 93
  • Публикации: 4836
Re: Грешка в register.php
« Отговор #5 -: 16 Декември 2010, 22:25:41 »
$sql = 'SELECT COUNT (*) as cnt FROM users WHERE login="' . addslashes($login) . '" OR e-mail="' . addslashes($mail) . '"';
Би ли ми казал какво правиш изобщо с тази заявка?
Днес Печатарите използват парите за да купят мозъците на онези, които ги превъзхождат, за да ги накарат да им служат и така да се превърнат в жертва на посредствеността. Това ли е причината, поради която ги наричате благо?
<iframe src="http://www.corbindavenport.com/ubuntu/widget.html" style="width:

kalata_951

  • Newbie
  • *
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 18
Re: Грешка в register.php
« Отговор #6 -: 16 Декември 2010, 22:30:39 »
Ами и пак ми дава грешка като го променя, пък относно тази заявка- така е в урока  ;D

echeveria

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 72
  • -Получени: 93
  • Публикации: 4836
Re: Грешка в register.php
« Отговор #7 -: 16 Декември 2010, 22:43:18 »
мани тия addslashes и пробвай пак. Провери какви данни се подават на заявката.
Днес Печатарите използват парите за да купят мозъците на онези, които ги превъзхождат, за да ги накарат да им служат и така да се превърнат в жертва на посредствеността. Това ли е причината, поради която ги наричате благо?
<iframe src="http://www.corbindavenport.com/ubuntu/widget.html" style="width:

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Грешка в register.php
« Отговор #8 -: 16 Декември 2010, 22:55:54 »
Просто махми празното пространство между COUNT и (*)
Код: PHP
  1. &#39;SELECT COUNT(*) as cnt
Ако не става и след това, виж дали полетата login и e-mail съществуват и са написани по същият начин!

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

svet1bg

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 1
  • Публикации: 124
Re: Грешка в register.php
« Отговор #9 -: 16 Декември 2010, 23:06:35 »
Ако питаш мене така ми е по лесно за другите незнам :

Код: PHP
  1. $sql=&#39;SELECT * FROM ussers
  2.        WHERE ussers_name="&#39; . $usser_name . &#39;" OR ussers_email="&#39; . $email . &#39;"&#39;;
  3.  
  4.           $res=mysql_query($sql);
  5.           $cnt = mysql_num_rows($res);
  6.          
  7.           if ($cnt > 0) {
  8.                $_SESSION&#91;&#39;have_registration&#39;]="Imeto ili Emaila sa zaeti veche !!!";
  9.               header(&#39;Location: ../register.php&#39;);
  10.               exit;
  11.           }
  12.  

echeveria

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 72
  • -Получени: 93
  • Публикации: 4836
Re: Грешка в register.php
« Отговор #10 -: 16 Декември 2010, 23:14:36 »
Avalanche иска да каже да махнеш шпацията след COUNT.
Днес Печатарите използват парите за да купят мозъците на онези, които ги превъзхождат, за да ги накарат да им служат и така да се превърнат в жертва на посредствеността. Това ли е причината, поради която ги наричате благо?
<iframe src="http://www.corbindavenport.com/ubuntu/widget.html" style="width:

kalata_951

  • Newbie
  • *
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 18
Re: Грешка в register.php
« Отговор #11 -: 17 Декември 2010, 10:41:05 »
Направих кода както е показал svet1bg и не ми дава сега тази грешка, ето и кода:
Код: PHP
  1. <?php
  2. include &#39;functions.php&#39;;
  3. my_header(&#39;Регистрация&#39;);
  4. if (!$_SESSION&#91;&#39;is_logged&#39;] == true) {
  5.  
  6.     if ($_POST&#91;&#39;form_submit&#39;] == 1) {
  7.        $login = trim($_POST&#91;&#39;login&#39;]);
  8.        $pas = trim($_POST&#91;&#39;pass&#39;]);
  9.        $pas2 = trim($_POST&#91;&#39;pass2&#39;]);
  10.        $mail = trim($_POST&#91;&#39;mail&#39;]);
  11.        $name = trim($_POST&#91;&#39;name&#39;]);
  12.  
  13.         if (strlen($login) < 4) {
  14.             $error_array &#91;&#39;login&#39;] = &#39;Невалидно потребителско име&#39;;
  15.        }
  16.  
  17.         if (strlen($pas) < 4) {
  18.             $error_array &#91;&#39;pass&#39;] = &#39;Твърде кратка парола&#39;;
  19.        }
  20.  
  21.         if ($pas1 != $pass2) {
  22.             $error_array &#91;&#39;pass&#39;] = &#39;Паролите не съвпадат&#39;;
  23.        }
  24.  
  25.         if (!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $mail)) {
  26.             $error_array &#91;&#39;mail&#39;] = &#39;Невалиден имейл&#39;;
  27.        }
  28.  
  29.         if (!ereg("^[a-zA-Z]{3,16}$", $name)) {
  30.             $error_array &#91;&#39;name&#39;] = &#39;Грешно име&#39;;
  31.        }
  32.         if (!count($error_array) > 0) {
  33.             db_init();
  34.  
  35.             #
  36. $sql=&#39;SELECT * FROM ussers
  37.  
  38.        WHERE ussers_name="&#39; . $usser_name . &#39;" OR ussers_email="&#39; . $email . &#39;"&#39;;
  39.  
  40.  
  41.  
  42.          $res=mysql_query($sql);
  43.  
  44.          
  45.  
  46.  
  47.  
  48.          if ($cnt > 0) {
  49.  
  50.               $_SESSION&#91;&#39;have_registration&#39;]="Imeto ili Emaila sa zaeti veche !!!";
  51.  
  52.               header(&#39;Location: ../register.php&#39;);
  53.  
  54.               exit;
  55.  
  56.          }
  57.             $res = mysql_query($sql);
  58.  
  59.          
  60.             if ($row&#91;&#39;cnt&#39;] == 0) {
  61.                mysql_query(&#39;INSERT INTO users(login,pass,real_name,e-mail,date_registered)
  62.                   VALUES("&#39; . addslashes($login) . &#39;"."&#39; . md5($pas) . &#39;","&#39; . addslashes($mail) . &#39;",&#39; . time() . &#39;)&#39;);
  63.                if (mysql_error ()) {
  64.  
  65.                     echo &#39;<h1>Грешка с базата данни.Опитайте пак!</h1>&#39;;
  66.                } else {
  67.                     header(&#39;Location: index.php&#39;);
  68.                    exit;
  69.                 }
  70.             } else {
  71.                 $error_array &#91;&#39;login&#39;] = &#39;Името или имейла са вече заети&#39;;
  72.                $error_array &#91;&#39;mail&#39;] = &#39;Името или имейла са вече заети&#39;;
  73.            }
  74.         }
  75.     }
  76. ?>
  77.     <form action="register.php" method="POST">
  78.         Login:<input type="text" name="login" value="" /><?php
  79.     if ($error_array&#91;&#39;login&#39;]) {
  80.        echo ($error_array&#91;&#39;login&#39;]);
  81.    }
  82. ?><br>
  83.  
  84.     Парола:<input type="text" name="pass" value="" /><?php
  85.     if ($error_array&#91;&#39;pass&#39;]) {
  86.        echo ($error_array&#91;&#39;pass&#39;]);
  87.    }
  88. ?><br>
  89.     Повтори парола:<input type="text" name="pass2" value="" /><?php
  90.     if ($error_array&#91;&#39;pass&#39;]) {
  91.        echo ($error_array&#91;&#39;pass&#39;]);
  92.    }
  93. ?><br>
  94.     Email:<input type="text" name="mail" value="" /><?php
  95.     if ($error_array&#91;&#39;mail&#39;]) {
  96.        echo ($error_array&#91;&#39;mail&#39;]);
  97.    }
  98. ?><br>
  99.     Име:<input type="text" name="name" value="" /><?php
  100.     if ($error_array&#91;&#39;name&#39;]) {
  101.        echo ($error_array&#91;&#39;name&#39;]);
  102.    }
  103. ?><br>
  104.     <input type="hidden" name="form_submit" value="1"/>
  105.     <input type="submit" value="Регистрирай се" />
  106. </form>
  107.  
  108. <?php
  109.     footer();
  110. } else {
  111.     header(&#39;Location:index.php&#39;);
  112.    exit;
  113. }

Благодаря на всички.


Е продължих с писането на кода, но като стигнах до тази заявка
Код: PHP
  1. INSERT INTO users(login,pass,real_name,e-mail,date_registered)
  2.                    VALUES("&#39; . addslashes($login).&#39;"."&#39;.md5($pas).&#39;","&#39;.addslashes($name).&#39;" "&#39;.addslashes($mail).&#39;",&#39;.time().&#39;)
ми излезе следната грешка:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-mail,date_registered) VALUES("' . addslashes($login).'"."'.' at line 1
Това излиза като пусна заявката направо във phpmyadmin, а във браузъра излиза тази грешка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-mail,date_registered) VALUES("kalata951"."6ac847daa18dd56832' at line 1
« Последна редакция: 17 Декември 2010, 11:06:28 от kalata_951 »

NoBBy

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 4
  • -Получени: 38
  • Публикации: 309
Re: Грешка в register.php
« Отговор #12 -: 17 Декември 2010, 11:24:29 »
Тирето има специално значение и не можеш да го използваш така директно като име на колона. Смени го на email, mail, e_mail, или ако все пак много държиш трябва да изписваш името на колоната във заявките със обратен апостроф (или там както се казва)
Код: SQL
  1. `e-mail`

kalata_951

  • Newbie
  • *
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 18
Re: Грешка в register.php
« Отговор #13 -: 17 Декември 2010, 11:32:32 »
Така това го оправих, но пък ми изписва, че: Column count doesn't match value count at row 1 (Колоната не може да приема стойност 1.) Немога да разбера откаде идва тая единица...  :-\

NoBBy

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 4
  • -Получени: 38
  • Публикации: 309
Re: Грешка в register.php
« Отговор #14 -: 17 Декември 2010, 11:35:23 »
Тази грешка я дава обикновено ако броя на колоните които упоменаваш в инсърт заявката не отговаря на броя на стойностите които подаваш във VALUES().
Едит: Дай пак кода след като си го оправил за да видим