• 24-06-2014, 19:57:48
    #1
    Üyeliği durduruldu
    <?php 
    
    if (isset($_POST['kaydol'])) { 
    $usernamek = $_POST['usernamek'];
    $passwordk = $_POST['passwordk'];
    $emailk = $_POST['emailk'];
    	if (empty($usernamek) OR empty($passwordk) OR empty($emailk)) { 
    	echo "Boş alan bırakamazsınız.";
    	} elseif (!filter_var($emailk, FILTER_VALIDATE_EMAIL)) { 
    	echo "Geçerli email giriniz.";
    	} else { 
    	$same = mysqli_query($conn, "SELECT * from members WHERE username='$usernamek'");
    	$ssame = $conn->nr($same);
    	if (mysqli_num_rows($same) > 0) { 
    		echo "Kullanıcı Adı Kullanımda";
    	} else { 
    		$gogo = mysqli_query($conn, "INSERT INTO `torn`.`members` (`ID`, `username`, `password`, `email`, `avatar`, `cover`, `fromwhere`, `occupation`, `signature`) VALUES (NULL, '$usernamek', '$passwordk', '$emailk', NULL, NULL, NULL, NULL, NULL)");
    			if ($gogo) { 
    				echo "Başarıyla kayıt oldunuz, yönlendiriyorsunuz.";
    				header("Location: /ahbap.php");
    			} else echo "Veritabanında bir hata oluştu, kaydınız başarısız";
    	 }
    }
    }
    
    if (isset($_POST['girisyap'])) { 
    $usernameg = $_POST['usernameg'];
    $passwordg = $_POST['passwordg'];
    	if (empty($usernameg) OR empty($passwordg)) {
    	echo "Boş alan bırakamazsınız.";
    	} else { 
    	$samek = mysqli_query($conn, "SELECT * from `members` WHERE `username`='$usernameg' AND `password`='$passwordg'");
    	$same2 = $conn->nr($samek);
    	if ($same2 > 0) { 
    	echo "Başarıyla Giriş Yaptınız, Yönlendiriliyorsunuz..";
    	}else echo "Şifre ya da Kullanıcı Adı Yanlış. Si@";
    	}
    }
    
    ?>
    Elimde böyle bir kod bloğu var.
    Şimdi, fonksiyon $conn, bağlantıyı sağlıyor. nr'de num_rows fonksiyonum. Önceden mysqli_connect'i değişkene atayıp yapıyordum. Anlayamadım sorun nerden kaynaklanıyor. Üyelikte oluyordu, bütün iflerim elseiflerim de çalışıyordu. Ancak şimdi sütun sayısını çoğalttım, yine de olmadı. if $gogo değeri direk FALSE döndürüyor.

    mysqli_query($conn, "INSERT INTO `torn`.`members` (`ID`, `username`, `password`, `email`, `avatar`, `cover`, `fromwhere`, `occupation`, `signature`) VALUES (NULL, '$usernamek', '$passwordk', '$emailk', NULL, NULL, NULL, NULL, NULL)");
    NULL yazan yerleri '' yaptım olmadı, hiç bir şey yapmadım, sadece formdaki verileri gerekli alanlara koymasını söyledim yine olmadı. Diğer eklediğim sütunlar boş değer döndürebiliyor. Neden direk FALSE değerini döndürüyor anlayamıyorum. Error gösterme de açık, herhangi bir error vermiyor, tabloya yazmıyor bu verileri.
  • 24-06-2014, 21:11:16
    #2
    Bu query den sonra mysqli_error basmayi denedin mi? Hatayi orda vermesi lazim.

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
  • 24-06-2014, 21:14:19
    #3
    Üyeliği durduruldu
    mtl adlı üyeden alıntı: mesajı görüntüle
    Bu query den sonra mysqli_error basmayi denedin mi? Hatayi orda vermesi lazim.

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
    else { echo "Veritabanında bir hata oluştu, kaydınız başarısız";
    echo mysqli_error($gogo); }
    }

    olarak değiştirdim kodu, herhangi bir hata bastırmadı.
  • 25-06-2014, 16:25:11
    #4
    Üyeliği durduruldu
    Var mı fikri olan?
  • 25-06-2014, 22:01:44
    #5
    Üyeliği durduruldu
    Arkadaşlar, kodu yeniden düzenledim ve şu hali aldı;
    Alıntı
    if (isset($_POST['kaydol']))
    {
    if (empty($_POST['usernamek']) OR empty($_POST['passwordk']) OR empty($_POST['emailk']))
    {
    echo "Boş Alan Bırakmayın!";
    }
    elseif (!filter_var($_POST['emailk'], FILTER_VALIDATE_EMAIL))
    {
    echo "Geçerli email girin";
    }
    else
    {
    $usernamek = $_POST['usernamek'];
    $passwordk = $_POST['passwordk'];
    $emailk = $_POST['emailk'];
    $conn = $db->baglan();
    $ayni = $conn->query("SELECT * from members WHERE username='$usernamek'");
    $row = $conn->nr($ayni);
    if (mysqli_num_rows($ayni) > 0)
    {
    echo "Başka bir kullanıcı adı seçin.";
    }
    else
    {
    $kayitet = $conn->query("INSERT INTO `torn`.`members` (`ID`, `username`, `password`, `email`) VALUES (NULL, '$usernamek', '$passwordk', '$emailk')");
    if ($kayitet)
    {
    echo "Başarıyla Kayıt Oldunuz.";
    }
    else
    {
    echo "Kayıt olamadınız, bir sıkıntı var.";
    }

    }

    }
    }
    Sadece kalınla gösterdiğim yer çalışmıyor. DB classimdaki baglan'i bir türlü iletemiyorum. Lütfen bir yardım edin . 2 gündür çildirtiyor beni bu kod. Fonksiyon çağırmadan bağlantıyı teker teker kendim yaptığımda hiç bir sıkıntı yaşamıyordum da, ben bu fonksiyonu sürekli çağıracağım, her seferinde kendim yazamam ki.
    İlgili fonksiyon;
    Alıntı
    function baglan() {
    $conn = new mysqli ($this->host, $this->user, $this->pass);

    // check connection
    if($conn->connect_errno){
    echo "Bağlantı Hatası:".$con->connect_errno;
    exit; }
    return $conn;
    }
  • 25-06-2014, 23:35:56
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Xhenahobia; $gogo değişkenini şu şekilde değiştirip deneyebilir misin?

    $gogo = mysqli_query($conn, "INSERT INTO `torn`.`members` SET `ID` = NULL, `username` = '{$usernamek}', `password` = '{$passwordk}', `email` = '{$emailk}', `avatar` = NULL, `cover` = NULL, `fromwhere` = NULL, `occupation` = NULL, `signature` = NULL");
  • 26-06-2014, 02:37:49
    #7
    Bence,

    (Yanlış) INSERT INTO `torn`.`members`
    (Doğru) INSERT INTO `members`

    İkinci ihtimal NULL verdiğiniz değerler tabloya uygun olmayabilir.. (Enum,Set değerlerini kontrol ediniz.)
  • 26-06-2014, 05:28:31
    #8
    Kaplan adlı üyeden alıntı: mesajı görüntüle
    Bence,

    (Yanlış) INSERT INTO `torn`.`members`
    (Doğru) INSERT INTO `members`

    İkinci ihtimal NULL verdiğiniz değerler tabloya uygun olmayabilir.. (Enum,Set değerlerini kontrol ediniz.)
    torn dbsiyle çalışıyorsa problem yaşatmaz. MySQL'de root ise farklı veritabanı da yazmak istiyor olabilir.(? [hiç denedim.])
  • 26-06-2014, 20:14:09
    #9
    Üyeliği durduruldu
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Xhenahobia; $gogo değişkenini şu şekilde değiştirip deneyebilir misin?

    $gogo = mysqli_query($conn, "INSERT INTO `torn`.`members` SET `ID` = NULL, `username` = '{$usernamek}', `password` = '{$passwordk}', `email` = '{$emailk}', `avatar` = NULL, `cover` = NULL, `fromwhere` = NULL, `occupation` = NULL, `signature` = NULL");
    Kaplan adlı üyeden alıntı: mesajı görüntüle
    Bence,

    (Yanlış) INSERT INTO `torn`.`members`
    (Doğru) INSERT INTO `members`

    İkinci ihtimal NULL verdiğiniz değerler tabloya uygun olmayabilir.. (Enum,Set değerlerini kontrol ediniz.)
    İkisi de bir sonuç vermiyor. Bu sefer hiç bir değer döndürmüyor. Yani ne if'i ne else'i ekrana yazdırıyor. Her türlü şeyi deniyorum kodların en son hali şu oldu;

    Alıntı
    if (isset($_POST['kaydol']))
    {
    if (empty($_POST['usernamek']) OR empty($_POST['passwordk']) OR empty($_POST['emailk']))
    {
    echo "Boş Alan Bırakmayın!";
    }
    elseif (!filter_var($_POST['emailk'], FILTER_VALIDATE_EMAIL))
    {
    echo "Geçerli email girin";
    }
    else
    {
    $usernamek = $_POST['usernamek'];
    $passwordk = $_POST['passwordk'];
    $emailk = $_POST['emailk'];
    $conn = $db->baglan();
    $ayni = $conn->query("SELECT * from members WHERE username='$usernamek'");
    $row = $conn->nr($ayni);
    if (mysqli_num_rows($ayni) > 0)
    {
    echo "Başka bir kullanıcı adı seçin.";
    }
    else
    {
    $conn = $db->baglan();
    $kayitet = mysqli_query($conn, "INSERT INTO `members` SET `ID` = NULL, `username` = '{$usernamek}', `password` = '{$passwordk}', `email` = '{$emailk}'");
    if ($kayitet)
    {
    echo "Başarıyla Kayıt Oldunuz.";
    }
    else
    {
    echo "Kayıt olamadınız, bir sıkıntı var.";
    }

    }
    }
    }