Autor Zpráva
Hapipo
Profil
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
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>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: