| Autor | Zpráva | ||
|---|---|---|---|
| macadan Profil |
#1 · Zasláno: 19. 5. 2014, 16:52:40
Zdravím,
potřeboval bych poradit jak z mysql databáze vyčíst specifické objednávky daného uživatele (který je v tu dobu přihlášený).. <table border=1>
<tr>
<td><p>Uživatel</p></td>
<td><p>Objednávka</p></td>
</tr>
<?php
require "db.php";
$co = "SELECT jmeno_uziv,nazev_dresu FROM objednavky";
$ward_list = mysql_query($co);
while (list($uziv,$dres) = mysql_fetch_array($ward_list)){
echo '<tr><td><p><strong>'. $uziv .'</strong></p></td><td><p>'. $dres .'</p></td></tr>';
}
?> </table>]Úplný výpis z databáze jsem už zvládnul, teď to jen v tom selectu (nebo i někde jinde.. nevím, v php jsem začátečník) potřebuji upravit, aby vybiraly jen sloupce s jmenem uzivatele, ktere se shoduje s tim, co je ulozene v session. Zkousel jsem neco jako SELECT jmeno_uziv,nazev_dresu FROM objednavky WHERE jmeno_uziv = ".$_SESSION['login']." Pro uplnost jeste php soubor, kde se zpracovava login: session_start(); // Budeme pracovat se session, musíme je nastartovat.
if(isset($_POST['jmeno'])){
require_once 'db.php';
$name = $_POST['jmeno'];
$pass = md5($_POST['heslo']);
$query = mysql_query("SELECT * FROM `uzivatele` WHERE `nickname` = '$name' and `heslo` = '$pass'") or die (mysql_error());
// Vybereme uživatele se zadaným jménem a heslem
$Vysledek = mysql_fetch_array($query);
if($Vysledek['jmeno']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo
// Do sessions si uložíme pár informací o přihlášeném
$_SESSION['prihlasen'] = 1;
$_SESSION['login'] = $Vysledek['jmeno'];
$_SESSION['UserId'] = $Vysledek['id_uz'];
$bl="shop.php";
header("location: $bl"); // přesměrujeme na index
exit;
}else{
$bl="login_fail.html";
header("location: $bl"); // špatně zadané údaje
exit;
// echo "Zadal jsi špatné údaje";
}
mysql_free_result($query);
}else{
echo "Zde nic není.";
}
ob_end_flush();
?> |
||
| juriad Profil |
Chyběly ti tam apostrofy. A samozřejmě escapování vstupu (pro jistotu).
$co = "SELECT jmeno_uziv, nazev_dresu FROM objednavky WHERE jmeno_uziv = '" . mysql_real_escape_string($_SESSION['login']) . "'"; Mimochodem, zvaž opuštění stařičkého rozšíření mysql_. Viz http://www.fisir.tk/itblog/mysql_ |
||
| macadan Profil |
#3 · Zasláno: 19. 5. 2014, 18:41:45
Ah, už to jde. Apostrofama to nebylo, to byla akorát nepozornost při psaní příspěvku. To escapování ale pomohlo, díky.
|
||
| juriad Profil |
#4 · Zasláno: 19. 5. 2014, 19:43:46
macadan:
Obecně bys měl zajistit, že všechny řetězce, které do databáze ukládáš jsou neškodné. Není na škodu, touto funkcí prohnat všechny řetězce, které do databáze ukládáš. |
||
|
Časová prodleva: 12 let
|
|||
0