Jump to content
php.lv forumi

mysql kļūda


xfr33

Recommended Posts

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.

Link to comment
Share on other sites

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 by Wuu
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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ā.

Link to comment
Share on other sites

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ā.

Link to comment
Share on other sites

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ā.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...