Registracija - problem

1

Registracija - problem

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

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: 4564

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: 4564

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: 4564

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: 4564

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 777 korisnika na forumu :: 42 registrovanih, 11 sakrivenih i 724 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: aleksmajstor, Alibaba1981, amaterSRB, Bubili, Bubimir, cavatina, darios, DARKMEN22, darkojbn, Dejan84, dejoglina, djukapfc, dragoljub11987, Drug pukovnik, Fog of War, FOX, hyla, kybonacci, LonelyWolf, MarKhan, mercedesamg, mikrimaus, mile23, mnn2, Niske, Panter, pera12345, Petarvu, procesor, proka89, raptorsi, regul, S2M, sickmouse, Tas011, Van, Vlad000, Vlada1389, zdrebac, zillbg, zlatkoa987, 1107