2016-03-26 21 views
0

Sorunun nerede olduğunu bilmiyorum, bana yardımcı olabilir misiniz? Bunu hata ayıklayamıyorum. Sorunun nerede olduğunu görmek için her yerde bir yankı koymak için çalıştı ve bu if(isset($_POST['SUBMIT'])) { İşte

bütün php olduğunu durdu:

<form action="index.php" method="Post" class="register"> 
       <input type="text" name="name" placeholder="Name(Can be nick!)"> 
       <input type="pasword" name="pass" placeholder="Password"> 
       <input type="password" name="pass2" placeholder="Password again"> 
       <input type="text" name="email" placeholder="Email address"> 
       <input type="submit" value="Register"> 
      </form> 
+1

'ad türünü göndermek eksik attribute' !! – Saty

+1

Gönder düğmesine basın, "name =" SUBMIT "yazın, sorun buydu. Teşekkür ederim! @djot: ingilizcede ne olduğunu bilmiyordum, bu yüzden macarette yazdım :) – pavip

+0

Kod girişinizle ilgili sorunlarınız var. Parola 6 karakterden azsa, formu işlersiniz. Düz metin şifreleri kullanıyor gibi görünüyor. Ayrıca sql enjeksiyonlarına açıktır. – chris85

cevap

0

Formun olarak, name özniteliği bulunamadığından dolayı, $_POST['SUBMIT'] bulunamadı.

Bunu belirtmek gerekir:

<input name="SUBMIT" type="submit" value="Register"/> 

İkincisi, '$email tek bir alıntı kaçırmış olacaktır:

$sql = "INSERT INTO user (username, password, email) 
       VALUES ('$name, '$password','$email')"; 
Üçüncüsü

, sen önleyecektir mysqli_real_escape_string kullanarak MySQL Enjeksiyonu:

$name = mysqli_real_escape_string($conn, $_POST['name']); 
$password = mysqli_real_escape_string($conn, $_POST['pass']); 
$email = mysqli_real_escape_string($conn, $_POST['email']); 

Dördüncüsü, sen ör boş alanlar için kontrol etmek empty() kullanarak düşünebilirsiniz .:

if(!empty($_POST['name'])) { 
+0

Çok teşekkürler! @luweiqi – pavip

+0

@pavip Rica ederim! Sorunu çözdüğüne sevindim :) – Panda

+0

Ama güvenlik hakkında daha fazla şey öğrenmem gerekiyor. Hatta neden mysql bağlantı ve vb ihtiyacım olduğunu bilmiyorum .. Tekrar teşekkürler! :) @luweiqi – pavip

-1
: Burada

<?php 
$conn = mysqli_connect($IP, "pavip", "", "c9") or die("Kapcsolatot nem sikerult letrehozni!"); 

$error = "Here's the problem: "; 
$err = false; 
$name = $_POST['name']; 
$password = $_POST['pass']; 
$email = $_POST['email']; 

if(isset($_POST['SUBMIT'])) { 
    echo $name; 
    if(isset($_POST['email'])){ 
     if($_POST['name'] != "") { 
      if($_POST['pass'] == $_POST['pass2'] AND strlen($_POST['pass']) < 6) { 
       if($_POST['email'] != "") { 

        $name = $_POST['name']; 
        $password = $_POST['pass']; 
        $email = $_POST['email']; 

        $sql = "INSERT INTO user (username, password, email) 
        VALUES ('$name, '$password','$email)"; 
       }else { 
        $error .= "No email"; 
        $err = true; 
       } 
      }else { 
       $error .= "Password too short or wrong ujrairas "; 
       $err = true; 
      } 
     }else { 
      $error .= "No name "; 
      $err = true; 
     } 
    }else { 

    } 
} 
if($err == true){ echo '<script type="text/javascript">alert("' . $error . '"); </script>';} 
?> 

Ve yaptığım şeklidir

"SUBMIT" adında bir gönderme düğmeniz yok, eğer bu şekilde kullanmak istiyorsanız, atleast

<input type="submit" name="SUBMIT"> 

doğrudan rota afaik da if ($ _ POST) kullanabilir nota farklı bir kontrolör fonksiyonuna göndermek için daha iyi olurdu

0

giriş isim yok bir göz atın lütfen =" SUBMIT "HTML'nizde herhangi bir yerde bahsetti.

Yaptığınız değişiklik

:

<input type="submit" value="Register"> 

bu yardımcı olur Umut

<input type="submit" value="Register" name="SUBMIT" /> 

için!