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

Šta ovde ne valja?

[es] :: PHP :: PHP za početnike :: Šta ovde ne valja?
(Zaključana tema (lock), by dakipro)
Strane: 1 2 3 4

[ Pregleda: 8240 | Odgovora: 62 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Šta ovde ne valja?05.09.2012. u 08:57 - pre 141 meseci
Nov sam u PHP programiranju i imam neke probleme...

Trenutno pravim neki veći dinamički sajt čisto radi vežbanja svega onog što sam do sada naučio...

Problem je da mi php ne reaguje na button klik događaj pri prostoj registraciji... verovatno je problem u php-u jer prvi put i bez ikakvog kopiranja radim registracionu formu, daću ceo kod PHP i HTML register strane, pa vi vidite, verujem da ima mnogo grešaka...

znaci ne reaguje na button klik, konektovati se moze i ubaciti vrednosti, ali bez $_POST-a...
register.php
Code (php):

<?php
$host_name = "localhost:3307";
$db_username = "root";
$password = "123";
$db_name = "vezba";

if(!$_POST['btn'])  
{
     //ako button nije pritisnut ne radi nista...
}
else
{
$con = mysql_connect("$host_name", "$db_username", "$password");
//ako jeste konektuj se...
if(!$con)
{
     echo 'Could not connect...';
     //ako se ne moze konektovati ispisi...
}
mysql_select_db("$db_name") or die("No Database"); //selektuj bazu vezba
if($_POST['txt1']!=0 & $_POST['txt2'] !=0 & $_POST['txt3'] !=0 & $_POST['txt4'] !=0 & $_POST['txt3'] == $POST['txt4'])
{
$ubaci = mysql_query("insert into useri(username, email, pass) values("$_POST["txt1"]","$_POST["txt2"]","$_POST["txt3"]")");
//ako je vrednost tekst polja rzlicita od nula, i password polje jednako confirm pass polju ubaci vrednosti iz polja u bazu
$selektuj = mysql_query('select '$_POST["txt1"]' from useri');
//selektuj vrednost text polja username iz baze...
while($red = mysql_fetch_array($selektuj)) //dok citas podatke iz baze smesti ih u varijablu '$red'..
  {
  echo 'Thank you'. " " . $red['username'] . 'for registration...';
  }
}
else{die("password is not same, or text values are null...")}
mysql_close($con); //
}
?>
 


register.html
Code (html):

<html !DOCTYPE html lang="en">
<head>
<meta name="google-site-verification" content="6kwmiqZvj-FJfGuyK8biPc-H8MXuZvxcd6xWsdhwxL4" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Language" content="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>vezba.com</title>
<script language="JavaScript" type="text/javascript">
function Prikazi()
        {
          var headerTitle = document.getElementById('id');
          var initialColor = document.body.style.color;
          var newColor = '#FFFFFF';
          setInterval(function()
          {
             if (headerTitle.style.color == initialColor) {
         headerTitle.style.color = newColor;
     } else {
         headerTitle.style.color = initialColor;
     }
          }
          ,1000);
        }
 </script>
<link rel="stylesheet" a href="stil.css">
</head>
<body onLoad="Prikazi()">
<div id="header">
<header>
<a href="index.html" id='id' class="header">vezba.com</a>
</header>
</div>
<div id="nav">
<nav>
<a href="index.html" class="home">Home</a> &nbsp | &nbsp <a href="about.html" class="home">About</a> &nbsp | &nbsp <a href="tutorials.html" class="home">Tutorials</a>&nbsp | &nbsp <a href="exercises" class="home">Exercises</a> &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <a href="login.php" class="home">Log In</a> | <a href="register.html" class="home">Register</a> </div>
</nav>
<aside id="aside">
<div id="side1"><a href="http://w3schools.com/html5/default.asp" target="blank"><img src="http://www.wikinoticia.com/ima...ia.com/files/2011/01/HTML5.jpg" width="245" height="195"></img></a></div>
<p id="side2"><a href="http://w3schools.com/css3/default.asp" target="blank"><img src="http://blogs.microsoft.co.il/blogs/gilf/CSS3Logo_406A9E5E.jpg" width="245" height="195"></img>
</a></p>
<p id="side3"><a href="http://w3schools.com/js/default.asp" target="blank"><img src="http://2.bp.blogspot.com/-9vrJ...1600/best-javascript-sites.jpg" width="245" height="195"></img>
</a></p>
<p id="side4"><a href="http://w3schools.com/php/default.asp" target="blank"><img src="http://drupal.org/files/project-images/php.png" width="245" height="195"></img>
</a></p>
<p id="side5"><a href="http://w3schools.com/asp/default.asp" target="blank"><img src="http://blog.monitor.us/wp-content/uploads/2012/04/LogoAspNet2.png" width="245" height="185"></img>
</a></p>
</aside>
<div id="register-content">
<content id="text2">
<form action="register.php" method="post">
User Name:
<p></p>
<input type="text" name="txt1" id="textbox">
<p></p>
E-mail:
<p></p>
<input type="text" name="txt2" id="textbox">
<p></p>
Password:
<p></p>
<input type="password" name="txt3" id="textbox">
<p></p>
Confirm Password:
<p></p>
<input type="password" name="txt4" id="textbox">
<p></p>
<p></p>
<p></p>
<center><input type="button" value="Register" id="btn"></center>
</form>
</content>
</div>
</body>
</html>
 
 
0

MoDcHe
SER Sabac

Član broj: 4
Poruke: 486
91.150.70.*

Jabber: modche@elitesecurity.org
ICQ: 73295306
Sajt: localhost


+3 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 10:04 - pre 141 meseci
Code:

<input type="button" value="Register" id="btn" name="btn">


Propustio si name.

Code:

<?php
$host_name = "localhost:3307";
$db_username = "root";
$password = "123";
$db_name = "vezba";

if($_POST['btn'])  { // samo ako se klikne
$con = mysql_connect("$host_name", "$db_username", "$password");
//ako jeste konektuj se...
if(!$con)
{
     echo 'Could not connect...';
     //ako se ne moze konektovati ispisi...
}
mysql_select_db("$db_name") or die("No Database"); //selektuj bazu vezba
if($_POST['txt1']!=0 & $_POST['txt2'] !=0 & $_POST['txt3'] !=0 & $_POST['txt4'] !=0 & $_POST['txt3'] == $POST['txt4'])
{
$ubaci = mysql_query("insert into useri(username, email, pass) values("$_POST["txt1"]","$_POST["txt2"]","$_POST["txt3"]")");
//ako je vrednost tekst polja rzlicita od nula, i password polje jednako confirm pass polju ubaci vrednosti iz polja u bazu
$selektuj = mysql_query('select '$_POST["txt1"]' from useri');
//selektuj vrednost text polja username iz baze...
while($red = mysql_fetch_array($selektuj)) //dok citas podatke iz baze smesti ih u varijablu '$red'..
  {
  echo 'Thank you'. " " . $red['username'] . 'for registration...';
  }
}
else{die("password is not same, or text values are null...")}
mysql_close($con); //
}
?>

When you say "I wrote a program
that crashed Windows", people
just stare at
you blankly and say "Hey, I got
those with the system, *for
free*".
-- Linus Torvalds
 
+1

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 10:24 - pre 141 meseci
ne reaguje opet...

ne mogu da verujem da sam zaboravio name :O
 
0

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 10:33 - pre 141 meseci
Za button stavi type="submit", a ne button.

Imaš i četiri elementa sa istim id (textbox) - id mora da bude jedinstven.
 
+1

MoDcHe
SER Sabac

Član broj: 4
Poruke: 486
91.150.70.*

Jabber: modche@elitesecurity.org
ICQ: 73295306
Sajt: localhost


+3 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 10:33 - pre 141 meseci
Code:

<input type="submit" value="Register" id="btn" name="btn" />


submit, ne button. Sry, nisam video. :)
When you say "I wrote a program
that crashed Windows", people
just stare at
you blankly and say "Hey, I got
those with the system, *for
free*".
-- Linus Torvalds
 
0

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 10:44 - pre 141 meseci
Pre svega
Code (php):

if(!$_POST['btn'])  
{
     //ako button nije pritisnut ne radi nista...
}
 


ovo ti je nepotrebno.
Probaj da kreneš sa if(isset($_POST['btn'])) { ... } ili if(!empty($_POST)) { ... } ..

Problem koji ti imaš je sličan kao problem u ovoj temi.
http://www.elitesecurity.org/p3130173

about:networking
 
0

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 11:08 - pre 141 meseci
Zamenio sam button sa submit i napokon uđe u php fajl, ali sa errorom na liniji 23

error: "Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in C:\wamp\www\vezba.com\register.php on line 23"

linija 23 je ova:
Code (php):
$ubaci = mysql_query("insert into useri(username, email, pass) values("$_POST["txt1"]","$_POST["txt2"]","$_POST["txt3"]")");


Je l' to error u navodnicima možda?
 
0

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 11:14 - pre 141 meseci
Uzmi i pre nego što ubaciš u bazu..

kao na linkovanom primeru..

Code (php):


$txt1 = htmlentities($_POST['txt1'], ENT_QUOTES, "UTF-8");

$txt2 = htmlentities($_POST['txt2'], ENT_QUOTES, "UTF-8");

$txt3 = htmlentities($_POST['txt3'], ENT_QUOTES, "UTF-8");

 


Dakle, $txt1, 2, 3 su bile prazne, a nakon pritiskanja dugmeta, te promenjive su preuzele vrednosti korisnika...
spremne za upis.

about:networking
 
+1

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 11:23 - pre 141 meseci
Zamenio sam, ali opet isti error...

evo izmenjenog koda..

Code (php):

<?php
$host_name = "localhost:3307";
$db_username = "root";
$password = "123";
$db_name = "vezba";

$txt1 = htmlentities($_POST['txt1'], ENT_QUOTES, "UTF-8");
$txt2 = htmlentities($_POST['txt2'], ENT_QUOTES, "UTF-8");
$txt3 = htmlentities($_POST['txt3'], ENT_QUOTES, "UTF-8");

if(!$_POST['btn'])  
{
     //ako button nije pritisnut ne radi nista...
}
else
{
$con = mysql_connect("$host_name", "$db_username", "$password");
//ako jeste konektuj se...
if(!$con)
{
     echo 'Could not connect...';
     //ako se ne moze konektovati ispisi...
}
mysql_select_db("$db_name") or die("No Database"); //selektuj bazu vezba
if($txt1!=0 & $txt2!=0 & $txt3 !=0 & $txt4!=0 & $txt3 == $txt4)
{
$ubaci = mysql_query("insert into useri(username, email, pass) values("$txt1","$txt2","$txt3")");
//ako je vrednost tekst polja rzlicita od nula, i password polje jednako confirm pass polju ubaci vrednosti iz polja u bazu
$selektuj = mysql_query('select '$txt1' from useri');
//selektuj vrednost text polja username iz baze...
while($red = mysql_fetch_array($selektuj)) //dok citas podatke iz baze smesti ih u varijablu '$red'..
  {
  echo 'Thank you'. " " . $red['username'] . 'for registration...';
  }
}
else{die("password is not same, or text values are null...")}
mysql_close($con); //
}
?>
 
 
0

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 11:40 - pre 141 meseci
I ova mislim da će da te muči malo.

Code (php):


$selektuj = mysql_query('select '$txt1' from useri');

 


http://www.trans4mind.com/personal_development/phpTutorial/quotes.htm

ili detaljniji možda još bolji za tebe link » http://de2.php.net/manual/en/language.types.string.php


about:networking
 
0

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 11:46 - pre 141 meseci
Zaboga, potrudi se bar da prepišeš primer kako treba.
I uzmi neku finu knjigu pre nego što počneš da bombarduješ forum (pogrešan) početničkim pitanjima. Imaš forum PHP za početnike

STRINGOVI SE KONKATENIRAJU OPERATOROM "." (tačka)
Tekst vrednosti kod inserta u bazu se stavljaju između ' (single quote)

"insert into useri(username, email, pass) values("$txt1","$txt2","$txt3")"

"insert into useri(username, email, pass) values('"$txt1"','" . $txt2 . "','" . $txt3 . "')"
 
+1

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 12:23 - pre 141 meseci
yap, but error is still there... :S

Znam da se spajaju sa ".", programirao sam ranije u C#.net-u i uvek sam izbegavao nepotrebne navodnike, u C#-u je to islo ovako:

skracena verzija
Code (csharp):

SqlCommand com = new SqlCommand();
com.CommandText = "insert into ime_baze(bla bla) values(@bla_bla)";
com.Parameters.AddWithValue("@bla_bla", odakle);
 


ti navodnici samo zbunjuju i prave kod ne citljivim...

Ovo je Php podforum nisam ni video da postoji deo za pocetnike...
Ja mislim da forum sluzi da se sticu nova znanja i resavaju problemi, na tebi je da li ces nekome pomoci ili ne, ono gore isto kao i pre sa istim Exception-om na istoj liniji ne radi.....
 
0

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 12:32 - pre 141 meseci
Uzmi ti i lepo sve pročitaj ovde za početak → http://de2.php.net/manual/en/language.types.string.php, a c sintaksa, to jest, php sintaksa je jako slična sa c sintaksom, međutim, što si i sam video, definitivno postoje razlike. Parser ti je rekao.. djoka_l ti je rekao.. ja pokušavam da ti dam hint, jer ako ti sve kažemo, od tebe će ispasti - ništa.. i tako. :)
about:networking
 
+1

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 13:41 - pre 141 meseci
Ma ok, ne volim ni ja kad mi je sve na tanjiru, ali mi nije jasno kako pokazuje samo jednu istu liniju koda kao pogresnu..

Code (php):

$ubaci = mysql_query("insert into useri(username, email, pass) values('"$txt1 . "','" . $txt2 . "','" . $txt3 . "')";
 
 
0

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 13:52 - pre 141 meseci
Nedostaje ti tačka pre $txt1 i zatvorena zagrada pre ;
 
0

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 14:13 - pre 141 meseci
O Bože ahhaa koja glupost :S
Evo zbog toga nikako ne volim navodnike, totalno se pogubim...

Hvala Vam puno, radi sve normalno, sada radim login stranu... moraću ovu registraciju još malo dopuniti sa ajax proverama i captcha generatorom, još jednom hvalaaa :)

Uy ovo je bilo jos par sličnih problema..
 
0

Mladjox
Web Developer
Banja Luka

Član broj: 226253
Poruke: 35



+3 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 14:29 - pre 141 meseci
U ovom kodu lakse je naci sta nije dobro nego sta je dobro :D

<?php
$host_name = "localhost:3307"; // verovatno ti port ni ne treba ali ajde
$db_username = "root";
$password = "123";
$db_name = "vezba";

if(!$_POST['btn']) // ovdje treba da bude !isset($_POST['btn'])
{
//ako button nije pritisnut ne radi nista...
}
else
{
$con = mysql_connect("$host_name", "$db_username", "$password"); //stace ti " na promenjivoj??? Brisi to
//ako jeste konektuj se...
if(!$con)
{
echo 'Could not connect...';
//ako se ne moze konektovati ispisi...
}
mysql_select_db("$db_name") or die("No Database"); //selektuj bazu vezba ( i ovdje stace ti " na promenjivoj, isto brisi
if($_POST['txt1']!=0 & $_POST['txt2'] !=0 & $_POST['txt3'] !=0 & $_POST['txt4'] !=0 & $_POST['txt3'] == $POST['txt4']) // zar nije lakse i bolje koristiti !empty($_POST['txt1']) && ...
{
$ubaci = mysql_query("insert into useri(username, email, pass) values("$_POST["txt1"]","$_POST["txt2"]","$_POST["txt3"]")"); //query ne valja nikako treba da bude
// "INSERT INTO useri (username, email, pass) VALUES ('".$_POST['txt1']."', '".$_POST['txt1']."', '".$_POST['txt1']."')"

//ako je vrednost tekst polja rzlicita od nula, i password polje jednako confirm pass polju ubaci vrednosti iz polja u bazu
$selektuj = mysql_query('select '$_POST["txt1"]' from useri'); //ovdje "select".$_POST['txt1']."from useri"
//selektuj vrednost text polja username iz baze...
while($red = mysql_fetch_array($selektuj)) //dok citas podatke iz baze smesti ih u varijablu '$red'..
{
echo 'Thank you'. " " . $red['username'] . 'for registration...';
}
}
else{die("password is not same, or text values are null...")}
mysql_close($con); //
}
?>

Moguce da sam negde i ja pogresio. Sad ti to sve fino prepravi kako sam u komentarima napisao i onda javi radi li.

Edit:

Nemoj ovo da koristis na nekom sajtu slucajno...I koristi PDO za pristup bazi
 
0

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 14:51 - pre 141 meseci
localhost:3307 nije default port, ako bih stavio localhost on b trazio samo 3306, na kom je MS SQL Server, a ne MySQL ;)
Ostalo nisam ni citao jer je nemoguce, koristi code:php tagove molim te :)

evo ga kod...
Code (php):

<?php
$host_name = "localhost:3307";
$db_username = "root";
$password = "123";
$db_name = "vezba";

$txt1 = htmlentities($_POST['txt1'], ENT_QUOTES, "UTF-8");
$txt2 = htmlentities($_POST['txt2'], ENT_QUOTES, "UTF-8");
$txt3 = htmlentities($_POST['txt3'], ENT_QUOTES, "UTF-8");
$txt4 = htmlentities($_POST['txt3'], ENT_QUOTES, "UTF-8");

if(isset($_POST['btn']))
{
$error = array();
     
     //username
if(empty($txt1))
{
     $error[] = 'Please enter a username. ';
}
else if( ctype_alnum($txt1) )
{
     $username = $txt1;
}
else
{
     $error[] = 'Username must consist of letters and numbers only. ';
}
     
//email
if(empty($_POST[$txt2]))
{
    $error[] = 'Please enter your email. ';
}
else if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $txt2))
{
     $email = mysql_real_escape_string($txt2);
}
else
{
     $error[] = 'Your e-mail address is invalid. ';
}    
     //password
if(empty($txt3))
{
     $error[] = 'Please enter a password. ';
}
else if($txt3<=6)
{
     $error[] = 'Password must contain minimum 6 character..';
}
else if($txt3!=$txt4)
{
     $error[] = 'Confirm password';
}
else
{
     $password = mysql_real_escape_string($txt3);
}
     
$con = mysql_connect("$host_name", "$db_username", "$password");
//ako jeste konektuj se...
if(!$con)
{
     echo 'Could not connect...';
     //ako se ne moze konektovati ispisi...
}
mysql_select_db("$db_name") or die("No Database"); //selektuj bazu vezba

$ubaci = mysql_query("insert into useri(username, email, pass) values('" . $txt1 . "','" . $txt2 . "','" . $txt3 . "')") or die('Could not insert values into database' . " " . mysql_error());
//ako je vrednost tekst polja rzlicita od nula, i password polje jednako confirm pass polju ubaci vrednosti iz polja u bazu
echo 'Thank you for registration!';
mysql_close($con);
}
?>
 


EDIT: Zasto ne treba da koristim u pravom sajtu, ovo je sad vezba, ali sam uskoro mislio jedan pravi sajt da napravim... Mislio sam i ovo kriptovati u MD5

[Ovu poruku je menjao Boyka dana 05.09.2012. u 16:12 GMT+1]

[Ovu poruku je menjao Boyka dana 05.09.2012. u 16:18 GMT+1]
 
0

Mladjox
Web Developer
Banja Luka

Član broj: 226253
Poruke: 35



+3 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 15:40 - pre 141 meseci
Sad na nesto i lici ali opet koristis "$nesto", shvati da ti na promenjivoj NE TREBAJU navodnici!

I par saveta:
1.Koristi PDO, em je lakse em je sigurnije za upotrebu.
2.Procitaj malo ovo http://php.net/manual/en/control-structures.switch.php
3.Nauci neki od frameworka(moj predlog CodeIgniter).
 
0

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Šta ovde ne valja?05.09.2012. u 15:50 - pre 141 meseci
da izmeniću sada...

hvala na savetima...
ne znam ni sam zašto sam greške proveravao if-om :O
lakše mi je bilo da sam ovako:

switch($txt3)
case empty:
case <= 6:
itd...
 
0

[es] :: PHP :: PHP za početnike :: Šta ovde ne valja?
(Zaključana tema (lock), by dakipro)
Strane: 1 2 3 4

[ Pregleda: 8240 | Odgovora: 62 ] > FB > Twit

Postavi temu

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