MySQLi- skrypt nie wspułpracuje z bazą

Dla rozpoczynających przygodę z programowaniem i językiem PHP.
Awatar użytkownika
władek
Posty: 3
Rejestracja: 06 sty 2014, 23:16

MySQLi- skrypt nie wspułpracuje z bazą

Post autor: władek » 06 sty 2014, 23:29

Witam.
Chciałbym zmodyfikować swoje forum, o sprawdzanie dostępności nicku w formularzu rejestracyjnym.
Co jest nie tak w tym skrypcie? Kombinuje na wszelkie możliwe sposoby, i skrypt mimo wszystko nie współpracuje z bazą
. Działa jedynie sprawdzanie czy nick rozpoczyna się literą, i czy jego minimalna długość to 4 znaki- reszta- sprawdzanie, czy w bazie istnieje taki nick nie działa (Tzn zawsze otrzymuję odpowiedź "jakisnick is ok")
Link do tutorialu z którego korzystam:
http://www.developphp.com/view.php?tid=1187

Mój kod:

Kod: Zaznacz cały

<?php
if(isset($_POST["name2check"]) && $_POST["name2check"] != ""){
    include_once 'config.php';
    mysqli_connect($db_host,$db_username,$db_password,$db_name) or die('error'.mysql_error());
    $username = preg_replace('#[^a-z0-9]#i', '', $_POST['name2check']); 
    $sql_uname_check = mysqli_query("SELECT username FROM users WHERE username='$username' LIMIT 1"); 
    $uname_check = mysqli_num_rows($sql_uname_check);
    if (strlen($username) < 4) {
	    echo '4 - 15 characters please';
	    exit();
    }
	if (is_numeric($username[0])) {
	    echo 'First character must be a letter';
	    exit();
    }
    if ($uname_check < 1) {
	    echo '<strong>' . $username . '</strong> is OK';
	    exit();
    } else {
	    echo '<strong>' . $username . '</strong> is taken';
	    exit();
    }
}
?>
<html>
<head>
<script type="text/javascript" language="javascript">
function checkusername(){
	var status = document.getElementById("usernamestatus");
	var u = document.getElementById("uname").value;
	if(u != ""){
		status.innerHTML = 'checking...';
		var hr = new XMLHttpRequest();
		hr.open("POST", "reg.php", true);
		hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		hr.onreadystatechange = function() {
			if(hr.readyState == 4 && hr.status == 200) {
				status.innerHTML = hr.responseText;
			}
		}
    var v = "name2check="+u;
    hr.send(v);
	}
}
</script>
</head>
<body>
<input type="text" name="uname" id="uname" onBlur="checkusername()" maxlength="15" />
<span id="usernamestatus"></span>
</body>
</html>


edit:
dodaje jeszcze screen z phpmyadmin, by zobrazować o którą kolumnę mi chodzi:
http://zapodaj.net/5e3aaaf255441.png.html

Awatar użytkownika
Puki
Posty: 2
Rejestracja: 07 sty 2014, 18:22

Re: MySQLi- skrypt nie wspułpracuje z bazą

Post autor: Puki » 07 sty 2014, 18:41

$uname_check = mysql_num_rows($sql_uname_check); - to zlicza Ci ilosc rekordow a nie przypisuje do zmiennej zawartosci
musisz dopisac pod select
$uname_take = mysql_fetch_array($sql_uname_check);

a sprawdzenie bym tak napisal:

if (empty($uname_take) ) {
echo '<strong>' . $username . '</strong> is OK';
exit();
} else {
echo '<strong>' . $username . '</strong> is taken';

Awatar użytkownika
władek
Posty: 3
Rejestracja: 06 sty 2014, 23:16

Re: MySQLi- skrypt nie wspułpracuje z bazą

Post autor: władek » 07 sty 2014, 23:09

Niestety- nie działa
Nie wiem, czy aby na pewno mysqli_query jest napisane poprawnie:

Kod: Zaznacz cały

mysqli_query("SELECT username FROM users WHERE username='$username' LIMIT 1"); 

Awatar użytkownika
Puki
Posty: 2
Rejestracja: 07 sty 2014, 18:22

Re: MySQLi- skrypt nie wspułpracuje z bazą

Post autor: Puki » 08 sty 2014, 1:40

ahhh wybacz w pospiechu pisalem i zgubilem linie kodu:


$uname_take = mysql_fetch_array($sql_uname_check);
$uname_taken = $uname_take[0]


if (empty($uname_taken) ) {
echo '<strong>' . $username . '</strong> is OK';
exit();
} else {
echo '<strong>' . $username . '</strong> is taken';

Awatar użytkownika
władek
Posty: 3
Rejestracja: 06 sty 2014, 23:16

Re: MySQLi- skrypt nie wspułpracuje z bazą

Post autor: władek » 08 sty 2014, 20:12

Nadal nie działa, zmieniłem nawet bezę do testu z MySQLi na MySQL, i nic. Chyba sobie odpuszczę.

Ale oczywiście dziękuję Ci za chęci :)

Awatar użytkownika
jackGothic
Posty: 1
Rejestracja: 21 wrz 2014, 22:09
Kontakt:

Re: MySQLi- skrypt nie wspułpracuje z bazą

Post autor: jackGothic » 23 wrz 2014, 23:14

Sprawdź połączenie z bazą danych.

ODPOWIEDZ