Ho creato un sistema di Notifiche ma purtroppo non riesco ad integrarsi nel sito, avrei tanto bisogno di una mano.
Printable View
Ho creato un sistema di Notifiche ma purtroppo non riesco ad integrarsi nel sito, avrei tanto bisogno di una mano.
Vorrei chidere come devo fare a mettere l'id direttamente in base alla sessione ad esempio quale utente effettua azione a quale utente. Non so se mi sono fatto capire, spero tanto di si.. mi servirebbe una bella mano, nel caso vuoi più informazioni magari te le posto.
Codice PHP:
<?php
include ('connect.php');
// Aperte Notifiche solo visto
$stringa = "SELECT * FROM notifiche WHERE iduseroff='52' AND visto='0' ORDER BY id ASC";
$query = mysqli_query($conn, $stringa);
$quanti = mysqli_num_rows($query);
// Aperte Notifiche e letto (aperto)
$stringa2 = "SELECT * FROM notifiche WHERE iduseroff='52' ORDER BY id DESC";
$query2 = mysqli_query($conn, $stringa2);
$quanti2 = mysqli_num_rows($query2);
?>
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>Notifiche</title>
<!--Dondolo--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<!--Dondolo--><link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.css'>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<!--Dondolo--><link rel="stylesheet" href="css/notifiche.css">
<link rel="stylesheet" href="css/notifiche2.css">
<style>
a{
text-decoration: none;
color: #000;
}
.block{
display: none;
}
</style>
</head>
<body onload="setTimeout('miafunzione()',5000);">
<center>
<button>Aggiungi Notifica</button>
<!-- DIV di Notifiche-->
<div id="newnotifica" class="newnotifica block"></div>
<div id="notificationLink" class="container">
<?php
if ($quanti == 0){
echo '<div class="notification"></div>';
}else{
echo '<div class="notification show-count notify" data-count="'.$quanti.'"></div>';
}
?>
<div id="notificationContainer" class="popup arrow-up">
<div id="notificationTitle">Notifiche</div>
<div id="notificationsBody" class="notifications">
<br>
<form name="modulo">
<input type="hidden" name="utente" id="utente" value="52">
</form>
<div id='addnews' class='addnews'></div>
<?php
for($x=0;(($x<$quanti2)&&($x<6)); $x++){
$row = mysqli_fetch_row($query2);
$id_notifica = $row[0];
$nome = $row[1];
$userid = $row[2];
$azione = $row[5];
$idfoto = $row[6];
$visto = $row[7];
$letto = $row[8];
$orario = $row[9];
$dt = new DateTime($orario);
$lt = new DateTime();
$interval = $lt->diff($dt);
$anni = $interval->y;
$mesi = $interval->m;
$giorni = $interval->d;
$ore = $interval->h;
$minuti = $interval->i;
$secondi = $interval->s;
if ($anni > 0){
if($anni == 1){
$respons = floor($anni)." anno fa";
}else{
$respons = floor($anni)." anni fa";
}
}
elseif ($mesi > 0){
if($mesi == 1){
$respons = floor($mesi)." mese fa";
}else{
$respons = floor($mesi)." mesi fa";
}
}
elseif ($giorni > 0){
if($giorni == 1){
$respons = floor($giorni)." giorno fa";
}else{
$respons = floor($giorni)." giorni fa";
}
}
elseif ($ore > 0){
if($ore == 1){
$respons = floor($ore)." ora fa";
}else{
$respons = floor($ore)." ore fa";
}
}
elseif ($minuti > 0){
if($minuti == 1){
$respons = floor($minuti)." minuto fa";
}else{
$respons = floor($minuti)." minuti fa";
}
}
else{
$respons = "pochi secondi fa";
}
// 1 = Grigio già letto | 0 = Azzurro non letto
echo "<a id='idnotifica' onClick='setLetto($id_notifica)' href='/originale/allcomment&photo=".$idfoto."'>";
if($letto == 1){
//Grigio già letto
if($azione == "mi piace"){
echo "<div style='padding: 5px 0px; background-color:#e4e4e4;'>";
echo "<img height='32px' width='32px' src='./core/getimg.php?profiloimg=".$userid."'> ";
echo $nome." ha messo ".$azione." alla tua foto.";
echo "<br>";
echo $respons;
echo "</div>";
}else{
echo "<div style='padding: 5px 0px; background-color:#e4e4e4;'>";
echo "<img height='32px' width='32px' src='./core/getimg.php?profiloimg=".$userid."'> ";
echo $nome." ha ".$azione." la tua foto.";
echo "<br>";
//echo $respons;
echo "</div>";
}
}else{
if($azione == "mi piace"){
echo "<div style='padding: 5px 0px; background-color:#80bbe2;'>";
echo "<img height='32px' width='32px' src='./core/getimg.php?profiloimg=".$userid."'> ";
echo $nome." ha messo ".$azione." alla tua foto.";
echo "<br>";
echo $respons;
echo "</div>";
}else{
echo "<div style='padding: 5px 0px; background-color:#80bbe2;'>";
echo "<img height='32px' width='32px' src='./core/getimg.php?profiloimg=".$userid."'> ";
echo $nome." ha ".$azione." la tua foto.";
echo "<br>";
//echo $respons;
echo "</div>";
}
}
echo "<a>";
}
?>
</div>
<?php
if($quanti2 > 5){
echo '<br>';
echo '<a href="morenews.php"><div id="notificationFooter">See All</div></a>';
}
?>
</div>
</div>
</center>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src="js/notifiche.js"></script>
</body>
</html>
[/php]Codice PHP:
CREATE TABLE IF NOT EXISTS `notifiche` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`useron` varchar(255) NOT NULL,
`iduseron` varchar(255) NOT NULL,
`useroff` varchar(255) NOT NULL,
`iduseroff` varchar(255) NOT NULL,
`azione` varchar(255) NOT NULL,
`idfoto` varchar(255) NOT NULL,
`visto` varchar(255) NOT NULL,
`letto` varchar(255) NOT NULL,
`orario` datetime NOT NULL,
`post` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;
C'è troppo casino nel codice, perchè oltre al codice php ci aggiungi anche css e risulta un pò illegibile.
Comunque, riprendo la domanda iniziale.
Non sò se hai intenzione di fare un login, ma in tal caso fai così:
Crei un form login, mettendo user/password.
Se user/password sono verificati allora PRENDI i dati che ti servono in base all'id utente e li metti in una sessione (se è questo quello che serve).
La sessione la inizializzi con
<?php
session_start();
?>
Poi dopo aver fatto la query con tutto quello che ti serve, puoi mettere i dati in un'array sessione:
$_SESSION['personaloggata'] = array ( Dati vari del database );
D'ora in avanti, hai una sessione aperta, e puoi accedere a tutti i dati che vuoi, ad esempio, se
$_SESSION['personaloggata'][0] in cui ci sarà un dato specifico, come ad esempio l'id.
Se ci spieghi cosa devi fare, magari posso entrare nello specifico e cercare di aiutarti al meglio.
Allora, in pratica il mio sito si comporta come una sorta di social, ovvero una volta registrato puoi pubblicare varie cose.
Quello che ora vorrei integrare è un sistema di notifiche, in modo che arrivi per l'appunto una "notifica" quando arriva l'azione di un utente tipo "Marco ha messo mi piace alla tua foto".
Diciamo che una sorta di sistema esiste già ma non fa ciò che io vorrei, nel senso che non mi prende gli ID degli utenti per trasmetterli, già ho organizzato il tutto mettendo il collegamento al mio DB con tutti i dati, già ho suddiviso le notifiche per tempistica "un anno fà" "un giorno fà" e cosi via.
Mi manca solo il funzionamento effettivo.. se ti mando il file mica potresti darmi cosa effettivamente non va, sto problema lo tengo da non so quanto tempo, ormai mi sono quasi arreso..:cry: