| Autor | Zpráva | ||
|---|---|---|---|
| Hapipo Profil |
#1 · Zasláno: 17. 11. 2016, 14:51:33
Ahoj,
našel jsem registraci a přihlašování uživatelů na web a součástí toho je, když se přihlásím, tak můžu zasílat zprávy. Jenže když dám odeslat zprávu, tak mi to napíše že se neodeslala. Zkusit to můžete zde - sumperk.mska.cz/index.php je tam na boku přihlášení stačí se zaregistrovat (potom vás smažu), ale potom až se přihlásíte, sjedete úplně dolu tam je odkaz na seznam uživatelů a když na nějakého kliknete, napíšete zprávu a dáte odeslat, tak to napíše že to nejde......schválně si to zkuste, prosím. tady je php soubor na jakém to bezi <?php
// Celý postup funguje na sessions. Právě v session se ukládají data uživatele, zatímco se nacházi na stránkach. Je důležite spustit sessions na začátku stránky!
session_start();
header('Content-type: text/html;charset=UTF-8');
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce )
require_once 'db.php';
if(!empty($_SESSION['login']) AND !empty($_SESSION['heslo']))
{
// Dál ověřime, zda jsou tyto údaje platné
$login = $_SESSION['login'];
$heslo = $_SESSION['heslo'];
$over = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$login."' AND `pass`='".$heslo."'");
// Pokud najdeme identifikator s tímto loginem a heslem uložime ho do pole $res_over
if(mysql_num_rows($over)!=0)
{
$res_over = mysql_fetch_assoc($over);
// Uložíme identifikator příjemce do proměnné $id
if(isset($_POST['id']) AND $_POST['id']!='')
{
$id = stripslashes(htmlspecialchars(trim($_POST['id'])));
if(isset($_POST['zprava']))
{
$zprava = stripcslashes(htmlspecialchars(trim($_POST['zprava'])));
if($zprava == '')
{
unset($zprava);
}
}
if(isset($_POST['prijemce']))
{
$prijemce = stripcslashes(htmlspecialchars(trim($_POST['prijemce'])));
if($prijemce == '')
{
unset($prijemce);
}
}
$odesilatel = $_SESSION['login'];
if(empty($zprava) OR empty($prijemce) OR empty($odesilatel))
{
exit("Vyplňte všechna pole");
}
$query = mysql_query("INSERT INTO `message`(`odesilatel`,`prijemce`,`date`,`zprava`) VALUES('".$odesilatel."','".$prijemce."',NOW(),'".$zprava."')");
if(!$query)
{
echo "<script>alert('Zpráva se neodeslala.')</script>";
header("Refresh: 0; url=uzivatel.php?id=".$_SESSION['id']."");
} else {
echo "<script>alert('Zpráva se odeslala vpořádku.')</script>";
header("Refresh: 0; url=uzivatel.php?id=".$_SESSION['id']."");
}
} else {
exit("Není jasné kdo je příjemce.");
}
} else {
// Jinak zobrazíme chybu
exit("Vstup na tuto stránku je povolen pouze přihlášeným uživatelům.");
}
} else {
// Pokud proměnné neexistují zobrazíme chybu
exit("Vstup na tuto stránku je povolen pouze přihlášeným uživatelům.");
}
?> |
||
| Hando Profil |
#2 · Zasláno: 17. 11. 2016, 15:58:11
Ahoj.
Proč používáš zastaralé mysql_*? Ani s tím nezačínej, není důvod nepoužívat třeba mysqli_* či PDO. Vypiš si obsah proměnné $query a zkus ho vložit do databáze přímo v phpmyadminu a budeš blíže odhalení, v jaké části scriptu je chyba.
<OT> Mimochodem, nechci ti brát iluze, ale u klubového "systému" bude taková věc celkem zbytečná, protože v dnešní době, kdy má každý člověk e-mail a značná část lidí i FB nebo G+, tak se jim nebude chtít chodit do dalšího systému, přihlašovat se a kontrolovat, jestli jim někdo neposlal zprávu, kterou by jim mohl poslat jinými způsoby. </OT> |
||
|
Časová prodleva: 9 let
|
|||
0