2016-04-01 14 views
0

Yeni kullanıcıların uygulamada kullanmak üzere bir hesap açmasını sağlamak için giriş sayfamla bir kayıt sayfası bağlamaya çalışıyorum. Formu, kullanıcıların bu forma gireceği tüm bilgileri içeren MySQL'deki tbl_Users tablosuna bağladım. Sorguları kullanarak her şeyi düzgün bir şekilde ayarlamıştım ve form en azından doğru şekilde görüntüleniyor. Ancak göndermeyi tıkladığımda, sayfa artık yalnızca boş alanlarla yenileniyor ve veritabanımdaki veritabanımda yeni veriler yok. Nerede yanlış gidiyorum?Neden Kayıt formum hala MySQL tablolarıma veri girmiyor

<?php 

$conn = mysqli_connect("localhost", "b4014107", "Win1", "b4014107_db2") or die (mysqli_connect_error()); 

?> 

register.php

<? 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
session_start(); 
include('ConnectorCode.php'); 

if(isset($_POST['submit'])) { 
$FName = $_POST['First_Name']; 
$LName = $_POST['Last_Name']; 
$Email = $_POST['Email']; 
$UName = $_POST['User_Name']; 
$Password = $_POST['Password']; 

$FName = mysqli_real_escape_string($conn, $FName); 
$LName = mysqli_real_escape_string($conn, $LName); 
$Email = mysqli_real_escape_string($conn, $Email); 
$UName = mysqli_real_escape_string($conn, $UName); 
$Password = mysqli_real_escape_string($conn, $Password); 

$sql = "SELECT Email FROM tbl_Users WHERE Email='$Email'"; 
$result = mysqli_query($conn, $sql); 
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

if(mysqli_num_rows($result) == 1) 
{ 
    echo "Sorry, the email you are trying to enter already exists"; 
} 
else 
{ 
    $query = mysqli_query($conn, "INSERT INTO tbl_Users(First_Name, Last_Name, Email, User_Name, Password) VALUES ('$FName', '$LName', '$Email', '$UName', '$Password')"); 
if($query) 
{ 
echo "Thank you for registering"; 
} 
header('Location: Index.php'); 
} 

} 
?> 

<!DOCTYPE HTML> 
<head> 
<title>Register</title> 
</head> 
<body> 

<h1> Register Page </h1> 

<p> Please fill in the form to register <p> 

<form method="post" action=""> 
<fieldset> 
First Name: <br /> 
<input name="First_Name" type="text" class="input" size="25" required /> <br /> <br /> 
Last Name: <br /> 
<input name="Last_Name" type="text" class="input" size="25" required /> <br /> <br /> 
Email: <br /> 
<input name="Email" type="email" class="input" size="25" required /> <br /> <br /> 
Username: <br /> 
<input name="User_Name" type="text" class="input" size"25" required /> <br /> <br /> 
Password: <br /> 
<input name="Password" type="password" class="input" size="25" required /> <br /> <br/> 
<input type="submit" name="submit" value="Register!" /> 
</fieldset> 
</form> 
</body> 
</html> 

ConnectorCode.php: (Ekstra not ben sql-enjeksiyonları engellemek için güvenlik kodu kodlama sürecinde hâlâ)

+0

session_start 'ilk() ; 'üstüne olmak gerekiyor. ikinci form kodu gerekli mi? –

+0

formun kodunu ekleyebilir ve lütfen gösterebilir (eğer varsa) hata mesajını gönderebilirsiniz (varsa) – Unex

+0

Form kodu var, kod sayfasının en altında. –

cevap

0

= "VALUES" adına sahip olduğunuz için, isset koşuluna ($ _ POST ['VALUES']) uymuyorsunuz.

Değişim

if(isset($_POST['VALUES'])) { 

if(isset($_POST['submit'])) { 
+0

Değiştirdim ama hala veritabanımda veritabanımda yeni satırlar alıyorum. –

+0

Herhangi bir hata var mı? – Akairis

+0

Hayır! Çok kafa karıştırıcı olan, ekranın üstünde herhangi bir hata mesajı görüntülenmeyen, gerçekleşen tüm alan yenileme ve tabloya yeni veriler girilmemiş. –

0
Bir çok eksik vardı

... bu yardımcı olur

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
session_start(); 
require_once 'ConnectorCode.php'; 

if(isset($_POST['submit'])) 
{ 

    $FName = mysqli_real_escape_string($conn, $_POST['First_Name']); 
    $LName = mysqli_real_escape_string($conn, $_POST['Last_Name']); 
    $Email = mysqli_real_escape_string($conn, $_POST['Email']); 
    $UName = mysqli_real_escape_string($conn, $_POST['User_Name']); 
    $Password = mysqli_real_escape_string($conn, $_POST['Password']); // why did you need to repeat this all twice? 

    $sql = "SELECT * FROM tbl_Users WHERE Email='$Email'"; // ? didn't understand why you was asking for the Email using the Email... 
    $result = $conn->query($sql); 
    if(count($result) == 0) 
    { 
     $insert_sql = "INSERT INTO tbl_Users (First_Name,Last_Name,Email,User_Name,Password) VALUES ('$FName','$LName','$Email','$UName','$Password')"; 
     if($conn->query($insert_sql)) // You forgot to query this 
     { 
      echo "Thank you for registering"; 
      header('Location: index.php'); // lowercase i 
      exit; // you forgot this 
     } 
    } 
    else 
    { 
     echo "Sorry, that email already exists!"; 
    } 
    $conn->close(); // you forgot this 

} 

?> 

Umut ... için

+0

Çok teşekkür ederim! Ama şimdi php dosyasını her yüklediğimde Bu, sayfanın en üstünde açılır '' sorgu ($ query)) {echo "Kayıt olduğunuz için teşekkürler"; başlık ('Yer: index.php'); çıkış; }} else {echo "Üzgünüz, bu e-posta zaten var!"; } $ conn-> close(); }?> ' –

+0

Şimdi deneyin, düzenlenmiş. Her neyse, şimdi çalışmayı bitiriyorum, bu yüzden sorununuzu çözmeliyim. İyi şanslar. – KDOT

+0

Şimdi bu sorguyu gösteriyor ($ sql); if (count ($ result) == 0) {$ insert_sql = "tbl_Users (First_Name, Last_Name, E-posta, User_Name, Parola) DEĞERLERİ ('$ FName', '$ LName', '$ E-posta', '$ UName INSTERT INTOERT ' '$ Şifre') "; if ($ conn-> query ($ insert_sql)) {echo "Kayıt olduğunuz için teşekkür ederiz"; başlık ('Yer: index.php'); çıkış; }} else {echo "Üzgünüz, bu e-posta zaten var!"; } $ conn-> close(); }?> ' –