xfr33 Posted June 14, 2009 Report Share Posted June 14, 2009 Centos izveidot registrāciju ar mysql. Izstrādāju visu kā nākas, bet met divas kļūdas, kuras nesaprotu kā atrisināt. Lūdzu palīdzēsiet? register.php <?php //Connect to database mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Nevarēja piekonektēties: ".mysql_error()); mysql_select_db($dbname) or die(mysql_error()); $name = $_POST['name']; $surname = $_POST['surname']; $email = $_POST['email']; $username = $_POST['username']; $password = md5($_POST['password']); $checkuser = mysql_query("SELECT username FROM users WHERE username='$username'"); $username_exist = mysql_num_rows($checkuser); if($username_exist > 0){ echo "Atvainojites, bet lietotājs, kuru Jūs izvēlējāties jau ir aizņemts. Lūdzu izvelaties citu."; unset($username); include 'registration.php'; exit(); } $query = "INSERT INTO registration (name, surname, email, username, password) VALUES('$name', '$surname' '$email', '$username', '$password')"; mysql_query($query) or die(mysql_error()); mysql_close(); echo "Tu esi veiksmīgi piereģistrējies!"; $yoursite = 'tb-cv.hostei.com'; $webmaster = 'ToBe'; $youremail = 'xfr33@inbox.lv'; $subject = "Tu esi veiksmīgi piereģistrējies $yoursite..."; $message = "$name, tu esi reģistrējies mūsu lapā. Lai ielogotos, ieej mūsu lapā un ievadi šādus datus: Lietotājvārds: $username Parole: $password Lūdzu izprintē so informāciju, lai nepazaudētu. Ar cieņu, $webmaster"; mail($email, $subject, $message, "No: $yoursite <$youremail>\nX-Mailer:PHP/" . phpversion()); echo "Informācija ir aizsūtīta uz tavu epasta adresi."; ?> Un kļūdas ir: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a6721415/public_html/register.php on line 28 Column count doesn't match value count at row 1 Lūdzu palīdziet. Quote Link to comment Share on other sites More sharing options...
kechums Posted June 14, 2009 Report Share Posted June 14, 2009 Kaut kas trūkst... VALUES('$name', '$surname' '$email', '$username', '$password')"; Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted June 14, 2009 Report Share Posted June 14, 2009 '$surname' '$email', komata pa vidu trūkst. Quote Link to comment Share on other sites More sharing options...
Wuu Posted June 14, 2009 Report Share Posted June 14, 2009 (edited) Maybē ,bet vispār jau traks tev tas kods :) $result = mysql_query('SELECT count(*) FROM users WHERE username = "'.$username.'" limit 1'); $cont = mysql_fetch_array($result); if ($cont[0] > 0) { echo 'Aizņemts'; } Edited June 14, 2009 by Wuu Quote Link to comment Share on other sites More sharing options...
endrju Posted June 15, 2009 Report Share Posted June 15, 2009 Maybē ,bet vispār jau traks tev tas kods :) $result = mysql_query('SELECT count(*) FROM users WHERE username = "'.$username.'" limit 1'); $cont = mysql_fetch_array($result); if ($cont[0] > 0) { echo 'Aizņemts'; } Un ar ko tad Tavs kods ir labāks? Ar COUNT(*) un mysql_fetch_array? <sarcasm>jā, noteikti ātrāk nekā ātrāk nekā ar mysql_fetch_row vai COUNT(*) vietā field (username/id) un mysql_num_rows</sarcasm> Čalis pareizi bija uzrakstījis, vismaz to daļu. Cita runa ir par to, ka jums te skaistas SQL injekcijas, ka netiek pārbaudīts e-pasts un, ka reģistrācija netiek pārbaudīta ar validācijas URL. Quote Link to comment Share on other sites More sharing options...
xfr33 Posted June 15, 2009 Author Report Share Posted June 15, 2009 Paldies, komats izlaboja kļūdu, ka nevar piereģistrēties. Bet otrā kļūda tai vietā, kur pārbauda vai jau nav reģistrēts tāds lietotājvārds, tik un tā ir. Cita runa ir par to, ka jums te skaistas SQL injekcijas, ka netiek pārbaudīts e-pasts un, ka reģistrācija netiek pārbaudīta ar validācijas URL. Pašlaik viss tikai tiek izmēģināts un iespējams būs. Quote Link to comment Share on other sites More sharing options...
endrju Posted June 15, 2009 Report Share Posted June 15, 2009 Paldies, komats izlaboja kļūdu, ka nevar piereģistrēties.Bet otrā kļūda tai vietā, kur pārbauda vai jau nav reģistrēts tāds lietotājvārds, tik un tā ir. Kāda konkrēti kļūda? Kur ir kļūdas ziņojums un attiecīgais kods? Quote Link to comment Share on other sites More sharing options...
xfr33 Posted June 15, 2009 Author Report Share Posted June 15, 2009 Kāda konkrēti kļūda? Kur ir kļūdas ziņojums un attiecīgais kods? Kļūdas paziņojums: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a6721415/public_html/register.php on line 28 Un kods ir pirmajā postā. Quote Link to comment Share on other sites More sharing options...
endrju Posted June 15, 2009 Report Share Posted June 15, 2009 Kļūdas paziņojums: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a6721415/public_html/register.php on line 28 Un kods ir pirmajā postā. Man kaut kā neizskatās, ka tas ir attiecīgais kods. Iekopē paste.php.lv un tieši to "register.php". Tad paskatīsimies kas ir 28 līnijā. Quote Link to comment Share on other sites More sharing options...
xfr33 Posted June 15, 2009 Author Report Share Posted June 15, 2009 http://paste.php.lv/bcfb2c449d7c8578f1b85d...1a3b1c?lang=php Bet ir izmaiņas uz jāskatās 27 rindiņa. Quote Link to comment Share on other sites More sharing options...
Web Developer Posted June 15, 2009 Report Share Posted June 15, 2009 Krimināls kods, nevar īsti saprast. Sākumā uzraksti, kas tas par failu un iekopē pilnā apjomā - lai var konstatēt, kuras rindiņas vismaz! :) Quote Link to comment Share on other sites More sharing options...
xfr33 Posted June 15, 2009 Author Report Share Posted June 15, 2009 Par to failu, kas iekopēts paste.php.lv. Kapēc krimināls? Tas ir pilns apjoms tam failam, ja neskaita pāris pirmās rindiņas, jo tās tika izdzēstas. Atvainojos, bet par to neiedomājos. Kļūda ir 22. rindā. Quote Link to comment Share on other sites More sharing options...
endrju Posted June 15, 2009 Report Share Posted June 15, 2009 Par to failu, kas iekopēts paste.php.lv. Kapēc krimināls? Tas ir pilns apjoms tam failam, ja neskaita pāris pirmās rindiņas, jo tās tika izdzēstas. Atvainojos, bet par to neiedomājos. Kļūda ir 22. rindā. Tātad kļūda ir iekš query. Tas neatgriež $checkuser kā valīdu objektu. Ieliec pēc mysql_query pārbaudi, lai saprast kas par kļūdu: if (mysql_errno()) { echo mysql_error(); } Vai arī palielini error_reporting uz E_ALL Quote Link to comment Share on other sites More sharing options...
xfr33 Posted June 15, 2009 Author Report Share Posted June 15, 2009 Es iekopēju to kodu ko tu iedevi. Uzmetu error_reporting(E_ALL), bet nekādas starpības kļūdas aprakstā. Quote Link to comment Share on other sites More sharing options...
endrju Posted June 15, 2009 Report Share Posted June 15, 2009 Es iekopēju to kodu ko tu iedevi. Uzmetu error_reporting(E_ALL), bet nekādas starpības kļūdas aprakstā. Un display_errors ir on? Tas tiešām ir vienīgais kļūdas paziņojums? Tas, par mysql_num_rows(). Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.