Autor Zpráva
Brouzdalek
Profil
Najde mi někdo chybu ???



<?
session_start();
if ($_GET['action']=='validate') // pokud byl formulář odeslán
{
if (($_POST['pole1'] == $jmeno) && ($_POST['pole2'] == $heslo))
{
$spojeni = mysql_connect ("localhost", "root", "root"); // připojení k serveru
$databaze = MySQL_select_DB ("test"); // výběr databáze
$vyhledat = "SELECT * FROM heslo WHERE ID = ".$_POST['pole1']."";// zadání kritérií pro výběr
$dotaz = mysql_query($vyhledat); // odešle SQL dotaz
$row = mysql_fetch_array($dotaz);
$jmeno = $row['jmeno'];
$heslo = $row['heslo'];
$_SESSION['jm'] = $pole1; // přiřazení hodnot do sessions
$_SESSION['he'] = $pole2;
header('Location: index2.php'); // přesměrování na další stránku
}
else
header('Location: index.php'); // pokud něco nesouhlasí, vrať se
}
?>
<HTML>

<HEAD>
<title>Sessions 5/1</title>
</HEAD>

<BODY>
<FORM action="./index.php?action=validate" method="post">
Zadejte Vaše jméno: <input type="text" name="pole1"><br /><br />
Zadejte Vaše heslo: <input type="password" name="pole2">
<br /><br /><br />
<input type="submit" value="Odeslat">
</FORM>
</BODY>

</HTML>

djlj
Profil
Brouzdalek
To má být jako nějakej test?

Co takhle trochu víc informací?
Mastodont
Profil
Není třeba, je to zřejmé na první pohled :-)
Brouzdalek
Profil
Ne, to není test. Já opravdu nemůžu najít žádnou chybu, nefungujete. Začal jsem využívat sessions, možná je to v tom, nebo v připojení k MySQL, opravdu nevím...

Předem díky za všechny rady !
Davex
Profil
Odkud se berou hodnoty proměnných $jmeno a $heslo ?
Brouzdalek
Profil
No z databáze: pomocí mysql_fetch_array($dotaz)
djlj
Profil
Brouzdalek
Tady:
$_SESSION['jm'] = $pole1;
$_SESSION['he'] = $pole2;

použij $_POST['pole1'] a $_POST['pole2']

a předpokládám, že máš nastaveno error_reporting(E_ALL);
Mastodont
Profil
Brouzdalek

Jenže ty je používáš už předtím, to je problém:

if (($_POST['pole1'] == $jmeno) && ($_POST['pole2'] == $heslo))
Brouzdalek
Profil
Tady:
$_SESSION['jm'] = $pole1;
$_SESSION['he'] = $pole2;

použij $_POST['pole1'] a $_POST['pole2']

a předpokládám, že máš nastaveno error_reporting(E_ALL);



Jenomže já si pomocí tohoto zápisu registruju sessions, pomocí $_POST je přeci dostanu jednom z formuláře...
Mastodont
Profil
To by mělo být všechno, takže si ty čtyři chyby oprav a mělo by to chodit.
Brouzdalek
Profil
Tak jsem to trochu předělal, ale pořád nic....sem už fakt nasr...nej :-((



<?
session_start();
if ($_GET['action']=='validate')
{
$spojeni = mysql_connect ("localhost", "root", "root");
$databaze = MySQL_select_DB ("test");
$vyhledat = "SELECT * FROM heslo WHERE jmeno = ".$pole1."";
$dotaz = mysql_query($vyhledat);
$row = mysql_fetch_array($dotaz);
$jmeno = $row['jmeno'];
$heslo = $row['heslo'];
if (($_POST['pole1'] == $jmeno) && ($_POST['pole2'] == $heslo))
{
$_SESSION['user'] = $pole1;
$_SESSION['password'] = $pole2;
header('Location: index2.php');
}
else
header('Location: index.php');
}
?>

<HTML>

<HEAD>
<title>Sessions 5/1</title>
</HEAD>

<BODY>
<FORM action="./index.php?action=validate" method="post">
Zadejte Vaše jméno: <input type="text" name="pole1"><br /><br />
Zadejte Vaše heslo: <input type="password" name="pole2">
<br /><br /><br />
<input type="submit" value="Odeslat">
</FORM>
</BODY>

</HTML>
Mastodont
Profil
Vždyť ti to djlj napsal:

$_SESSION['user'] = $_POST['pole1'];

$_SESSION['password'] = $_POST['pole2'];
Broudzalek
Profil *
No dobře, ale jak tedy mám $user a $password uložit jako sessions ?? Chtěl bych tyto proměnné využít na další stránce...?!
Petr Tichý
Profil
Broudzalek
Vždyť tím se ti to uloží jako sezení.
Mastodont
Profil
Broudzalek

No vždyť $_SESSION['xxx'] můžeš použít na jiných stránkách, ale tys měl v kódu nedefinovaný $pole1 a $pole2 ...
Brouzdalek
Profil
Já jsem asi úplnej *****, vůbec to nemůžu rozchodit - a to jsem to opravil podle návodu...

Kdyby se ti chtělo, můžeš mi to poslat sem do diskuze opravený :-)) Předem díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0