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:
<?php
session_start();
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
if (isset($kilep)) {
    session_unset();
    session_destroy();
}
if (isset($_SESSION["penz"])) {
    print "Sikeres bejelentkezés!<br>Üdvözöllek: <b>$nev</b> Az ön számlájának egyenlege:<b>$penz</b>";
    print "<br><a href='" . $PHP_SELF . "?kilep='''>kilépek!</a>";
} else {
    if (isset($_POST["neved"])) {
        include("config.php");
        $nev     = $_POST["neved"];
        $pass    = $_POST["passod"];
        $parancs = mysql_query("SELECT nev, jelszo, penz from nickek where nev = '$nev' and jelszo = '$pass'");
        $eredm   = mysql_num_rows($parancs);
        if ($eredm == 1) {
            session_register("nev");
            session_register("pass");
        }
    } else {
        print "<table><form action=" . $PHP_SELF . " method=post>
<tr><td>Login név:</td></tr><tr><td><input type=text name='neved' size=17></td></tr>
<tr><td>Jelszó:</td></tr><tr><td><input type=password name='passod' size=17></td></tr>
<tr><td><input type=submit value=Belép></td></tr></table><br><center><small><a href=regisztracio.php>Regisztráció</a></center></small>";
    }
    if (isset($_POST["neved"]) && $eredm == 0) {
        print "Rossz felhasználónév, vagy jelszó!<br>";
        print "<table><form action=" . $PHP_SELF . " method=post>
<tr><td>Login név:</td></tr><tr><td><input type=text name='neved' size=17></td></tr>
<tr><td>Jelszó:</td></tr><tr><td><input type=password name='passod' size=17></td></tr>
<tr><td><input type=submit value=Belép></td></tr></table><br><center><small><a href=regisztracio.php>Regisztráció</a></center></small>";
    } elseif (isset($_POST["neved"]) && $eredm == 1) {
        print "Sikeres bejelentkezés!";
    }
}
?>
<meta http-equiv="Refresh" content="3; URL=login.php">
</body>
</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?

$parancs = mysql_query("SELECT nev, jelszo, penz from nickek where penz = '$penz', nev = '$nev' and jelszo = '$pass'");
//                                              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.

<?php
  if (isset($_POST["neved"]) && $eredm == 0) {  
    print "Rossz felhasználónév, vagy jelszó!<br>";  
  ?>    
    <table>
      <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">  
        <tr>
          <td>Login név:</td>
        </tr>
        <tr>
          <td><input type="text" name="neved" size="17"></td>
        </tr>
        <tr>
          <td><input type="submit" value="Belép"></td>
        </tr>
      </form>
    </table>
    <br />
    <center>
      <small><a href="regisztracio.php">Regisztráció</a></small>
    </center>
    <span class="php_sample_insert"><?php echo $valtozod; ?></span>
<?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.