v2.5.2
Giriş yap

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

keazon
359 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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");
		}
	}
	}
}
}
<?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'; ?>

Cevap yaz
Cevaplar (1)
exe676
1068 gün önce

$insert değişkenini koşula göre işlem yaptırtma kısmını sil. print_r ve var_dump ile ekrana yazdırt.
pdo da hata bilgisni görmek için print_r($dbh->errorInfo()); kullan. bakalım ekrana ne çıkıyor.

sorunun sebebi tablo yapın, sunucu php& mysql versiyonu gibi birçok şey olabilir.