PHP Parse error hatası nasıl çözülür?

arda.nb01

Femtopat
Katılım
24 Ocak 2024
Mesajlar
49
Daha fazla  
Cinsiyet
Erkek
PHP'de çok yeniyim ve bu hataları çözmem için ne yapmam lazım?
Hata:

Parse error: Unclosed '{' on line 6'in C:\xampp\htdocs\uyelik\kayıt.php on line 66
Kod:


PHP:
<?php
include("baglanti.php");

if(isset($_POST["kaydet"]))
{
 $name=$_POST["kullaniciadi"];
 $email=$_POST["email"];
 $password=$_POST["parola"];

$ekle="İNSERT INTO kullanicilar(kullanici_adi,email,parola) VALUES ('$name','$email','$password')";
$calistirekle = mysqli_query($baglanti,$ekle);
if ($calistirekle) {
 echo '<div class="alert alert-success" role="alert">
 başarılı bi şekilde kayıt oldun!
 </div>';
}
else{
 echo '<div class="alert alert-danger" role="alert">
 kayıt oluştururken bir hata meydana geldi!
</div>';

}

mysqli_close($baglanti);
?>

<!doctype html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>kayıt</title>
 </head>

 <body>
<div class="container">
 <div class="card">
 <form action= "kayıt.php" method="POST">
 <div class="mb-3">
 <label for="exampleInputEmail1" class="form-label">kullanıcı adı</label>
 <input type="text" class="form-control" id="exampleInputEmail1" name="kullaniciadi">
 <div id="emailHelp" class="form-text"></div>
 </div>
 <div class="mb-3">
 <label for="exampleInputEmail1" class="form-label">E-posta</label>
 <input type="email" class="form-control" id="exampleInputEmail1" name="email">
 <div id="emailHelp" class="form-text"></div>
 </div>
 <div class="mb-3">
 <label for="exampleInputPassword1" class="form-label">şifre</label>
 <input type="password" class="form-control" id="exampleInputPassword1" name="parola">
 </div>
 <div class="mb-3 form-check">
 <input type="checkbox" class="form-check-input" id="exampleCheck1">
 <label class="form-check-label" for="exampleCheck1">beni unutma</label>
 </div>
 <button type="submit" class="btn btn-primary">Kayıt Ol</button>
</form>
 </div>
</div>
 </body>
</html>
 
Kod da if bloğu doğru şekilde kapatılmamış. Tabloya daha verimli kullanıcı girdisi almak için

Kod:
mysqli_real_escape_string

Fonksiyonunu kullanabilirsin.

Kod:
<?php
include("baglanti.php");

if(isset($_POST["kaydet"])) {
 $name = mysqli_real_escape_string($baglanti, $_POST["kullaniciadi"]);
 $email = mysqli_real_escape_string($baglanti, $_POST["email"]);
 $password = mysqli_real_escape_string($baglanti, $_POST["parola"]);

 $ekle = "INSERT INTO kullanicilar(kullanici_adi,email,parola) VALUES (?, ?, ?)";
 $stmt = mysqli_prepare($baglanti, $ekle);
 mysqli_stmt_bind_param($stmt, "sss", $name, $email, $password);
 $calistirekle = mysqli_stmt_execute($stmt);

 if ($calistirekle) {
 echo '<div class="alert alert-success" role="alert">
 başarılı bi şekilde kayıt oldun!
 </div>';
 } else {
 echo '<div class="alert alert-danger" role="alert">
 kayıt oluştururken bir hata meydana geldi!
 </div>';
 }

 mysqli_stmt_close($stmt);
}

mysqli_close($baglanti);
?>

Microsoft Copilot yapayzekası ile yazdığınız kodlardaki hataları derleyebilir, öneriler alabilir ve çalışma mantığını daha iyi anlayabilirsiniz.
 
hocam kusura bakmayın bu seferde ne bir mesaj veriyor sistem nede veritabanına kaydediyor ne yapmalıyım? kod:
PHP:
<?php
include("baglanti.php");

if(isset($_POST["kaydet"])) {
 $name = mysqli_real_escape_string($baglanti, $_POST["kullaniciadi"]);
 $email = mysqli_real_escape_string($baglanti, $_POST["email"]);
 $password = mysqli_real_escape_string($baglanti, $_POST["parola"]);

 $ekle = "INSERT INTO kullanicilar(kullanici_adi,email,parola) VALUES ($nam,$email,$password)";
 $stmt = mysqli_prepare($baglanti, $ekle);
 mysqli_stmt_bind_param($stmt, "sss", $name, $email, $password);
 $calistirekle = mysqli_stmt_execute($stmt);

 if ($calistirekle) {
 echo '<div class="alert alert-success" role="alert">
 başarılı bi şekilde kayıt oldun!
 </div>';
 } else {
 echo '<div class="alert alert-danger" role="alert">
 kayıt oluştururken bir hata meydana geldi!
 </div>';
 }

 mysqli_stmt_close($stmt);
}

mysqli_close($baglanti);
?>

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>kayıt</title>
  </head>




  <body>
<div class="container">
    <div class="card">
    <form action= "kayit.php" method="POST">
    <div class="mb-3">
    <label for="exampleInputEmail1" class="form-label">kullanıcı adı</label>
    <input type="text" class="form-control" id="exampleInputEmail1" name="kullaniciadi">
    <div id="emailHelp" class="form-text"></div>
  </div>
  <div class="mb-3">
    <label for="exampleInputEmail1" class="form-label">E-posta</label>
    <input type="email" class="form-control" id="exampleInputEmail1" name="email">
    <div id="emailHelp" class="form-text"></div>
  </div>
  <div class="mb-3">
    <label for="exampleInputPassword1" class="form-label">şifre</label>
    <input type="password" class="form-control" id="exampleInputPassword1" name="parola">
  </div>
  <div class="mb-3 form-check">
    <input type="checkbox" class="form-check-input" id="exampleCheck1">
    <label class="form-check-label" for="exampleCheck1">beni unutma</label>
  </div>
  <button type="submit" class="btn btn-primary">Kayıt Ol</button>
</form>
    </div>
</div>
  </body>
</html>
 
Kayıt ol butonunun name özelliği yok galiba.

Bu arada kayıt.php adlı dosyaya gönderiyorsun ama attığın koda göre aynı sayfa içinde yapıyorsun işlemleri buna da dikkat et istersen.
 
@533388 nasıl yapcam hocam biraz daha detaylı anlatabilirsen iyi olur istersen dc gelim dc:Arda64.
 
Şu an DC için musaitligim yok ama kayıt ol butonuna name="kaydet" yazman lazım.
şöyle yazdım doğrumu doğruysa bişey değişmedi
PHP:
  <button type="submit" class="btn btn-primary">Kayıt Ol</button name="kaydet">
 
Yanlış.Class'in yanina yazmanız gerek.
@533388 yaptım ve hata :

Fatal error: Uncaught ArgumentCountError: The number of variables must match the number of parameters in the prepared statement in C:\xampp\htdocs\uyelik\kayit.php:11 Stack trace: #0 C:\xampp\htdocs\uyelik\kayit.php(11): mysqli_stmt_bind_param(Object(mysqli_stmt), 'sss', 'arda', 'ardatutku999@gm...', '12345') #1 {main} thrown in C:\xampp\htdocs\uyelik\kayit.php on line 11
 
Son düzenleme:

Kayıt.php dosyasını atın.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…