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

arda.nb01

Femtopat
Katılım
24 Ocak 2024
Mesajlar
40
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.
 
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>
 
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.
 
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:
@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.

Kayıt.php dosyasını atın.
 

Geri
Yukarı