PHP PDO ile MySQL'e veri yazdıramıyorum
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'; ?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
$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.