« 1 2
Autor Zpráva
Alphard
Profil
petrr:
Vy chcete pomoci, ale rady ignorujete, nebo vážně nestudujete základy, nebo nevím.
Já jsem chtěl vypsat hodnoty, které jsou v podmínce, ne tu podmínku přepsat.
Tím vypsat jsem myslel echo mysql_result($vysledek, 0); a echo $_REQUEST['txtheslo'];
petrr
Profil *
Ahojky pořád se stím peru a nemůžu přijít na to jak to udělat dobře - nedaří se mi nějak rozumě napsat tuto podmínku: if (mysql_result($vysledek, 0, ) != $_REQUEST['txtheslo']) - buď mi to vypisuje chyby a nebo pořád hlášku " nesprávné heslo" neví někdo z Vás jak to napsat správně? Děkuji


<?php


setcookie('txtjmeno', '', time() + 3600);
setcookie('txtheslo', '', time() + 3600);



$spojeni = mysql_connect("localhost", "root", "");
mysql_select_db("test"); //10

$sql ="SELECT uziv_heslo FROM klienti WHERE uziv_jmeno='".$_REQUEST['txtjmeno']."'";
$vysledek = mysql_query($sql);


if (!$vysledek):
echo "Oveření nelze použít.";
exit;
endif;

//20
if (!mysql_num_rows($vysledek)):
echo "uživatel nenalezen";
exit;

else:

//if (!mysql_result($vysledek, 0)):
if (mysql_result($vysledek, 0, ) != $_REQUEST['txtheslo']):

echo $_REQUEST['txtheslo'];
echo mysql_result($vysledek, 0);

echo "nesprávné heslo";
exit;

else:
 	setcookie ('txtjmeno', $_REQUEST['txtjmeno'], time()+900);
	setcookie ('txtheslo', $_REQUEST['txtheslo'], time()+900);
	

endif;
endif;

?>


<html>
<head>
<title>Stránka login</title>
</head>
</body>
<p>Úspěšně jste se přihlásil</p>
</body>
</html>
Alphard
Profil
Konečně se někam dostáváme, co vám řádky 31 a 32 vypisují?
petrr
Profil *
vypisují udaje: 1) heslo ktere jsem vepsal do inputu, 2) heslo ktere je uloženo v databázi.

Ale ikdyž zadám správnou kombinaci pořád to vypisuje "nesprávné heslo"

Jak dál? Děkuji
Alphard
Profil
petrr:
1) heslo ktere jsem vepsal do inputu, 2) heslo ktere je uloženo v databázi.
Jsou naprosto stejná? Tím myslím i případnou mezeru na začátku nebo na konci.

A na 29. řádku buď doplňte jako třetí parametr 0, nebo smažte tu čárku (,) za druhým parametrem.
petrr
Profil *
Takto mi to vypíše když zadám správnou kombinaci hesla a jména:

abcabcnesprávné heslo


na 29 řádku jsem připsal nulu

jakpak dále? Děkuji
petrr
Profil *
když tam dám tuto podmínku:

if (mysql_result($vysledek, 0,0 ) != $_REQUEST['txtheslo']) vypíše mi to: "úspěšně jste se přihlásil" - i přes špatné heslo

a když tam dám tuto podmínku:

if (mysql_result($vysledek, 0)) pak mi to napíše: "nesprávné heslo"

?
Alphard
Profil
petrr:
Pořád to zamotáváte, na if (mysql_result($vysledek, 0)) zapomeňte, to je k ničemu, když chcete porovnávat heslo na straně PHP.

abcabcnesprávné heslo
Hmm, vypadá to, že je tam správně heslo abc. Ještě zkuste
if (trim(mysql_result($vysledek, 0, 0)) != trim($_REQUEST['txtheslo'])):
echo "Vzor: ".trim(mysql_result($vysledek, 0, 0))."<br>";
echo "Zadané: ".trim($_REQUEST['txtheslo'])."<br>";

echo "nesprávné heslo";
exit;
petrr
Profil *
kdyz to tam zapisu takto vypisuje to: Úspěšně jste se přihlásil i přes špatné kombinace, pro jistotu přeposilam zdroják:
<?php


setcookie('txtjmeno', '', time() + 3600);
setcookie('txtheslo', '', time() + 3600);



$spojeni = mysql_connect("localhost", "root", "");
mysql_select_db("test"); //10

$sql ="SELECT uziv_heslo FROM klienti WHERE uziv_jmeno='".$_REQUEST['txtjmeno']."' ";
$vysledek = mysql_query($sql);


if (!$vysledek):
echo "Oveření nelze použít.";
exit;
endif;

//20
if (!mysql_num_rows($vysledek)):
echo "uživatel nenalezen";
exit;

else:

if (trim(mysql_result($vysledek, 0, 0)) != trim($_REQUEST['txtheslo'])):
echo "Vzor: ".trim(mysql_result($vysledek, 0, 0))."<br>";
echo "Zadané: ".trim($_REQUEST['txtheslo'])."<br>";

echo "nesprávné heslo";


echo $_REQUEST['txtheslo'];

echo mysql_result($vysledek, 0);

echo $_REQUEST['txtjmeno'];

exit;

else:
 	setcookie ('txtjmeno', $_REQUEST['txtjmeno'], time()+900);
	setcookie ('txtheslo', $_REQUEST['txtheslo'], time()+900);
	

endif;
endif;

?>


<html>
<head>
<title>Stránka login</title>
</head>
</body>
<p>Úspěšně jste se přihlásil</p>
</body>
</html>



včem může být chyba?
tiso
Profil
petrr: nauč sa debugovať skript, zbytočne sem x-krát píšeš celý skript.
nightfish
Profil
petrr:
Chyba pravděpodobně spočívá i v tom, co jsme ti psali včera - používáš $_REQUEST['txtheslo'], zatímco název pole ve formuláři je "password".
petrr
Profil *
V soucasne době mám ve formuláři jsem pole přejmenoval včera na txtheslo a pořád to dělá stejnou neplechu. Co by mohlo ještě zpusobovat chyby? Děkuji
nightfish
Profil
petrr:
A "username" je přejmenováno na "txtjmeno"?
petrr
Profil *
ano mám to zapsané takto:
<html>
	<body>
	   <font size="5" face="sans-serif">Login </font>
	   <form action="overeni.php" method="POST" name="form1">
	   <table cellpadding="3" cellspacing="4" border="0">
		<tr>
		 <td>Username:</td>
		 <td><input type="text" name="txtjmeno"></td>
		</tr>
		<tr>
		 <td>Password:</td>
		 <td><input type="password" name="txtheslo"></td>
		</tr>
		<tr>
		 <td><input type="submit" name="submit" value="Log in"/></td>
		</tr>
	    </table>
	    </form>



</body>
</html>


Procházím to pořád dokola a pořád nemůžu přijít na to co je tam špatně?
nightfish
Profil
Vytvořil jsem databázi podle prvního příspěvku, soubor index.html podle [#14] a overeni.php podle [#9] a funguje to, dle očekávání, správně.
petrr
Profil *
ja jsem pozměnil podmínku na:

if (mysql_result($vysledek,0) != ($_REQUEST['txtheslo'])):

a už mi to taky vypisuje správně, takže děkuji všem co mi pomohly!!!!
nightfish
Profil
petrr:
ja jsem pozměnil podmínku na:
Podmínka v [#9] na ř. 28 je ekvivalentní, takže tím to nebude. Ale jestli ti to funguje, tak jsme stejně hotovi.
« 1 2

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