newyorkas

Registracija PHP/MySQL

Recommended Posts

Sveiki. Reikt┼│ pagalbos su PHP ir duomen┼│ baze. Visk─ů kaip ir gan─Śtinai normaliai sura┼íiau, bet d─Śl ka┼żkokios prie┼żasties, PHP neperduoda duomen┼│ ─» duomen┼│ baz─Ö, o tiesiog i┼ímeta "This page isn't working". Duomen┼│ baz─Ś, mano galva, sukurta gerai, duomen┼│ baz─Ö php faile taip pat nurodau kaip ir gerai, SELECT'as mano galva taip pat yra para┼íytas gerai.┬áGal gal─Śtum─Śte ┼íiek tiek pagelb─Śt?

db.PNG.0e0db6a948751f7602bc61713ff07c0d.PNG

A─Źi┼ź Jums.

Kodus ─»k─Śliau ─» spoiler'ius.

registracija.html

 
<!DOCTYPE HTML>
<html>
<head>
  <title>Register Form</title>
</head>
<body>
 <form action="insert.php" method="POST">
  <table>
   <tr>
    <td>Name :</td>
    <td><input type="text" name="username" required></td>
   </tr>
   <tr>
    <td>Password :</td>
    <td><input type="password" name="password" required></td>
   </tr>
   <tr>
    <td>Gender :</td>
    <td>
     <input type="radio" name="gender" value="m" required>Male
     <input type="radio" name="gender" value="f" required>Female
    </td>
   </tr>
   <tr>
    <td>Email :</td>
    <td><input type="email" name="email" required></td>
   </tr> 
   <tr>
    <td>Phone no :</td>
    <td>
     <select name="phoneCode" required>
      <option selected hidden value="">Select Code</option>
      <option value="370">370</option>
     </select>
     <input type="phone" name="phone" required>
    </td>
   </tr>
   <tr>
    <td><input type="submit" value="Submit"></td>
   </tr>
  </table>
 </form>
</body>
</html>

insert.php

 

 
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$email = $_POST['email'];
$phoneCode = $_POST['phoneCode'];
$phone = $_POST['phone'];
if (!empty($username) || !empty($password) || !empty($gender) || !empty($email) || !empty($phoneCode) || !empty($phone)) {
 $host = "localhost";
    $dbUsername = "root";
    $dbPassword = "";
    $dbname = "register";
    //create connection
    $conn = new mysqli($host, $dbUsername, $dbPassword, $dbname);
    if (mysqli_connect_error()) {
     die('Connect Error('. mysqli_connect_errno().')'. mysqli_connect_error());
    } else {
     $SELECT = "SELECT email From vartotojai Where email = ? Limit 1";
     $INSERT = "INSERT Into vartotojai (username, password, gender, email, phoneCode, phone) values(?, ?, ?, ?, ?, ?)";
     //Prepare statement
     $stmt = $conn->prepare($SELECT);
     $stmt->bind_param("s", $email);
     $stmt->execute();
     $stmt->bind_result($email);
     $stmt->store_result();
     $rnum = $stmt->num_rows;
     if ($rnum==0) {
      $stmt->close();
      $stmt = $conn->prepare($INSERT);
      $stmt->bind_param("ssssii", $username, $password, $gender, $email, $phoneCode, $phone);
      $stmt->execute();
      echo "New record inserted sucessfully";
     } else {
      echo "Someone already register using this email";
     }
     $stmt->close();
     $conn->close();
    }
} else {
 echo "All field are required";
 die();
}
?>

 

Redaguota , nario newyorkas

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»

─îia pas tave hibridas. Ne┼żinau nuo kurios vietos net taisyti :D

Prepare statement┼│ absoliu─Źiai nereikia naudoti, nes nesikreipi ─» duomen┼│ baz─Ö du kartus. O kad i┼ívengti SQL injekcijos labai prasta mintis.

Turi visada filtruoti su grie┼żtais filtrais, nes dabar gali HTML/JS kodo prira┼íyti, kas i┼í to, kad apsaugo nuo SQL?

Jeigu nori patikrinti ar toks vartotojas egzistuoja, papras─Źiausiai ra┼íai:

if ($conn->query("SELECT COUNT(`id`) FROM `vartotojai` WHERE `email` = '$email';") > 0) {

echo 'Toks naudotojas jau yra u┼żregistruotas.';

}

Insertinimas:

if ($conn->query("INSERT INTO `vartotojai` (`username`, `password`, `gender`, `email`, `phoneCode`, `phone`) VALUES ('$username', '$password', '$gender', '$email', '$phoneCode', '$phone');")) {

echo 'Naudotojas buvo s─Śkmingai u┼żregistruotas.';

}

empty spaminti daug kart┼│ n─Śra gerai.

Geriau taip:

if (isset($_POST['username'], $_POST['password'])) { // daugiau POST ┼żinoma per kablel─» pad─Śk.

─Źia jau gali gauti visus POST, nes jie buvo submitinti.

} else {

header('Location: registracija.html');

exit;

}

Ir si┼źlau ra┼íyti visk─ů viename faile, nebent planuoji si┼│sti ajax u┼żklaus─ů. Kitaip vartotojas suklys ir tur─Śs visk─ů i┼í naujo ─»vesti visus duomenis, kai gali viename faile kai ra┼íai atkurti visus POST, sud─Śti atgal ─» laukus.

  • Teigiamai 2

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»
prie┼í 14 valandas(-┼│), NTQ para┼í─Ś:

─îia pas tave hibridas. Ne┼żinau nuo kurios vietos net taisyti :D

Prepare statement┼│ absoliu─Źiai nereikia naudoti, nes nesikreipi ─» duomen┼│ baz─Ö du kartus. O kad i┼ívengti SQL injekcijos labai prasta mintis.

Turi visada filtruoti su grie┼żtais filtrais, nes dabar gali HTML/JS kodo prira┼íyti, kas i┼í to, kad apsaugo nuo SQL?

Jeigu nori patikrinti ar toks vartotojas egzistuoja, papras─Źiausiai ra┼íai:

if ($conn->query("SELECT COUNT(`id`) FROM `vartotojai` WHERE `email` = '$email';") > 0) {

echo 'Toks naudotojas jau yra u┼żregistruotas.';

}

Insertinimas:

if ($conn->query("INSERT INTO `vartotojai` (`username`, `password`, `gender`, `email`, `phoneCode`, `phone`) VALUES ('$username', '$password', '$gender', '$email', '$phoneCode', '$phone');")) {

echo 'Naudotojas buvo s─Śkmingai u┼żregistruotas.';

}

empty spaminti daug kart┼│ n─Śra gerai.

Geriau taip:

if (isset($_POST['username'], $_POST['password'])) { // daugiau POST ┼żinoma per kablel─» pad─Śk.

─Źia jau gali gauti visus POST, nes jie buvo submitinti.

} else {

header('Location: registracija.html');

exit;

}

Ir si┼źlau ra┼íyti visk─ů viename faile, nebent planuoji si┼│sti ajax u┼żklaus─ů. Kitaip vartotojas suklys ir tur─Śs visk─ů i┼í naujo ─»vesti visus duomenis, kai gali viename faile kai ra┼íai atkurti visus POST, sud─Śti atgal ─» laukus.

A─Źi┼ź u┼ż pagalb─ů, persira┼íiau savaranki┼íkai a┼í t─ů registracij─ů, dabar kaip ir viskas normaliai veikia.┬á:)

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»
Sve─Źias
┼ái tema yra u┼żrakinta.

  • ┼áiame puslapyje nar┼ío:   0 nariai

    N─Śra registruot┼│ nari┼│ per┼żi┼źrin─Źi┼│ ┼í─» forum─ů.

  • eneba
  • eneba
  • eneba



  • SuperGames programele
  • SuperGames programele