Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

using password: NO

[es] :: PHP :: PHP za početnike :: using password: NO

[ Pregleda: 2201 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon using password: NO04.11.2010. u 15:50 - pre 163 meseci
Na početku pozdrav svima!
Pokušao sam da zaštitim skriptu za registraciju korisnika funkciom protect, ali kada se prosledi upit dobije se
čitav niz upozorenja ovog tipa:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\test\register.php on line 3

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
A link to the server could not be established in C:\xampp\htdocs\test\register.php on line 3

funkcija protect izgleda ovako:
/////////////////////////////////////////////////////////////////
<?php

function protect($string) {
$string = stripslashes($string);
$string = strip_tags($string);
$string = mysql_real_escape_string($string);
}

function connect() {
$db_host = "localhost";
$db_username = "root";
$db_pass = "ovde je lozinka";
$db_name = "test_a";
@mysql_connect("$db_host","$db_username","$db_pass") or die("Konekcija nije uspostavljena");
@mysql_select_db("$db_name") or die("Baza nije dostupna");
}

function conn_carset() {
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
}
?>
/////////////////////////////////////////////////////////////////////
Da nebih prikazivao čitav kod kao primer korišćenja protect iz skripte sam izveo samo ovo:
//////////////////////////////////////////////
if(isset($_POST['submit'])) {

$username = protect($_POST['username']);
......
$username = protect(stripslashes($username));
......
$username = protect(strip_tags($username));
......


//dalje obrada grešaka
..............
//dalje upis u bazu
$username = protect(mysql_real_escape_string($username));
//////////////////////////////////////////////
Napomenuo bih da sam jedino zaštitio bazu lozinkom, da li treba dodatna promena u php.ini?
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: using password: NO04.11.2010. u 15:58 - pre 163 meseci
Ako zelis da ti ispise te greske sa die koje si napisao, ne bi trebalo da stavljas @ ispred tih funkcija za povezivanje

Citat:
@mysql_connect("$db_host","$db_username","$db_pass") or die("Konekcija nije uspostavljena");
@mysql_select_db("$db_name") or die("Baza nije dostupna");

http://www.php.net/manual/en/language.operators.errorcontrol.php
Pre svega proveri da li ti uopste radi baza, tj. da li je pokrenut mysql server.

Sad nam reci kako si ti to "jedino zaštitio bazu lozinkom"? Posto se cini da je upravo tu problem.
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Gost




Profil

icon Re: using password: NO04.11.2010. u 17:22 - pre 163 meseci
Odmah da kažem da sam početnik, hoću reći da se ogradim ako izvalim neku glupost, dakle moji radovi se trenutno zasnivaju na prilagođavanju već urađenih skripti, ali ja jedino mogu da se približim poznavanju php trenutno na taj način, naravno da pokušavam na osnovu stečenog iskustva da uradim po neku skriptu samostalno, i nekad mi uspe u tome.
E sada da ti odgovorim na tvoje pitanje, kad sam rekao da sam jedino zaštito bazu lozinkom mislio sam na to pošto sam čačkao po php.ini naišao sam na:
[ODBC]
; http://php.net/odbc.default-db
;odbc.default_db = Not yet implemented

; http://php.net/odbc.default-user
;odbc.default_user = Not yet implemented

; http://php.net/odbc.default-pw
;odbc.default_pw = Not yet implemented
mada nisam tu ništa dirao, dok nepitam iskusnije u poznavanju php i njegove konfiguracije.
Unapred zahvalan na odgovoru.
 
Odgovor na temu

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Re: using password: NO04.11.2010. u 20:11 - pre 163 meseci
Izvinjavam se potpuno sam zaboravio da se ulogujem pa mi je prethodna poruka označena kao Gost.
 
Odgovor na temu

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Re: using password: NO04.11.2010. u 20:44 - pre 163 meseci
Upravo sam sad primetio da sam izostavio return $string; u funkciji protect, ovde u postu, izvinjavam se na neurednosti.
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: using password: NO04.11.2010. u 21:35 - pre 163 meseci
Daj ti nama ceo kod, ovako cemo da gledamo u pasulj gde ti pozivas konekciju ka bazi koja je nephodna za upotrebu te mysql funkcije.

http://www.php.net/mysql_real_escape_string
Citat:
The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Re: using password: NO04.11.2010. u 22:56 - pre 163 meseci
Funkciju pozivam samo u tim pomenutim slučajevima, pošto je poprilično dogačak kod bespotrebno ga je smeštati,
dakle:
////////////////////////////////////////////////////////////
<?php
if (isset ($_POST['submit'])){
$username = protect($_POST['username']);
$firstname = protect($_POST['firstname']);
$lastname = protect($_POST['lastname']);
itd...
$username = protect(stripslashes($username));
$firstname = protect(stripslashes($firstname));
$lastname = protect(stripslashes($lastname));
itd...
$username = protect(strip_tags($username));
$firstname = protect(strip_tags($firstname));
$firstname = protect(strip_tags($firstname));
itd...


//Greška za podatke koji nedostaju
if ((!$username) || (!$firstname) || (!$lastname) || (!$jmbg) || (!$pol) || (!$pttbroj) || (!$adresa) || (!$telefon) || (!$pass1) || (!$pass2) || (!$email1) || (!$email2)) {

//Greške
$errorMsg = 'GREŠKA: Niste dostavili potrebne informacije:<br /><br />';

if(!$username) {
$errorMsg .= " * Unesite u polje vaše korisničko ime!<br />";
}

if(!$firstname) {
$errorMsg .= " * Unesite u polje vaše ime!<br />";
}

if(!$lastname) {
$errorMsg .= " * Unesite u polje vaše prezime!<br />";
}

if(!$jmbg) {
$errorMsg .= " * Unesite u polje vaš JMBG!<br />";
}

if(!$pol) {
$errorMsg .= " * Selektujte vaš pol!<br />";
}

if(!$pttbroj) {
$errorMsg .= " * Selektujte vaš Grad!<br />";
}

if(!$adresa) {
$errorMsg .= " * Unesite u polje vaš adresu!<br />";
}

if(!$telefon) {
$errorMsg .= " * Unesite u polje vaš telefon!<br />";
}

if(!$pass1) {
$errorMsg .= " * Unesite u polje vašu lozinku!<br />";
}

if(!$pass2) {
$errorMsg .= " * Unesite u polje vašu potvrdu lozinke!<br />";
}

if(!$email1) {
$errorMsg .= " * Unesite u polje vašu email adresu!<br />";
}

if(!$email2) {
$errorMsg .= " * Potvrdite vašu email adresu!<br />";
}

}else if ($pass1 != $pass2) {
$errorMsg = 'GREŠKA: Vaše lozinke se neslažu, pokušajte ponovo.<br/>';

}else if ($email1 != $email2) {
$errorMsg = 'GREŠKA: Vaše email adrese se neslažu, pokušajte ponovo.<br/>';

}else if (!valid_email($email1)) {
$errorMsg = 'GREŠKA: *Email adresa nije validna mora sadržati [email protected], pokušajte ponovo!<br />';

}else if ((strlen($pass1) < 6) || (strlen($pass1) > 16)) {
$errorMsg = 'GREŠKA: Vaše lozinke moraju da sadrže od 6 do 16 znakova, pokušajte ponovo.<br/>';

}else if ($email_check > 0){
$errorMsg = '<u>GREŠKA:</u><br/> Email koji ste upisali se već nalazi u bazi podataka, molimo vas izaberite drugu email adresu.<br/>';

} else {//Zavrshetak greshaka u obradi podataka i dodavanj Korisnika u bazu podataka
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

$username = mysql_real_escape_string($username);
$firstname = mysql_real_escape_string($firstname);
$lastname = mysql_real_escape_string($lastname);
$jmbg = mysql_real_escape_string($jmbg);
$pol = mysql_real_escape_string($pol);
$pttbroj = mysql_real_escape_string($pttbroj);
$adresa = mysql_real_escape_string($adresa);
$telefon = mysql_real_escape_string($telefon);
$website = mysql_real_escape_string($website);
$interesovanja = mysql_real_escape_string($interesovanja);
$pass1 = mysql_real_escape_string($pass1);
$email1 = mysql_real_escape_string($email1);
$ip = mysql_real_escape_string($ip);


// Dodaj MD5 u lozinku
$db_password = md51($pass1);

// Dodaj korisnicki info u tabelu baze podataka korisnici
$sql = mysql_query("INSERT INTO mymembers (username, firstname, lastname, jmbg, pol, pttbroj, adresa, telefon, interesovanja, website, password, email, ip, signupdate) VALUES ('$username','$firstname','$lastname','$jmbg','$pol','$pttbroj','$adresa','$telefon','$interesovanja','$website','$db_password','$email1','$ip',now())")
or die (mysql_error());

$id = mysql_insert_id();

$to = "$email1";

$from = "[email protected]";
$subject = "Kompletiranje sajta registracije";
//Pocetak HTML Email Poruke
$mesage = "Zdravo $firstname,

U ovom koraku kompletirajte aktivaciju vašeg upisanog identiteta na sajtu InfoClub.

Kliknite na liniju ispod da aktivirate nalog.

http://localhost/sajta/scripts/aktivacija.php?id=$id&sequence=$db_password
Ako URL iznad nije aktivni link kopirajte i nalepite ga u vaš pretraživac na adresnu traku.

Nakon uspešnog aktiviranja prijavi te se:
E-mail Address: $email
Password: $password

Posetite sajt!
[email protected]";
//kraj poruke
$headers = "From: $from\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

@mail($to, $subject, $message, $headers);

$porZaKorisnika = "<h2>Ostao je poslednji korak - Aktivirajte nalog putem emaila</h2><h4>OK $firstname, ostao je poslednji korak da biste verifikovali svoju email identifikaciju:</h4><br/>
Poslaćemo vam aktivacioni link na vašu email adresu.<br/><br/>
<br/>
<strong><font color=\"#990000\">VEOMA VAŽNO:</font></strong>
Ukoliko vaš provajder neizvrši proveru vaše email adrese, možda ćete imati problem da vidite Email sadržaj. Ako vam se ovo dogodi
a vi ne možete da pročitate poruku za aktiviranje, preuzmite datoteku i otvorite pomoću uredivača teksta.
Ako i dalje ne možete videti link za aktiviranje, kontaktirajte admin stranicu i kratko opišite problem..<br/><br/>
";


include_once "porZaKorisnika.php";

exit();

} // Zatvori drugi nakon provere dupliranja

}else { // Ako obrazac nije objavljen sa promenljivim, mesto podrazumevano promenljive je prazno

$errorMsg = "Polja oznacena sa [*] su obavezna";
$username = "";
$firstname = "";
$lastname = "";
$jmbg = "";
$pol = "";
$pttbroj = "";
$adresa = "";
$telefon = "";
$pass1 = "";
$pass2 = "";
$email1 = "";
$email2 = "";

}
?>

////////////////////////////////////////////////////////////////////////////

 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: using password: NO05.11.2010. u 07:09 - pre 163 meseci
I dalje ne vidim gde pozivas KONEKCIJU ka bazi....
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Gost




Profil

icon Re: using password: NO05.11.2010. u 08:03 - pre 163 meseci
izvini propust, konekcijsam trebao da ubacim odmah iznad emailChcker:
//Konekcija na bazu podataka
connect();
conn_carset();
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: using password: NO05.11.2010. u 08:15 - pre 163 meseci
Kao sto sam ti vec napisao o toj funkciji, konekcija na bazu treba da se obavi PRE pozivanja te funkcije koja ti vraca gresku i vise neces imati problema.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Re: using password: NO05.11.2010. u 10:21 - pre 163 meseci
Upravu si Zahvaljujem se na ispravci, sad sam to ispravio i nemam više upozorenja onog tipa.
Ostao mi je još jedan nerešivi problem, a to je da mi se u bazi podataka jedino ne prikazuje rezultat kolumne
'interesovanja', dešavalo mi se da dobijam upozorenje da stripslashes očekuje parametar 1 da bude resurs naliniji
u liniji 189--$interesovanja = protect($_POST['interesovanja']);, dakle posle svakog upita u polju se upisuje 0.
Napomenuo bih da sam uradio 3 tabele i povezao ih prvom normalnom formom.



<table width="100%" border="0">
<tr>
<td width="40%" height="20" align="right" bgcolor="#C0AC87">Interesovanja:</td>
<td width="60%" bgcolor="#CABDA6"><select name="interesovanja[]" id="interesovanja[]" size="5" multiple="multiple">
<?php
connect();
conn_carset();
$sql="SELECT * FROM osobine ORDER BY nazivi ASC";
$result=mysql_query($sql);
while($ispisrez = mysql_fetch_array($result)){
?>
<option value="<?php print $ispisrez['interesovanja']; ?>"><?php print $ispisrez['nazivi']; ?></option>
<?php
// zatvaranje while petlje
}
//zatvaranje
mysql_close($conn);
?>
</select>
</td>
</tr>
</table>
E, sad nevidim kako bih ti poslao slike odnosa tabela
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: using password: NO

[ Pregleda: 2201 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.