Autor Zpráva
Arigashi
Profil *
tak mám ještě jeden problém se stránkou (rohj.xf.cz), registrace mi funguje, dokonce se i po registraci uživatel přihlásí, jenže když se chci pod již registrovaným jménem příhlásit, nereaguje. stejný problém je, že skript by mi měl vyhodit jestli bylo zadáno např. heslo, což se také neděje. z toho usuzuji, že ten skript nefunguje vůbec:/
skript vypadá takto:
<?php
if(isset($_POST['Přihlásit'])){
   $ok=1;
   if (isset($_GET['reg'])) {unset($_GET['reg']);}
   if(!$_POST['uname'] || !$_POST['upass']){
      echo 'Nejsou vyplněny povinné údaje.</br> ';
      $ok=0;
    }
   $_POST['uname'] = trim($_POST['uname']);
   if(strlen($_POST['uname']) > 12){
      echo 'Jméno má více než 12 znaků.</br>';
      $ok=0;
   } 
    if($ok==1){
      $logname=$_POST['uname'];
      $logpass=$_POST['upass'];
      $mdlogpass=MD5($logpass);
      $dotaz="SELECT * FROM $tbl_name WHERE uname='$logname' and upass='$mdlogpass'";
      $vysledek=mysql_query($dotaz);    
      if(mysql_num_rows($vysledek)==1){
        $_SESSION["logname"]=$logname;
        $_SESSION["prihlaseny"]=1;       
        echo "<p>přihlášen uživatel:</br>$logname</p>";
        echo "<a href='logout.php' id='menusmall'>>>odhlásit<<</a><p>";
        }
        else {
        echo "Špatné jméno nebo heslo.</br>";
        include('loginform.php');       
        }
        }
      else 
      {
      include('loginform.php');      
      }  
   }
   else 
   {
    if (isset($_SESSION["prihlaseny"])){
    if ($_SESSION["prihlaseny"]==1){
        $prname=$_SESSION["logname"];
        echo "<p>přihlášen uživatel:</br>$prname</p>";
        echo "<a href='logout.php' id='menusmall'>>>odhlásit<<</a><p>";
    }
    else {include('loginform.php');}
    }
    else {
    include('loginform.php');
    }
    }
?>

začleněn do indexu
<?php
session_start(); 
include('login.php');
díky předem za pomoc

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
mattyZEM
Profil
Arigashi:
if(!$_POST['uname'] || !$_POST['upass']){
echo 'Nejsou vyplněny povinné údaje.</br> ';
!$_POST['cokoliv'] je blbost :) použij isset

if(isset($_POST['Přihlásit'])){
Jsi si jistý, že name je přesně "Přihlásit"?

$tbl_name
Nevidím nikde, že by jsi tuto proměnnou definoval :)

Pošli sem prosím i obsah loginform.php, děkuji.
Arigashi
Profil *
<p>
        Nejste přihlášen/a
        </p>
        <p>
        <form method="post" action="">
        uživatelské jméno:<input type="text" size="12" maxlength="12" name="uname"><br />
        heslo:<input type="password" size="12" maxlength="12" name="upass"><br />
        <input type="submit" value="odeslat" name="odeslat"> <input type='reset' value='vymazat'>
        </form></p><a href="<?php echo $_SERVER['PHP_SELF'].'?reg=1'; ?>" id="menusmall">>>registrovat<<</a>

loginform.php vypadá takhle

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
mattyZEM
Profil
Vkládej prosím kódy mezi značky [ pre ] a [ /pre ] (stačí kliknout na ).

Mimochodem, vidíš snad v tom kódu loginform.php input s name "Přihlásit"?
Arigashi
Profil *
ne, bohužel jsem v tom totální laik, snažil jsem se udělat stránky na téma podle všemožných manuálů co jsem našel, a protože nevím jak dál, tak se ptám tu co s tím:(
Arigashi
Profil *
mohl bys mi prosím pomoct, co čím nahradit? byl bych ti opravdu vděčný:(
Arigashi
Profil *
if(isset($_POST['Přihlásit']))
poradil by mi někdo co patří místo "přihlásit"? fakt ať googlím jak chci, nemůžu na to přijít
mattyZEM
Profil
Čímkoliv, co používáš ve formuláři v "name", tedy v tvém případě uname, upass a odeslat.

if(isset($_POST['sem dáš něco, co jsem vypsal v prvním řádku'])) 
Arigashi
Profil *
jo dík, další problém mi to vyhodilo
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/xf.cz/r/rohj/login.php on line 20
<?php
if(isset($_POST['odeslat'])){
$ok=1;
if (isset($_GET['reg'])) {unset($_GET['reg']);}
if(!$_POST['uname'] || !$_POST['upass']){
echo 'Nejsou vyplněny povinné údaje.</br> ';
$ok=0;
}
$_POST['uname'] = trim($_POST['uname']);
if(strlen($_POST['uname']) > 12){
echo 'Jméno má více než 12 znaků.</br>';
$ok=0;
}
if($ok==1){
$logname=$_POST['uname'];
$logpass=$_POST['upass'];
$mdlogpass=MD5($logpass);
$dotaz="SELECT * FROM $tbl_name='usertb' WHERE uname='$logname' and upass='$mdlogpass'";
$vysledek=mysql_query($dotaz);
if(mysql_num_rows($vysledek)==1){
$_SESSION["logname"]=$logname;
$_SESSION["prihlaseny"]=1;
echo "<p>přihlášen uživatel:</br>$logname</p>";
echo "<a href='logout.php' id='menusmall'>>>odhlásit<<</a><p>";
}
else {
echo "Špatné jméno nebo heslo.</br>";
include('loginform.php');
}
}
else
{
include('loginform.php');
}
}
else
{
if (isset($_SESSION["prihlaseny"])){
if ($_SESSION["prihlaseny"]==1){
$prname=$_SESSION["logname"];
echo "<p>přihlášen uživatel:</br>$prname</p>";
echo "<a href='logout.php' id='menusmall'>>>odhlásit<<</a><p>";
}
else {include('loginform.php');}
}
else {
include('loginform.php');
}
}
?>

proste zacina se to stavat tezsim nez sem si myslel na zacatku:/
frytol
Profil
pokut by si chtěl tak bych ti mohl jednu jednoduchou registraci s loginem poslat stačí dát mail.
Arigashi
Profil *
arigashi@seznam.cz, byl bych ti vdecny, ale nvm jestli to zvladnu zaimplentovat do toho mysql:/
frytol
Profil
je tam txt soubor kde je napsání jaký sloupce máš v tabulce udělat no a tabulku si pojmenuj jak chceš akorát si to pak v configu změn a v souboru reg.php si změn údaje u mailu že to odesílá údaje na mail tak tam napiš odesílatele a text zprávy
Nox
Profil
mattyZEM:
!$_POST['cokoliv'] je blbost

Obecně to není blbost ... u těchto podmínek by měl programátor přesně vědět co mají propouštět a znát nebo se podívat do tabulky

isset by tomuto měl předcházet, ale i tak by tam toto mohlo být ... jde si taky všimnout že výsledky jsou přesně opačné jako u empty(), takže by to mělo být zaměnitelné ... empty je ale asi hezčí a jasnější

pořád to ale není vše, protože empty($var) (a při daném použití analogicky !$var) považují 0 nebo "0" za prázdnou proměnnou
Arigashi
Profil *
tak všem děkuji za pomoc, ale kdyby mi někdo ještě pomohl s tím Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/xf.cz/r/rohj/login.php on line 20, byl bych vděčný.
js
Profil *
co máš uložené v proměnné
$tbl_name
? Je vůbec někde definovaná?
mattyZEM
Profil
Nox:
Obecně to není blbost
Není ale i je. Jak jsi psal, programátor by měl přesně vědět, co má v daném programu použít, ale v tomto případě to zrovna moc dobré řešení není.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0