PHP SESSION megőrzés megoldása
2011-06-07T10:51:24+02:00
2011-06-07T20:11:42+02:00
2022-07-24T14:41:23+02:00
  • akkor is ellenőrzöd a belépést ha nincs kitöltve se a user se a jelszó?

    használd az isset() vagy empty() függvényeket mielőtt akármit is cisnálnál azinputokkal.

    stripslashes -t ne futtasd abban az esetben hogyha magic qoutes szerver beállítás OFF ra van állítva. Erre van egy kis programrész, amit php.net stripslashes oldalán megtalálsz, ami a magic_qoutes_gpc -t ellenőrzi.

    A sessionbe ne az űrlaptól jövő és többszörös átalakításon átesett adatot tedd ($mypassword). Mi van ha én ' jeleket is teszek a jelszavamba? a mysql_real_escape_string() miatt alapból ' -rel küldi tovább a következő oldalra, és máris vérzik a programrész.

    És jó volna ha használnád a kód gombot, hogy a formázás rendesen átjöjjön.
    Mutasd a teljes hozzászólást!
  • Akkor így jó:?
    login.php
    <?php

    $host="localhost"; // Host name
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name=""; // Database name
    $tbl_name="login"; // 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");

    // username and password sent from form
    $myusername=$_POST['user'];
    $mypassword=$_POST['pass'];
    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);

    $sql="SELECT * FROM login WHERE user='$myusername' and pass='$mypassword'";
    $result=mysql_query($sql);

    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    $_SESSION['myusername'] = "$myusername";
    $_SESSION['mypassword'] = "$mypassword";
    header("Location:index.php");
    }
    else {
    echo "Rossz felhasználónév/jelszó!";
    }
    ?>



    index.php


    session_start();
    if(!isset($_SESSION["myusername"]))
    {
    header("Location:login.html");
    }
    Mutasd a teljes hozzászólást!
  • Akkor így jó:?
    login.php
    <?php $host="localhost"; // Host name $username=""; // Mysql username $password=""; // Mysql password $db_name=""; // Database name $tbl_name="login"; // 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"); // username and password sent from form $myusername=$_POST['user']; $mypassword=$_POST['pass']; $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM login WHERE user='$myusername' and pass='$mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" $_SESSION['myusername'] = "$myusername"; $_SESSION['mypassword'] = "$mypassword"; header("Location:index.php"); } else { echo "Rossz felhasználónév/jelszó!"; } ?>



    index.php


    session_start(); if(!isset($_SESSION["myusername"])) { header("Location:login.html"); }
    Mutasd a teljes hozzászólást!
  • A session_register nem kell.
    A session_is_registered helyett isset().
    A másik fájlod elejére session_start(). Ennyi.

    Ez maga hülyeség: session_is_registered(user) - hiszen nincs a kódban "user" nevű konstans. Gondolom idézőjelezve szeretted volna. ALAPOK!!!! Másik:

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

    Ha nincs POST adat itt szintén hibák lesznek, vele együtt az összes lekérdezésben is.
    Sej de jó lenne ha kicsit is értenéd hogy épülnek fel a dolgok...
    Mutasd a teljes hozzászólást!
  • Szeretném ha kijavítanátok ezt a kódot
    (bővebben lent)
    Köszönettel: Gamerpen

    Van két fájlom:
    checklogin.php


    <?php
    $host="localhost"; // Host name
    $username=""; // Mysql username
    $password=""; // Mysql password
    $db_name="test"; // Database name
    $tbl_name="members"; // 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");

    // username and password sent from form
    $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);

    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row

    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
    }
    else {
    echo "Wrong Username or Password";
    }
    ?>
    Van egy két hiba de a session a lényeg!!!
    Most a saját fájlom:
    index.php
    <?
    session_start();
    if(!session_is_registered(user)){
    header("Location:login.html");
    }
    $kapcsolat = mysql_connect("127.0.0.1", "....", ".....");
    mysql_select_db(".....", $kapcsolat);
    session_register(myusername);
    $user= $_SESSION['myusername'];

    //lekérdezés...
    ?>


    Nem értem hogyan vigyem át a session értéket az index.php-ba!!!
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: Tud�st�rba val�...
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd