PHP problem

poruka: 18
|
čitano: 3.374
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
php problem

problem.

 

imam login1.php  cisti html kod kao formu za logiranje.  login2.php je fajl koji kupi vrijednost upisane u textboxove u login1.php  fajlu na ovaj nacin:

 

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

 

Ok. Ovo je sve uredu i radi mi.  Sada, imam treci fajl koji se zove ab.php i gdje opet koristim ove dvije gornje varijable u cilju upisa u bazu podataka:

 

 mysql_query("UPDATE $tbl_name SET rezultat='$x' WHERE username='$myusername'");
 mysql_query("UPDATE $tbl_name SET postotak='$y' WHERE username='$myusername'");

 

Ovo sto sam napisao je tacno sintaksno. Sto se tice baze (koristim MYSQL) sve je uredu, polja su rezultat i  postotak.

Medjutim, ne mogu da upisem u bazu.

 

Koliko mogu primjetiti, problem je u varijablama $myusername  i  $mypassword  kod update-a   jer nece, pretpostavljam, da mi ih prepozna iz onog drugog fajla login2,php. E sad, pitanje je kako da ih ukljucim u fajl ab.php ?

 

Pokusavao sam sa include('login2.php') ali ne ide . .....  Help

 

Hvala

 
0 0 hvala 0
18 godina
neaktivan
offline
RE: php problem

Iz ovog što si napisao teško je reći što se točno tu događa.

Ako je korisnik logiran vjerovatno su neki podaci spremljeni u session (username ili id).

Probaj napraviti ovo da vidiš dali sam u pravu:

var_dump($_SESSION);

 

Ako se u sessionu nalazi username onda ga možeš od tu koristiti:

$myusername=$_SESSION['username']; //ili tako nesto

 

I query možeš skratiti:

mysql_query("UPDATE ".$tbl_name." SET rezultat='".$x."', postotak='".$y."' WHERE username='".$myusername."'");

<?= "hello world" ?>
Poruka je uređivana zadnji put uto 19.8.2008 14:18 (disturbedHR).
17 godina
neaktivan
offline
RE: php problem

evo svih fajlova:

 

login1.php

 

<table width="300" border="0" align="center"  bgcolor="#FFFFFF">
  <tr>
       <td width="100" height="20"></td>
       
 </tr>    
   <tr>
       <td width="100" height="20"></td>
       
 </tr>
   <tr>
       <td width="100" height="20"></td>
       
 </tr>
   <tr>
       <td width="100" height="20"></td>
       
 </tr>
   <tr>
       <td width="100" height="20"></td>
       
 </tr>
<tr>
<form name="form1" method="post" action="login2.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">


<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">   

  <tr>
       <td width="100" height="20"></td>
       
 </tr>
 
</table>

 

 

 

login2.php

 

<?php
session_start();
session_destroy();
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="anel"; // Mysql password
$db_name="firma1"; // Database name
$tbl_name="radnik"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$sql2="SELECT parametar FROM $tbl_name
WHERE username='$myusername' and password='$mypassword'";
$result1=mysql_query($sql2);


// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
//$count1=mysql_num_rows($result1);
// If result matched $myusername and $mypassword, table row must be 1 row
$podaci=mysql_fetch_array($result1);   
//echo "".$podaci['parametar'];

if(($count==1)&&($podaci['parametar']!="a")){
    
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");

header("location:pitalica1.php");

mysql_query("UPDATE $tbl_name SET parametar='a' WHERE username='$myusername'");

}
else {
echo "Wrong Username, Password OR two times logged";
}

ob_end_flush();      
 
?>

 

 

ab1.php

 

 

<?php
session_start();
if(!session_is_registered(myusername)){
       
    header("location:login1.php");
}

?>

<html>
<body>
Login Successful

<form name="form1" method="post" action="pitalica2.php"
<br> 
<b>Odaberite dva odgovora:</b><br>
<br> 
<input type="checkbox" name="a" >aaa<br>
<input type="checkbox" name="b" >bbb<br>
<input type="checkbox" name="c" >ccc<br>
<input type="checkbox" name="d" >ddd<br>
<br>
<br>

<b>Odaberite dva odgovora:</b><br>
<br>
<input type="checkbox" name="e" >aaa<br>
<input type="checkbox" name="f" >bbb<br>
<input type="checkbox" name="g" >ggg<br>
<input type="checkbox" name="h" >hhh<br>
<br>
<br>

<b>Odaberite dva odgovora:</b><br>
<br>
<input type="checkbox" name="i" >iii<br>
<input type="checkbox" name="j" >jjj<br>
<input type="checkbox" name="k" >kkk<br>
<input type="checkbox" name="l" >lll<br>
<br>
<br>

<b>Odaberite jedan od odgovora:</b><br>
<br>
<input type="radio" name="asset" value="aa">A<br>
<input type="radio" name="asset" value="bb">B<br>
<input type="radio" name="asset" value="cc">C<br>
<input type="radio" name="asset" value="dd">D<br>
<br>
<br>

<b>Odaberite jedan od odgovora:</b><br>
<br>
<input type="radio" name="asset1" value="ee">A<br>
<input type="radio" name="asset1" value="ff">B<br>
<input type="radio" name="asset1" value="gg">G<br>
<input type="radio" name="asset1" value="hh">H<br>
<br>
<br>

<b>Odaberite jedan od odgovora:</b><br>
<br>
<input type="radio" name="asset2" value="ii">I<br>
<input type="radio" name="asset2" value="jj">J<br>
<input type="radio" name="asset2" value="kk">K<br>
<input type="radio" name="asset2" value="ll">L<br>
<br>
<br>

<input type="submit" name="Submit" value="Glasaj">

 

 

ab2.php - to je taj: 

 


<?php

 
 
  $a= $_POST["a"];
  $b= $_POST["b"];
  $c= $_POST["c"];
  $d= $_POST["d"];
  $e= $_POST["e"];
  $f= $_POST["f"];
  $g= $_POST["g"];
  $h= $_POST["h"];
  $i= $_POST["i"];
  $j= $_POST["j"];
  $k= $_POST["k"];
  $l= $_POST["l"];

  $a1= $_POST["asset"];
  $a2= $_POST["asset1"];
  $a3= $_POST["asset2"];
 
  var_dump($_SESSION);
 
  $x=0;
 
 
  if($b==on)
  {

    $x++;
     
  }
 
     if($d==on)
  {

    $x++;
     
  }
 
    if($e==on)
  {

    $x++;
     
  }
 
   if($g==on)
  {

    $x++;
     
  }
 
  if($i==on)
  {

      $x++;
     
  }
 
  if($l==on)
  {

      $x++;
     
  }
 
 
     if($a1=="cc")
  {
 
      $x++;
      $x++;
     
  }
 
     if($a2=="hh")
  {
     
      $x++;
      $x++;
     
  }
 
 
     if($a3=="jj")
  {
     
      $x++;
      $x++;
 
  }
 
  $y=($x/12)*100;
 
  if($x<6)
  {
  print "Niste polozili. Ukupan broj vasih poena je $x. Postotak je $y <br>";
  print "<br>";
  print "<br>";  
  }
 
  else
  {
  print "Polozili ste. Ukupan broj vasih poena je $x. Postotak je $y <br>";
  print "<br>";
  print "<br>";    
  }  
 
 
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="anel"; // Mysql password
$db_name="firma1"; // Database name
$tbl_name="radnik"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
//$myusername=$_POST['myusername'];
//$mypassword=$_POST['mypassword'];

$myusername=$_SESSION['username'];
$mypassword=$_SESSION['password'];
 
 mysql_query("UPDATE $tbl_name SET rezultat='$x' WHERE username='$myusername'");
 mysql_query("UPDATE $tbl_name SET postotak='$y' WHERE username='$myusername'");
 mysql_close(); 

?>

 

 

 

17 godina
neaktivan
offline
PHP problem

kada ubacim:

 

var_dump($_SESSION);

 

izbaci mi NULL ...  znaci, nije pokupio ?  

 

kod svih fajlova ubacio sam gore, ......

 
0 0 hvala 0
18 godina
neaktivan
offline
RE: php problem
aktica1 kaže...

evo svih fajlova: <cut>


// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");

Čini se da je username spremljen u $_SESSION['myusername']
Probaj
session_start();
var_dump($_SESSION, $_SESSION['myusername']);
<?= "hello world" ?>
Poruka je uređivana zadnji put uto 19.8.2008 14:45 (disturbedHR).
17 godina
neaktivan
offline
PHP problem

sta predlazes da napisem i gdje ?

 
0 0 hvala 0
17 godina
neaktivan
offline
RE: PHP problem


<?php

  session_start();
  var_dump($_SESSION, $_SESSION['myusername']);
 
  $a= $_POST["a"];
  $b= $_POST["b"];
  $c= $_POST["c"];
  $d= $_POST["d"];
  $e= $_POST["e"];
  $f= $_POST["f"];
  $g= $_POST["g"];
  $h= $_POST["h"];
  $i= $_POST["i"];
  $j= $_POST["j"];
  $k= $_POST["k"];
  $l= $_POST["l"];

  $a1= $_POST["asset"];
  $a2= $_POST["asset1"];
  $a3= $_POST["asset2"];
 
  //var_dump($_SESSION);
 
  $x=0;
 
 
  if($b==on)
  {

    $x++;
     
  }
 
     if($d==on)
  {

    $x++;
     
  }
 
    if($e==on)
  {

    $x++;
     
  }
 
   if($g==on)
  {

    $x++;
     
  }
 
  if($i==on)
  {

      $x++;
     
  }
 
  if($l==on)
  {

      $x++;
     
  }
 
 
     if($a1=="cc")
  {
 
      $x++;
      $x++;
     
  }
 
     if($a2=="hh")
  {
     
      $x++;
      $x++;
     
  }
 
 
     if($a3=="jj")
  {
     
      $x++;
      $x++;
 
  }
 
  $y=($x/12)*100;
 
  if($x<6)
  {
  print "Niste polozili. Ukupan broj vasih poena je $x. Postotak je $y <br>";
  print "<br>";
  print "<br>";  
  }
 
  else
  {
  print "Polozili ste. Ukupan broj vasih poena je $x. Postotak je $y <br>";
  print "<br>";
  print "<br>";    
  }  
 
 
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="anel"; // Mysql password
$db_name="firma1"; // Database name
$tbl_name="radnik"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
/*$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$myusername=$_SESSION['username'];
$mypassword=$_SESSION['password'];

$myusername=session_register("myusername");
$mypassword=session_register("mypassword"); */


 
 mysql_query("UPDATE $tbl_name SET rezultat='$x' WHERE username='$myusername'");
 mysql_query("UPDATE $tbl_name SET postotak='$y' WHERE username='$myusername'");
 mysql_close(); 

?>

17 godina
neaktivan
offline
PHP problem

izbaci mi ovu gresku

 

array(2) { ["myusername"]=> NULL ["mypassword"]=> NULL } NULL

 
0 0 hvala 0
18 godina
neaktivan
offline
RE: PHP problem
aktica1 kaže...

izbaci mi ovu gresku

 

array(2) { ["myusername"]=> NULL ["mypassword"]=> NULL } NULL

 Znači da nisi logiran
<?= "hello world" ?>
Poruka je uređivana zadnji put uto 19.8.2008 15:03 (disturbedHR).
17 godina
neaktivan
offline
PHP problem

stavio ....

 

izbaci mi :

 

array(2) { ["myusername"]=> NULL ["mypassword"]=> NULL } NULL

 

username i password postoje u bazi

 

 
0 0 hvala 0
18 godina
neaktivan
offline
RE: PHP problem
aktica1 kaže...

username i password postoje u bazi

Da, postoje u bazi, ali nisi logiran pa skripta ne zna o kojem se korisniku radi.
odi natrag na login1.php pa se logiraj pa probaj opet.
<?= "hello world" ?>
17 godina
neaktivan
offline
PHP problem

probao ....

 

opet isto, opet ne upisuje

 
0 0 hvala 0
18 godina
neaktivan
offline
RE: PHP problem

Izgleda da ti login ne radi.

"session_register()" ne radi ako imaš disablean register_globals.

 

Možeš probati:

 - uključiti register_globals ako je isključen (ne preporučam)

ili

 - u login2.php umjesto:

session_register("myusername");
session_register("mypassword");

stavi

$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;

nakon ovoga se opet probaj logirati.

<?= "hello world" ?>
17 godina
neaktivan
offline
PHP problem

sada kada ovo uradim, ne mogu se uopce logovati na stranicu

 

tj. ne mogu sa   login1.php   preci   na  login2.php

 
0 0 hvala 0
18 godina
neaktivan
offline
RE: PHP problem

Umjesto:

if(!session_is_registered(myusername)){

stavi

if(isset($_SESSION['myusername']) && $_SESSION['myusername']){

(gdje god se to pojavljuje)

 

i što ti je "  header("location:pitalica1.php");  "?

Ne vidim da imaš tu datoteku... nakon što napraviš takvu redirekciju trebaš završiti sa exit;

 

<?= "hello world" ?>
17 godina
neaktivan
offline
RE: PHP problem

sorry ... kako sam mijenjao ....  ab1.php   je  pitalica1.php        a             ab2.php   je   pitalica2.php

 

ovako sam stavio:  

 

if(isset($_SESSION['myusername']) && $_SESSION['myusername']){
       
    header("location:login1.php");
    exit;
}  

 

 

 

opet nista.  

 

 

18 godina
neaktivan
offline
RE: PHP problem
aktica1 kaže...

sorry ... kako sam mijenjao ....  ab1.php   je  pitalica1.php        a             ab2.php   je   pitalica2.php

ovako sam stavio:  

if(isset($_SESSION['myusername']) && $_SESSION['myusername']){
    header("location:login1.php");
    exit;
}  

 Ups, sorry, moj bed, treba biti:
if(!isset($_SESSION['myusername']) || !$_SESSION['myusername']){
    //korisnik nije logiran
    header("location:login1.php");
    exit;
}


<?= "hello world" ?>
17 godina
neaktivan
offline
PHP problem

 sada se sa ovim zadnjim ne mogu uopste logovati sa login1.php   na login2.php  

 

 

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice