ugrás a tartalomhoz

Miért nem tudom lekérni?

bblence · 2011. Júl. 14. (Cs), 09.23
A kód így néz ki:
  1. <?php  
  2. session_start();  
  3. ?>  
  4. <html>  
  5. <head>  
  6. <title></title>  
  7. </head>  
  8. <body>  
  9. <?php  
  10. if (isset($kilep)) {  
  11.     session_unset();  
  12.     session_destroy();  
  13. }  
  14. if (isset($_SESSION["penz"])) {  
  15.     print "Sikeres bejelentkezés!<br>Üdvözöllek: <b>$nev</b> Az ön számlájának egyenlege:<b>$penz</b>";  
  16.     print "<br><a href='" . $PHP_SELF . "?kilep='''>kilépek!</a>";  
  17. else {  
  18.     if (isset($_POST["neved"])) {  
  19.         include("config.php");  
  20.         $nev     = $_POST["neved"];  
  21.         $pass    = $_POST["passod"];  
  22.         $parancs = mysql_query("SELECT nev, jelszo, penz from nickek where nev = '$nev' and jelszo = '$pass'");  
  23.         $eredm   = mysql_num_rows($parancs);  
  24.         if ($eredm == 1) {  
  25.             session_register("nev");  
  26.             session_register("pass");  
  27.         }  
  28.     } else {  
  29.         print "<table><form action=" . $PHP_SELF . " method=post>  
  30. <tr><td>Login név:</td></tr><tr><td><input type=text name='neved' size=17></td></tr>  
  31. <tr><td>Jelszó:</td></tr><tr><td><input type=password name='passod' size=17></td></tr>  
  32. <tr><td><input type=submit value=Belép></td></tr></table><br><center><small><a href=regisztracio.php>Regisztráció</a></center></small>";  
  33.     }  
  34.     if (isset($_POST["neved"]) && $eredm == 0) {  
  35.         print "Rossz felhasználónév, vagy jelszó!<br>";  
  36.         print "<table><form action=" . $PHP_SELF . " method=post>  
  37. <tr><td>Login név:</td></tr><tr><td><input type=text name='neved' size=17></td></tr>  
  38. <tr><td>Jelszó:</td></tr><tr><td><input type=password name='passod' size=17></td></tr>  
  39. <tr><td><input type=submit value=Belép></td></tr></table><br><center><small><a href=regisztracio.php>Regisztráció</a></center></small>";  
  40.     } elseif (isset($_POST["neved"]) && $eredm == 1) {  
  41.         print "Sikeres bejelentkezés!";  
  42.     }  
  43. }  
  44. ?>  
  45. <meta http-equiv="Refresh" content="3; URL=login.php">  
  46. </body>  
  47. </html>  
Miért nem tudom lekérdezni a pénzt? A program nem ír hibát, viszont nem reagál a lekérdezésre. Kérlek, segítsetek.
 
1

A $penz változó hol kap

kuka · 2011. Júl. 14. (Cs), 09.54
  • A $penz változó hol kap értéket?
  • Egyáltalán miért szerepel a lekérdezés feltételében a $penz?
2

Azért mert

bblence · 2011. Júl. 14. (Cs), 10.02
Az $penz változó regisztrációkor kap értéket. a tábla úgy néz ki hogy: ID,PENZ,NEV,PASS,MAIL

Ez lenne a login.php
3

Az $penz változó

kuka · 2011. Júl. 14. (Cs), 10.08
Az $penz változó regisztrációkor kap értéket.
Akkor legfeljebb a penz adatbázis mező kaphat értéket. Én a $penz változót kérdeztem.
4

Értem

bblence · 2011. Júl. 14. (Cs), 10.50
Ja igen... értem már mire gondolsz. Ez esetben nem tudok rá válaszolni. Nekem úgy kellene megoldanom, hogy az adott felhasználó ID-je alapján kérdezze le a pénzét.
5

Ez rendben is volna, ez így

kuka · 2011. Júl. 14. (Cs), 10.54
Ez rendben is volna, ez így logikus. Éppen ezért nincs mit keressen a $penz a lekérdezés feltételében. (Arról nem is szólva, hogy a feltétel egy logikai kifejezés kell legyen, abban meg semmi keresnivalója a vesszőnek.)
6

Ötlet?

bblence · 2011. Júl. 14. (Cs), 11.02
Igaz.
Van ötleted, hogy miként lehetne megoldani?
7

Gondolkoztál rajta egy

kuka · 2011. Júl. 14. (Cs), 11.16
Gondolkoztál rajta egy picit?
  1. $parancs = mysql_query("SELECT nev, jelszo, penz from nickek where penz = '$penz', nev = '$nev' and jelszo = '$pass'");  
  2. //                                              töröld innentől... ^--------------^ ...idáig  
Legalábbis első lépésként ez mindenképpen kell. A kód többi részét majd azután nézzük át miután formáztad, ahogy a Mi lehet a baj ezzel a kóddal? (2.) témában már kértünk.
8

Ok?

bblence · 2011. Júl. 14. (Cs), 11.28
Így már jó?
10

Az olvashatósága már egészen

kuka · 2011. Júl. 14. (Cs), 12.00
Az olvashatósága már egészen jó. Pár komment és a főbb részeket elkülönítő üres sor még elmenne, de egyelőre fölösleges több munkát ölni bele.

A session úgy nem jó ahogy van, mert a session_register() és a $_SESSION változó együttes használata nem vezet jóra. Lévén a session_register() használta önmagában is ellenjavallt, a következő lépés az kellene legyen, hogy a session_register() hívásokat törlöd, a regisztrált változók helyett a $_SESSION tömb elemeit használod.
9

Azt a HTML részt próbáld meg

nistvan · 2011. Júl. 14. (Cs), 12.00
Azt a HTML részt próbáld meg szebben formázni, lehetőleg a új, nem in-line elemeket új sorba, minden gyereket a szülőtől egy tabbal vagy két szóközzel beljebb írd.
És nem utolsó sorban én személy szerint azt javaslom, hogy a fő HTML részeket ne a PHP-val generáltasd, hanem inkább a PHP-t szúrd be a HTML elemek közé, ha szükséges. Így a forráskód is áttekinthetőbb lesz. Persze ez csak egy javaslat.
  1. <?php  
  2.   if (isset($_POST["neved"]) && $eredm == 0) {    
  3.     print "Rossz felhasználónév, vagy jelszó!<br>";    
  4.   ?>      
  5.     <table>  
  6.       <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">    
  7.         <tr>  
  8.           <td>Login név:</td>  
  9.         </tr>  
  10.         <tr>  
  11.           <td><input type="text" name="neved" size="17"></td>  
  12.         </tr>  
  13.         <tr>  
  14.           <td><input type="submit" value="Belép"></td>  
  15.         </tr>  
  16.       </form>  
  17.     </table>  
  18.     <br />  
  19.     <center>  
  20.       <small><a href="regisztracio.php">Regisztráció</a></small>  
  21.     </center>  
  22.     <span class="php_sample_insert"><?php echo $valtozod; ?></span>  
  23. <?php } ?>  
hasonlóan kellene megformáznod a doksit. A PHP-t lehet így szétdarabolni, viszont sok elágazás esetén ez inkább csak ront a helyzeten. Akkor már érdemesebb külön függvényeket használni, nem beágyazni a szöveget ömlesztve. az utolsó span tagban látod, milyen egyszerű beszúrni egy php változó értékét így is. Amire figyelj még, hogy lehetőleg a HTML tagok attribútumainak értékét tedd macskakörmök közé. Főként a value értékeit, de xhtml szabvány szerint még a számokat is macskakörmözni kellene. Aztán figyelj arra, hogy a tagokat abban a sorban zárd be, ahogy megnyitottad őket. No meg egy ilyen form részt nem feltétlenül táblázatban kellene elhelyezni, de ez a legkisebb gond.