Registracija - problem

1

Registracija - problem

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Danas sam trebao da odradim sistem za registraciju korisnika u PHP i napravio bazu:

Host: mysql1.000webhost.com Username: a6182331_metro Baza: a6182331_metro Lozinka: *************

U njoj se nalazi tabela korisnici, tu je id, username, password i email.

Arrow index.php
<form action="registracija.php" method="POST"> <table> <tr> <td><b>Korisničko ime:</b></td><td><input type="text" name="username"/></td> </tr> <tr> <td><b>Lozinka:</b></td><td><input type="password" name="password"/></td> </tr> <tr> <td><b>E-mail:</b></td><td><input type="text" name="email"/></td> </tr> <tr> <td><input type="submit" name="submit" value="Registruj se!"/></td> </tr> </table> </form>

Arrow registracija.php
<?php mysqli_connect('mysql1.000webhost.com','a6182331_metro','lozinka','a6182331_metro'); mysql_select_db('a6182331_metro'); if(isset($_POST['submit'])){  if(strlen($_POST['username']>50)){  echo "Korisnicko ime ne moze biti vece od 50 karaktera.";  }  else if(strlen($_POST['email'])>50){  echo "E-mail ne sme biti duzi od 50 karaktera";  }  else{  $password = md5($_POST['password']);  $username = $_POST['username'];  $email = $_POST['email'];    if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)){  echo "E-mail nije u ispravnom formatu";  }  else{  $q = mysql_query("INSERT INTO `a6182331_metro`.`korisnici` (  `id` ,  `username` ,  `password` ,  `email`  )  VALUES (  NULL , '$username', '$password', '$email'  );");  echo "Uspesno ste registrovani!";  }  } } ?> </body> </html>

Kad pokušam da se registrujem kroz ovu formu pojave mi se greške:

Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'a6182331_metro'@'10.1.1.13' (using password: YES) in /home/a6182331/public_html/registracija.php on line 6 Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /home/a6182331/public_html/registracija.php on line 7 Warning: mysql_query() [function.mysql-query]: Access denied for user 'a6182331'@'localhost' (using password: NO) in /home/a6182331/public_html/registracija.php on line 32 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a6182331/public_html/registracija.php on line 32

Na kraju svih tih grešaka se ispiše "Uspesno ste se registrovali!" Confused



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Citat:Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'a6182331_metro'@'10.1.1.13' (using password: YES) in /home/a6182331/public_html/registracija.php on line 6

Prvo sto kaze u gresci je da ti nevalja pass ili user i nemoze se konektovati na bazu

Kada koristis Mysqli koristi ga kao objekat.
[quote]
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) {     printf("Connect failed: %s\n", mysqli_connect_error());     exit(); }

Sledece nisu oni dzabe iskljucili MySQL... Koristi PREPARED STATEMENTS i BINDOVE

/* create a prepared statement */ if ($stmt = $mysqli->prepare("SELECT * FROM user WHERE Name=?")) {     /* bind parameters for markers */     $stmt->bind_param("s", $user);     /* execute query */     $stmt->execute();     /* bind result variables */     $stmt->bind_result($district);     /* fetch value */     $stmt->fetch(); }

Pored ove greske ne moze da bude registrovan nikako. Ja secem onu stvar ako si pored ove greske registrovao korisnika. Uostalom ako nemas u register drugu konekciju



offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Pa video bih valjda u bazi da sam nekog korisnika uspeo da registrujem Razz Otkud pogrešan pass kad koristim isti i za hosting i za bazu, nemoguće da je pogrešan Question

A za ove prepared statements i binds, kako da ih prilagodim ovde, ne znam ni šta je to Confused Jel' može to nekako lakše da se odradi?

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 241
  • Gde živiš: Zemun

A jesi ti napravio bazu i dodelio user-a koji će upravljati tom bazom? Ako imaš cPanel koristi MySQL Wizard za kreiranje baze i usera koji će upravljati tom bazom.

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

MAN, MAN i opet MAN. Mozda jednom ukapiras sta znaci MAN Very Happy

Covek za prepared stm procitaj na php.net tamo je lepo objasnjeno. A ova greska se javlja samo kad je bad user, pass, host. Treceg nema.

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Napisano: 17 Avg 2013 16:30

cvrlebg ::A jesi ti napravio bazu i dodelio user-a koji će upravljati tom bazom?

Pa nisam valjda tol'ka budala Mr. Green cms, radim na 000webhost, tu moraš odmah i user-a da napraviš.

ime baze == ime korisnika

_iKaC ::MAN, MAN i opet MAN. Mozda jednom ukapiras sta znaci MAN Very Happy

Daj bre ikac, ne zaje*vaj se u pitanju je važan projekat LOL Znam da ima na php.net, ali lik je na isti način odradio ovo na lokalu i radilo je odlično Razz

Dopuna: 17 Avg 2013 16:33

Prepared statements and stored procedures - znači to da odradim umesto ovog dela:

$q = mysql_query("INSERT INTO `a6182331_metro`.`korisnici` (  `id` ,  `username` ,  `password` ,  `email`  )  VALUES (  NULL , '$username', '$password', '$email'  );");

Question

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Covek pa nije ti to MYSQL gde je tebi u kodu execute() ?

Konektuje se na bazu

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) {     printf("Connect failed: %s\n", mysqli_connect_error());     exit(); }

Prepare an insert statement
$query = "INSERT INTO user (name, pass,) VALUES (?,?,?)"; $stmt = $mysqli->prepare($query);

Sada binduj vrednost

$stmt->bind_param("sss", $user, $pass, );

Sada dodaj vrednost

$val1 =$_POST['user']; $val2 = $_POST['pass']

I na kraju zvekni

$mysql->execute()

Bez execute nemoze da se izvrsi upit... To je moglo u mysql ali u mysqli nema toga buraz

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Napisano: 17 Avg 2013 16:48

Pa odradio sam to Smile Ja sam učio da se ovako konektujem sa bazom:

<?php // Kreiranje konekcije $varijabla=mysqli_connect(...); // Ispitivanje konekcije if (mysqli_connect_errno($varijabla))   {   echo "Konekcija sa MySQL nije uspela: " . mysqli_connect_error();   } ?>

Potpuno mi je nepoznat taj koncept koji si ti napisao , ali ga razumem .

Dopuna: 17 Avg 2013 16:50

_iKaC ::Bez execute nemoze da se izvrsi upit... To je moglo u mysql ali u mysqli nema toga buraz

Razumem Smile Sad ću pokušati opet.

Dopuna: 17 Avg 2013 17:01

E sad sam mu je** kevu

<!DOCTYPE html> <html> <body bgcolor="#528BB1"> <?php mysql_connect('mysql1.000webhost.com','a6182331_metro','lozinka'); mysql_select_db('a6182331_metro'); if(isset($_POST['submit'])) { if(strlen($_POST['username']>50)) { echo "Korisnicko ime ne moze biti vece od 50 karaktera."; } else if(strlen($_POST['email'])>50) { echo "E-mail ne sme biti duzi od 50 karaktera"; } else { $password = md5($_POST['password']); $username = $_POST['username']; $email = $_POST['email']; if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)) { echo "E-mail nije u ispravnom formatu"; } else{ $q = mysql_query("INSERT INTO `a6182331_metro`.`korisnici` (&nbsp;`id` ,&nbsp;`username` ,&nbsp;`password` ,&nbsp;`email`&nbsp;)&nbsp;VALUES (&nbsp;NULL , '$username', '$password', '$email'&nbsp;);"); echo "Uspesno ste registrovani!"; } } } ?> </body> </html>

Radi super sada, bez greške, hvala ti _iKaC na profesionalnoj pomoći Ziveli

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Zasto koristis mysql kad sii predhodnom postu postavljao MySQLi ?

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Zato što sam na meto gde sam trebao staviti mysql_user, stavio password i sve zabrljao , kad si mi dao kod ponovo sam pogledao onaj prvi i uočio grešku , vratio sve na mysql i dodao još host, user i pass, popravio par greškaa sa &nbsp; (tu se u kodu i dalje pokazuju) i rešio problem Smile

Ko je trenutno na forumu
 

Ukupno su 1000 korisnika na forumu :: 24 registrovanih, 2 sakrivenih i 974 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., babaroga, bigfoot, Centauro, Dimitrije Paunovic, Djordje29, DonRumataEstorski, dragoljub11987, Džordžino, Georgius, havoc995, ILGromovnik, ivica976, Karla, kovinacc, Kriglord, m0nstrum_, milos.cbr, opt1, pein, Shilok, sovanova95, vaso1, Vlad000