Stránka 1 z 8

[PHP] Proč nefunguje script ?

Napsal: 04 čer 2013 12:41
od Madara
Přidal jsem ověřování cookies a přidávání cookies a od té doby mi to hází chybu na posledním řádku, když ho smažu, chyba je zase na posledním řádku.

Kód: Vybrat vše

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>Přihlášení</title>
</head>
<body>
 
<?php


if (isset($_COOKIE['auto']) AND isset($_COOKIE['nick']) AND isset($_COOKIE['heslo']))
{
    if ($_COOKIE['auto'] == 'yes')
    {
// Nadefinujeme hned potřebné proměnné SESSION
        $_SESSION['heslo'] = strrev(md5($_COOKIE['heslo']))."g5ds8";
        $_SESSION['nick'] = $_COOKIE['nick'];
        $_SESSION['id'] = $_COOKIE['id'];
      header("Location: ./game.php");
    $tlacitko = $_POST["tlacitko"];
    if($tlacitko){
      $nick = $_POST["nick"];
      $heslo = $_POST["heslo"];
      $heslo = md5(md5($heslo));
      mysql_connect("localhost", "gamew1369162969", "o7txNSp");
      mysql_select_db("gamew1369162969");
      $dotaz = mysql_query("SELECT * FROM uzivatele WHERE nick='".mysql_real_escape_string($nick)."' AND heslo='$heslo' ;");
                        while($vystup = mysql_fetch_object($dotaz))
                        {
                          $id = $vystup->id;
                          $nickDB = $vystup->nick;
                          $hesloDB = $vystup->heslo;
                          $email = $vystup->email;
                          $opravneni = $vystup->opravneni;
                        }
      if($nick == $nickDB AND $heslo == $hesloDB){
        $_SESSION["id"] = $id;
        $_SESSION["nick"] = $nick;
        $_SESSION["email"] = $email;
        $_SESSION["opravneni"] = $opravneni;
        echo "Byl jsi přihlášen jako $nick";       
      }
    if (isset($_POST['pamatuj'])){
      // Dále uložime data do COOKIE, pro pozdější přihlášení               
// POZOR!!! DATA V COOKIE NEJSOU ŠIFROVÁNÁ, DĚLEJTE TO NA ZÁKLADĚ VLASTNÍHO UVÁŽENÍ           
            if($_POST['save'] == 1)
            {
// Pokud se uživatel chce přihlášovat automaticky                 
                setcookie("auto", "yes", time()+9999999);
                setcookie("nick", $_POST['nick'], time()+9999999);
                setcookie("heslo", $_POST['heslo'], time()+9999999);
                setcookie("id", $r1['id'], time()+9999999);
            }                                   
   }
    }
  ?>
  <html>
    <form action="<?php $PHP_SELF; ?>" method="POST"> 
        <tr><td>Nick:</td><td><input type="text" name="nick" /></td></tr>
        <tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
      <tr><td></td><td><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>
      <tr><td></td><td><input type="checkbox" name="pamatuj" /></td></tr>   
     </form>

Re: [PHP] Proč nefunguje script ?

Napsal: 04 čer 2013 12:47
od CZechBoY
dej to vypisování html až za to zpracování cookies/session

ani jsem to nečetl nějak extra, ale nechápu co má dělat tohle
<?php $PHP_SELF; ?>


no a podle hlášky kompilátoru lze celkem v pohodě poznat v čem je problém
chybí ti tam 2 složený závorky pro ukončení těla ifu 1 a 2

Re: [PHP] Proč nefunguje script ?

Napsal: 05 čer 2013 14:20
od Madara
Ale pořád mě to neuloží do cookies

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Přihlášení</title>
</head>
<body>

<?php


if (isset($_COOKIE['auto']) AND isset($_COOKIE['nick']) AND isset($_COOKIE['heslo']))
{
if ($_COOKIE['auto'] == 'yes')
{
// Nadefinujeme hned potřebné proměnné SESSION
$_SESSION['heslo'] = strrev(md5($_COOKIE['heslo']))."g5ds8";
$_SESSION['nick'] = $_COOKIE['nick'];
$_SESSION['id'] = $_COOKIE['id'];
header("Location: ./game.php");
}
}
$tlacitko = $_POST["tlacitko"];
if($tlacitko){
$nick = $_POST["nick"];
$heslo = $_POST["heslo"];
$heslo = md5(md5($heslo));
mysql_connect("localhost", "gamew1369162969", "o7txNSp");
mysql_select_db("gamew1369162969");
$dotaz = mysql_query("SELECT * FROM uzivatele WHERE nick='".mysql_real_escape_string($nick)."' AND heslo='$heslo' ;");
while($vystup = mysql_fetch_object($dotaz))
{
$id = $vystup->id;
$nickDB = $vystup->nick;
$hesloDB = $vystup->heslo;
$email = $vystup->email;
$opravneni = $vystup->opravneni;
}
if($nick == $nickDB AND $heslo == $hesloDB){
$_SESSION["id"] = $id;
$_SESSION["nick"] = $nick;
$_SESSION["email"] = $email;
$_SESSION["opravneni"] = $opravneni;
echo "Byl jsi přihlášen jako $nick";
}
if (isset($_POST['pamatuj'])){
// Dále uložime data do COOKIE, pro pozdější přihlášení
// POZOR!!! DATA V COOKIE NEJSOU ŠIFROVÁNÁ, DĚLEJTE TO NA ZÁKLADĚ VLASTNÍHO UVÁŽENÍ
if($_POST['save'] == 1)
{
// Pokud se uživatel chce přihlášovat automaticky
setcookie("auto", "yes", time()+9999999);
setcookie("nick", $_POST['nick'], time()+9999999);
setcookie("heslo", $_POST['heslo'], time()+9999999);
setcookie("id", $r1['id'], time()+9999999);
}
}
}
?>
<html>
<form action="<?php $PHP_SELF; ?>" method="POST">
<tr><td>Pamatovat si mě </td><td><input type="checkbox" name="pamatuj" /></td></tr>
<br>
<tr><td>Nick:</td><td><input type="text" name="nick" /></td></tr>
<tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
<tr><td></td><td><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>
</form>

Re: [PHP] Proč nefunguje script ?

Napsal: 05 čer 2013 16:24
od CZechBoY
dej to html pod zpracování cookies/session

Re: [PHP] Proč nefunguje script ?

Napsal: 05 čer 2013 19:51
od Madara
Pořád to nejde

Kód: Vybrat vše

<?php session_start(); ?>

<?php


if (isset($_COOKIE['auto']) AND isset($_COOKIE['nick']) AND isset($_COOKIE['heslo']))
{
    if ($_COOKIE['auto'] == 'yes')
    {
// Nadefinujeme hned potřebné proměnné SESSION
        $_SESSION['heslo'] = strrev(md5($_COOKIE['heslo']))."g5ds8";
        $_SESSION['nick'] = $_COOKIE['nick'];
        $_SESSION['id'] = $_COOKIE['id'];
      header("Location: ./game.php");
      }
}
    $tlacitko = $_POST["tlacitko"];
    if($tlacitko){
      $nick = $_POST["nick"];
      $heslo = $_POST["heslo"];
      $heslo = md5(md5($heslo));
      mysql_connect("localhost", "gamew1369162969", "o7txNSp");
      mysql_select_db("gamew1369162969");
      $dotaz = mysql_query("SELECT * FROM uzivatele WHERE nick='".mysql_real_escape_string($nick)."' AND heslo='$heslo' ;");
                        while($vystup = mysql_fetch_object($dotaz))
                        {
                          $id = $vystup->id;
                          $nickDB = $vystup->nick;
                          $hesloDB = $vystup->heslo;
                          $email = $vystup->email;
                          $opravneni = $vystup->opravneni;
                        }
      if($nick == $nickDB AND $heslo == $hesloDB){
        $_SESSION["id"] = $id;
        $_SESSION["nick"] = $nick;
        $_SESSION["email"] = $email;
        $_SESSION["opravneni"] = $opravneni;
        echo "Byl jsi přihlášen jako $nick";       
      }
    if (isset($_POST['pamatuj'])){
      // Dále uložime data do COOKIE, pro pozdější přihlášení               
// POZOR!!! DATA V COOKIE NEJSOU ŠIFROVÁNÁ, DĚLEJTE TO NA ZÁKLADĚ VLASTNÍHO UVÁŽENÍ           
            if($_POST['save'] == 1)
            {
// Pokud se uživatel chce přihlášovat automaticky                 
                setcookie("auto", "yes", time()+9999999);
                setcookie("nick", $_POST['nick'], time()+9999999);
                setcookie("heslo", $_POST['heslo'], time()+9999999);
                setcookie("id", $r1['id'], time()+9999999);
            }                                   
   }
    }
  ?>
  <html>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>Přihlášení</title>
</head>
<body>
    <form action="<?php $PHP_SELF; ?>" method="POST">
      <tr><td>Pamatovat si mě </td><td><input type="checkbox" name="pamatuj" /></td></tr>
        <br>
      <tr><td>Nick:</td><td><input type="text" name="nick" /></td></tr>
        <tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
      <tr><td></td><td><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>   
     </form>

Re: [PHP] Proč nefunguje script ?

Napsal: 05 čer 2013 19:53
od CZechBoY
tak ještě dej pryč tu mezeru, kterou nechápu proč tam máš

Re: [PHP] Proč nefunguje script ?

Napsal: 05 čer 2013 20:29
od Madara
Pořád nic

Kód: Vybrat vše

<?php session_start(); ?>
<?php
if (isset($_COOKIE['auto']) AND isset($_COOKIE['nick']) AND isset($_COOKIE['heslo']))
{
    if ($_COOKIE['auto'] == 'yes')
    {
// Nadefinujeme hned potřebné proměnné SESSION
        $_SESSION['heslo'] = strrev(md5($_COOKIE['heslo']))."g5ds8";
        $_SESSION['nick'] = $_COOKIE['nick'];
        $_SESSION['id'] = $_COOKIE['id'];
      header("Location: ./game.php");
      }
}
    $tlacitko = $_POST["tlacitko"];
    if($tlacitko){
      $nick = $_POST["nick"];
      $heslo = $_POST["heslo"];
      $heslo = md5(md5($heslo));
      mysql_connect("localhost", "gamew1369162969", "o7txNSp");
      mysql_select_db("gamew1369162969");
      $dotaz = mysql_query("SELECT * FROM uzivatele WHERE nick='".mysql_real_escape_string($nick)."' AND heslo='$heslo' ;");
                        while($vystup = mysql_fetch_object($dotaz))
                        {
                          $id = $vystup->id;
                          $nickDB = $vystup->nick;
                          $hesloDB = $vystup->heslo;
                          $email = $vystup->email;
                          $opravneni = $vystup->opravneni;
                        }
      if($nick == $nickDB AND $heslo == $hesloDB){
        $_SESSION["id"] = $id;
        $_SESSION["nick"] = $nick;
        $_SESSION["email"] = $email;
        $_SESSION["opravneni"] = $opravneni;
        echo "Byl jsi přihlášen jako $nick";       
      }
    if (isset($_POST['pamatuj'])){
      // Dále uložime data do COOKIE, pro pozdější přihlášení               
// POZOR!!! DATA V COOKIE NEJSOU ŠIFROVÁNÁ, DĚLEJTE TO NA ZÁKLADĚ VLASTNÍHO UVÁŽENÍ           
            if($_POST['save'] == 1)
            {
// Pokud se uživatel chce přihlášovat automaticky                 
                setcookie("auto", "yes", time()+9999999);
                setcookie("nick", $_POST['nick'], time()+9999999);
                setcookie("heslo", $_POST['heslo'], time()+9999999);
                setcookie("id", $r1['id'], time()+9999999);
            }                                   
   }
    }
  ?>
  <html>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>Přihlášení</title>
</head>
<body>
    <form action="<?php $PHP_SELF; ?>" method="POST">
      <tr><td>Pamatovat si mě </td><td><input type="checkbox" name="pamatuj" /></td></tr>
        <br>
      <tr><td>Nick:</td><td><input type="text" name="nick" /></td></tr>
        <tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
      <tr><td></td><td><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>   
     </form>

Re: [PHP] Proč nefunguje script ?

Napsal: 05 čer 2013 21:05
od CZechBoY
eště ten novej řádek :D
co to teda dělá?
btw proč ukládáš ty sračky do cookies? stačí si tam uložit nějakou náhodnou hodnotu a tu si přiřadit k uživateli do databáze a potom jen kontrolovat

Re: [PHP] Proč nefunguje script ?

Napsal: 06 čer 2013 21:16
od Madara
Jakej novej ? Mohl bys mi poslat opravený kód ?

Re: [PHP] Proč nefunguje script ?

Napsal: 06 čer 2013 21:19
od CZechBoY
novej řádek
<?php session_start; ?> (novej řádek)
<?php fdsfdfdfddfsd

prostě to dej do jednoho <?php fsdjfsdjfdsjk
to nevypisuje nic, pokud nedáš echo

jaká teda je teď chyba?

Re: [PHP] Proč nefunguje script ?

Napsal: 06 čer 2013 21:34
od Madara
OK,
Normálně zaškrtnu políčko pamatuj si mě a když pak stisknu F5, nikam mě to nepřesměruje, ale jsem zase na přihlašovací stránce.

Re: [PHP] Proč nefunguje script ?

Napsal: 06 čer 2013 21:39
od CZechBoY
F5 dáš na jaký stránce?