Ajutor script rezervare nume (REZOLVAT)

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

Locked
User avatar
0nLy CSGO
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 18 Jun 2018, 00:10
Detinator Steam: Da
Detinator server CS: CSGO.ENGAME.RO
SteamID: only_ro
Fond eXtream: 0
Contact:

24 Oct 2018, 18:16

Am urmatorea pagina de rezervare nume
| Afiseaza codul
<?php if(isset($_POST['post69'])) {
  $q = Config::$g_con->prepare("INSERT INTO `admins_csgo` (`auth`, `password`, `access`, `flags`, `warn`, `email`, `uniqid`) VALUES (?, ?, 'z', 'a', '0', ?, ?);");
  $q->bindParam(1, $_POST['nume']);
  $q->bindParam(2, $_POST['parola']);
  $q->bindParam(3, $_POST['email']);
  $q->bindParam(4, $_POST['uniqid']);

  $q->execute();
     echo 

    '
     <meta http-equiv="refresh" content="1; url=register">

     Ti-ai rezervat cu succes numele.
    ';

}
?>
insa se poate face cont peste cont si nu stiu cum sa adaug o rescrictie in care sa nu se mai foloseasca acelasi nume/email.
cine ma poate ajuta, nu e foarte greu, stiu, dar nu pricep.
multumesc.
Last edited by VLD00 on 26 Oct 2018, 20:09, edited 3 times in total.
Reason: Marcat ca "rezolvat"
RoyalServer
DanM
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 16 Jan 2017, 20:37
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

24 Oct 2018, 18:31

Varianta simpla ce nu necesita modificarea scriptului - intrii in phpmyadmin si faci coloanele nume/email unice (unique) sau primary.

Astfel cand incearca sa adauge un cont deja existent, va primi o eroare de la mysql.

Varianta mai "complicata" - faci un SELECT count(*) din admins_csgo unde numele e numele introdus si mailul la fel. Faci un if in care verifici valoarea selectului si apoi, in caz ca val==0 bagi chestia cu insert.
User avatar
0nLy CSGO
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 18 Jun 2018, 00:10
Detinator Steam: Da
Detinator server CS: CSGO.ENGAME.RO
SteamID: only_ro
Fond eXtream: 0
Contact:

24 Oct 2018, 18:41

DanM wrote:Varianta simpla ce nu necesita modificarea scriptului - intrii in phpmyadmin si faci coloanele nume/email unice (unique) sau primary.

Astfel cand incearca sa adauge un cont deja existent, va primi o eroare de la mysql.

Varianta mai "complicata" - faci un SELECT count(*) din admins_csgo unde numele e numele introdus si mailul la fel. Faci un if in care verifici valoarea selectului si apoi, in caz ca val==0 bagi chestia cu insert.
varianta 2 ar fi mai buna, am incercat ce ai spus, dar nu-mi iese, nu ma poti ajuta mai detaliat? pe discord ceva.
Apoc
Membru, skill 0
Membru, skill 0
Posts: 1
Joined: 24 Oct 2018, 18:53
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

24 Oct 2018, 19:01

Code: Select all

<?php

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

  $q = Config::$g_con->prepare("INSERT INTO `admins_csgo` (`auth`, `password`, `access`, `flags`, `warn`, `email`, `uniqid`) VALUES (?, ?, 'z', 'a', '0', ?, ?);");

  $q->bindParam(1, $_POST['nume']);
  $q->bindParam(2, $_POST['parola']);
  $q->bindParam(3, $_POST['email']);
  $q->bindParam(4, $_POST['uniqid']);

      $user = Config::$g_con->query("SELECT `auth` FROM `admins_csgo` WHERE `auth` = '".$_POST['nume']."'");
      $user->execute();

      $find = $user->rowCount(); 

          if($find) {
              print 'Mai exista cineva cu acest nume, alege altul!';
          } else {

               $q->execute();

                echo 

    '
     <meta http-equiv="refresh" content="1; url=register">

     Ti-ai rezervat cu succes numele.
    ';
    
          }

}


?>
DanM
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 16 Jan 2017, 20:37
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

24 Oct 2018, 19:23

---

Am pierdut execute-ul. Nu uita sa securizezi. Asa esti expus la sql injection.
User avatar
0nLy CSGO
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 18 Jun 2018, 00:10
Detinator Steam: Da
Detinator server CS: CSGO.ENGAME.RO
SteamID: only_ro
Fond eXtream: 0
Contact:

24 Oct 2018, 19:30

Apoc wrote:

Code: Select all

<?php

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

  $q = Config::$g_con->prepare("INSERT INTO `admins_csgo` (`auth`, `password`, `access`, `flags`, `warn`, `email`, `uniqid`) VALUES (?, ?, 'z', 'a', '0', ?, ?);");

  $q->bindParam(1, $_POST['nume']);
  $q->bindParam(2, $_POST['parola']);
  $q->bindParam(3, $_POST['email']);
  $q->bindParam(4, $_POST['uniqid']);

      $user = Config::$g_con->query("SELECT `auth` FROM `admins_csgo` WHERE `auth` = '".$_POST['nume']."'");
      $user->execute();

      $find = $user->rowCount(); 

          if($find) {
              print 'Mai exista cineva cu acest nume, alege altul!';
          } else {

               $q->execute();

                echo 

    '
     <meta http-equiv="refresh" content="1; url=register">

     Ti-ai rezervat cu succes numele.
    ';
    
          }

}


?>
iti multumesc.
acesta pare in regula, imi spuneti daca este 'securizat'?
DanM
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 16 Jan 2017, 20:37
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

24 Oct 2018, 20:00

Am zis mai sus, nu.
Foloseste bindParam ca la tine.
User avatar
0nLy CSGO
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 18 Jun 2018, 00:10
Detinator Steam: Da
Detinator server CS: CSGO.ENGAME.RO
SteamID: only_ro
Fond eXtream: 0
Contact:

24 Oct 2018, 20:07

Nu stiu cumetre sa-l adaug.
SnitchBitch
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 104
Joined: 24 Oct 2016, 11:12
Detinator Steam: Da
CS Status: Status asemanator cu cel de la programel
SteamID: Nu stiu dastea
Reputatie: Utilizator neserios (tepar)
Fond eXtream: 0
Location: Balta Alba

25 Oct 2018, 23:36

Code: Select all

<?php

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

  $nume = $_POST['nume'];

  $q = Config::$g_con->prepare("INSERT INTO `admins_csgo` (`auth`, `password`, `access`, `flags`, `warn`, `email`, `uniqid`) VALUES (?, ?, 'z', 'a', '0', ?, ?);");

  $q->bindParam(1, $_POST['nume']);
  $q->bindParam(2, $_POST['parola']);
  $q->bindParam(3, $_POST['email']);
  $q->bindParam(4, $_POST['uniqid']);

      $user = Config::$g_con->prepare("SELECT `auth` FROM `admins_csgo` WHERE `auth` = :nume");
      $user->execute([':nume' => $nume]);
	  
      $find = $user->rowCount(); 

          if($find) {
              print 'Mai exista cineva cu acest nume, alege altul!';
          } else {

               $q->execute();

                echo 

    '
     <meta http-equiv="refresh" content="1; url=register">

     Ti-ai rezervat cu succes numele.
    ';
    
          }

}


?>
Image

"Buy reclama if you want" =)))))))))
User avatar
0nLy CSGO
Membru, skill 0
Membru, skill 0
Posts: 39
Joined: 18 Jun 2018, 00:10
Detinator Steam: Da
Detinator server CS: CSGO.ENGAME.RO
SteamID: only_ro
Fond eXtream: 0
Contact:

26 Oct 2018, 19:57

mersi enorm, puteti da closed.
Locked

Return to “Discutii generale”

  • Information