v2.5.2
Giriş yap

PHP PDO ile MySQL'ime veri yazdıramıyorum

Anonim
355 defa görüntülendi

Profil uygulaması Websitesi yapıyorum fakat Localhost'umda çalışan kod server'a geçince çalışmıyor. Bir yerden mysql ve hosting aldım bağlantıyı kurdum herşey güzelce çalışıyor fakat iş registere gelince olmuyor. Sürekli stat=no olarak geliyor ve veriyi mysqle yüklemiyor.

Website:
http://linkfyle.unaux.com
http://linkfyle.unaux.com/register.php

Kod:

PHP:

	if (isset($_POST['suble'])) {
		$username = htmlspecialchars(trim(strtolower($_POST['user_username'])));
		$name = htmlspecialchars(trim($_POST['user_name']));
		$lastname = htmlspecialchars(trim($_POST['user_lastname']));
		$password = htmlspecialchars(md5(trim($_POST['user_password'])));

		if (!$username || !$name || !$lastname || !$password) {
			header("Location:../register.php?stat=null");
		} else {

		$tableques=$db->prepare("SELECT * FROM user where user_username=:tableques");
  		$tableques->execute(array(
    		'tableques' => $_POST['user_username']
 		));
 		$dbc=$tableques->rowCount();

 		$caps = preg_match('@[A-Z]@', $_POST['user_password']);
		$small = preg_match('@[a-z]@', $_POST['user_password']);
		$number = preg_match('@[0-9]@', $_POST['user_password']);
 		$pattern ='/^[-a-zA-Z_\x{ÖÇŞİĞÜöçşğüı}\s]*$/u';
		$usernamechars = preg_match('@[^\w]@', $_POST['user_username']);

		$namenumber = preg_match('@[0-9]@', $_POST['user_name']);
		$namechars = preg_match($pattern, $_POST['user_name']);

		$lastnamenumber = preg_match('@[0-9]@', $_POST['user_lastname']);
		$lastnamechars = preg_match($pattern, $_POST['user_lastname']);

		if ($dbc == 1) {
 			header("Location:../register.php?stat=username");
 		}else if($dbc ==0){
 		if ($usernamechars) {
			header("Location:../register.php?username=no");
		}else if (!$caps || !$small || !$number || strlen($_POST['user_password']) < 8) {
			header("Location:../register.php?password=no");
		}else if ($namenumber) {
			header("Location:../register.php?name=no");
		}else if ($lastnamenumber) {
			header("Location:../register.php?lastname=no");
		}else if ($namechars || $lastnamechars) {
		$saves = $db->prepare("INSERT into user set
			user_username = :user_username,
			user_name = :user_name,
			user_lastname = :user_lastname,
			user_password = :user_password
		");

		$insert = $saves->execute(array(
			'user_username' => $username,
			'user_name' => $name,
			'user_lastname' => $lastname,
			'user_password' => $password
		));

		if ($insert)
		{
			header("Location:../login.php");
		} else {
			header("Location:../register.php?stat=no");
		}
	}
	}
}
}

HTML:

<?php include 'src/header.php'; 

	if (@$_SESSION['oturum']) {
		header("Location:/");
	}

?>
	<form action="src/logreg.php" align="center" method="POST">
		<label>Kullanıcı Adı</label>
		<input type="username" name="user_username" maxlength="15" required>
		<br>
		<label>Ad</label>
		<input type="text" name="user_name" maxlength="15" required>
		<br>
		<label>Soyad</label>
		<input type="text" name="user_lastname" maxlength="10" required>
		<br>
		<label>Şifre</label>
		<input type="password" name="user_password" required>
		<br>
		<input type="submit" name="suble">
		<?php if (@$_GET['stat']=='username') { ?>
			<div class="error">
				Bu username'den var zaten
			</div>
		<?php } ?>
		<?php if (@$_GET['username']=='koyulmaz') { ?>
			<div class="error">
				Bu nasıl username
			</div>
		<?php } ?>
		<?php if (@$_GET['password']=='koyulmaz') { ?>
			<div class="error">
				Şifre en az 8 karakter uzunluğunda olmalı ve en az bir büyük harf ve bir rakam içermelidir.
			</div>
		<?php } ?>
		<?php if (@$_GET['name']=='koyulmaz') { ?>
			<div class="error">
				İsmin bu mu cidden?
			</div>
		<?php } ?>
		<?php if (@$_GET['lastname']=='koyulmaz') { ?>
			<div class="error">
				Lütfen sisteme kafanız güzel değilken kaydolun.
			</div>
		<?php } ?>
	</form>
<?php include 'src/footer.php'; ?>
volkanikrater
1070 gün önce

Merhaba;
Senin kodlarınla deneme yaptığımda login.php e yönleniyor yani insert işlemi başarılı. tablo yapını görme şansımız varmı. En basit yolla benim hazırladığım tablo şu şekilde. eğer yanılmıyorsam tabloda bir sorunun var.

CREATE TABLE user (
id int(11) NOT NULL,
user_username varchar(55) NOT NULL,
user_name varchar(55) NOT NULL,
user_lastname varchar(55) NOT NULL,
user_password varchar(55) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Kolay gelsin. Çözüme ulaşamazsan tekrar yazabilirmisin.