Poslao: 17 Avg 2013 14:11
|
offline
- E.L.I.T.E.
- Legendarni građanin
- 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.
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>
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!"
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 17 Avg 2013 14:14
|
offline
- 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
|
|
|
|
|
Poslao: 17 Avg 2013 15:45
|
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.
|
|
|
|
Poslao: 17 Avg 2013 15:52
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
MAN, MAN i opet MAN. Mozda jednom ukapiras sta znaci MAN
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.
|
|
|
|
Poslao: 17 Avg 2013 16:33
|
offline
- E.L.I.T.E.
- Legendarni građanin
- 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 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
Daj bre ikac, ne zaje*vaj se u pitanju je važan projekat Znam da ima na php.net, ali lik je na isti način odradio ovo na lokalu i radilo je odlično
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'
);");
|
|
|
|
Poslao: 17 Avg 2013 16:40
|
offline
- 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
|
|
|
|
Poslao: 17 Avg 2013 17:01
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Napisano: 17 Avg 2013 16:48
Pa odradio sam to 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 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` ( `id` , `username` , `password` , `email` ) VALUES ( NULL , '$username', '$password', '$email' );");
echo "Uspesno ste registrovani!";
}
}
}
?>
</body>
</html>
Radi super sada, bez greške, hvala ti _iKaC na profesionalnoj pomoći
|
|
|
|
Poslao: 17 Avg 2013 17:14
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
Zasto koristis mysql kad sii predhodnom postu postavljao MySQLi ?
|
|
|
|
Poslao: 17 Avg 2013 17:23
|
offline
- E.L.I.T.E.
- Legendarni građanin
- 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 (tu se u kodu i dalje pokazuju) i rešio problem
|
|
|
|