Autor Zpráva
xpt26
Profil *
zdravím hraju si poprpvé s SQL
a mám v SQL tabulku cms_users a sloupec pass a po

$overeni_prihlaseni2 = mysql_query("SELECT * FROM cms_users WHERE pass = '$postnuty_pass'");


a potřebuju zjistit proč to nefajščí....
fuckin
Profil
a co bys cekal ze ti ten prikaz udela? Zpracovavas to napr pres mysql_fetch_array?

Jestli ano ale zadnou hodnotu ti to nevrati tak si vypis chybu.

mysql_query(...) or die(mysql_error());
SwimX
Profil
xpt26:
co nefajščí?
pokud chceš vidět data pak musíš
$radka = mysql_fetch_assoc($overeni_prihlaseni2);
echo $radka['pass']."<br>".$radka['po']

za podmínky že předtímto vším máš připojení do DB, výber DB atd. viz: http://www.linuxsoft.cz/article.php?id_article=336
xpt26
Profil *
tak tedy zkusím celý skript
ale kamarád mi trochu poradil a jemu to tak funguje...

<form method="POST" action="login.php">
<input type="text" name ="nick">&nbsp; Váš nick<p>
<input type="password" name ="heslo">&nbsp; Váše heslo</p>
<p>
<input type="submit" name="log_in" value="Přihlásit">
</p>
</form>

<?php
include ("config.php");
$postnuty_nick = $_POST['nick'];
$postnuty_pass = $_POST['heslo'];
if ( isset($HTTP_POST_VARS['log_in']) )
{
$ak = "SELECT * FROM cms_users WHERE nick=\"{$postnuty_nick}\"";
$akt = mysql_query ($ak);

$ak2 = "SELECT * FROM cms_users WHERE pass=\"{$postnuty_pass}\"";
$akt2 = mysql_query ($ak2);
}

if (!$akt)
{
echo"špatné jméno";
}
else
{
echo"GOOD nick";
}

if (!$akt2)
{
echo"špatné heslo";
}
else
{
echo"GOOD pass";
}




?>



obash config.php
<?
$link = mysql_connect("localhost", "root", "19723698")
or die ("Could not connect to MySQL");
mysql_select_db ("cms")
or die ("Could not select database");
?> 
SwimX
Profil
xpt26:
to vypadá dobře.
udělej
$akt = mysql_query ($ak) or die (mysql_error());

a pokud to něco vypíše, hoď to sem.

jinak pozor na SQL injection
xpt26
Profil *
tak jo nevypíše to nic .....
xpt26
Profil *
ještě bych poprosil o nějakou podmínku když oba příkazy vyjdou aby to vypsalo třeba OK ... zkusil sem na konec přidat

if ($akt2 AND $akt)
{
echo"OK ";
}


ale problém je v tom že mi to píše špatný heslo a špatný jméno ale na konec to píše OK .... takže jako kdyby to nevyšlo a zárověn vyšlo... ale co mi vadí víc že to píše při zadání jakýchkoliv údajů jak spprávných tak špatných...
SwimX
Profil
xpt26:
dobrá, tak pořešíme uplné základy :)
je to celé phpko v souboru: login.php?
a vypíše ti to alespoň špatný nick a špatné heslo?
a eště: zkus vyhodit tudle podmínku:
if ( isset($HTTP_POST_VARS['log_in']) )
SwimX
Profil
xpt26:
ještě bych poprosil o nějakou podmínku když oba příkazy vyjdou aby to vypsalo třeba OK ... zkusil sem na konec přidat
$ak = "SELECT * FROM cms_users WHERE nick=\"".addslashes($postnuty_nick)."\" and pass=\"".addslashes($postnuty_pass)."\"";
$akt = mysql_query ($ak);

if (!$akt)
{
echo"špatné údaje";
}
else
{
echo"přihlášen";
}
xpt26
Profil *
SwimX:
ano celé je to v login.php
Ano vypíše to špatný nick a špatný pass ale vždy nezávisle na tom co zadám....
když sem dal pryč tu podmínku na jenom když se zmáčkne to tlačítko tak to píše furt " špatné jménošpatné hesloOK "
xpt26
Profil *
SwimX:

S použitím
$ak = "SELECT * FROM cms_users WHERE nick=\"".addslashes($postnuty_nick)."\" and pass=\"".addslashes($postnuty_pass)."\"";
$akt = mysql_query ($ak);

if (!$akt)
{
echo"špatné údaje";
}
else
{
echo"přihlášen";
}


to pro změnu furt píše přihlášen ikdyž dám cokoliv
SwimX
Profil
xpt26:
<?php
$link = mysql_connect("localhost", "root", "")
or die ("Could not connect to MySQL");
mysql_select_db ("okresy")
or die ("Could not select database");

?>
<form method="POST" >
<input type="text" name ="nick">&nbsp; Váš nick<p>
<input type="password" name ="heslo">&nbsp; Váše heslo</p>
<p>
<input type="submit" name="log_in" value="Přihlásit">
</p>
</form>

<?php
include ("config.php");
$postnuty_nick = $_POST['nick'];
$postnuty_pass = $_POST['heslo'];
if ( isset($HTTP_POST_VARS['log_in']) )
{
$ak = "SELECT * FROM okresy WHERE nazev_cs=\"{$postnuty_nick}\" and id={$postnuty_pass}";
$akt = mysql_query ($ak);
}

if (!$akt)
{
echo"špatně";
}
else
{
echo"GOOD";
}
?>

mě to funguje, takže nevidím důvod proč by tobě nemělo.
když zadám okres Benešov a id 1 tak GOOD jinak vždy špatně. :)
xpt26
Profil *
Ok tak tedy díky zkusím zítra, protože ted už nemám PC s xamppem...
fuckin
Profil
zkus jeste
if (@mysql_num_rows($akt))
{
echo "ok";
}
else
{
echo "blbe";
}
xpt26
Profil *
OK díky moc ta podmínka

if (@mysql_num_rows($akt))
{
echo "ok";
}
else
{
echo "blbe";
}


Opravdu funguje !
fuckin
Profil
ano protoze nemuzes porovnavat stylem if ($akt) protoze toto projde ikdyz to nic nenajde. Akorat kdyz se objevi nejaka chyba tak to neprojde.

Musis spocitat kolik vyskytu to naslo proto mysql_num_rows. Ten @ je tam proto ze kdyz to nic nenajde tak to vyhodi notice ze to nema co pocitat.
xpt26
Profil *
ok poučím se!

Díky moc

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