moogli

  • Signature
    Il en faut peu pour être heureux !!!!!
  • Site web
  • Nombre de sujets
    33
  • Nombre de messages
    1 802
  • Nombre de commentaires
    6
  • Nombre de news
    Aucune
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

moogli
le 24/08/2004 à 17:19
Warnings irrésolus...
Juste pour dire, pour plusieur variable dans la barre d'adresse
<a href="page.php?var1=zaehg&&var2=ddjf&&var3=djsgdj" >azsa</a>
avec var&=szsd&var2=ddf sa marche aussi smiley
Il en faut peu pour être heureux !!!!!
moogli
le 24/08/2004 à 17:12
Messagerie interne
Re,

J'ai oublié

strip_tags permet de supprimer tout les tags html que l'utilisateur aurais pu mettre dans les champs ...
si tu veut etre moins radical regarde du coté de htlmlentities et autre
Il en faut peu pour être heureux !!!!!
moogli
le 24/08/2004 à 17:10
Requête non-effective
Salut,

Ben si smiley

Je ne sais pas ou est ta clef mais il faut la mentionner meme si tu ne met rien dedans smiley
=>
INSERT INTO spectacle VALUES ("","j", "-5", "j", "j", "jj", "j", "j", "j", "j", "j", "jj", "j", "j")
j'ai suposer qu'elle est au debut
Il en faut peu pour être heureux !!!!!
moogli
le 24/08/2004 à 17:07
Messagerie interne
Slt,

Je n'est aucun liens mais quelques idee smiley
Une messagerie interne a partir d'une bdd

De quoi on a besoin ?

1/ Une table qui contient les messages
2/ Une page pour lire ses messages
3/ Une page pour repondre
4/ Une page pour envoyer
5/ Une page pour supprimer

Biensure les points 2 ->5 peuvent se faire sur la meme page :)

LA base

La base doit contenir
id
id (ou nom) du posteur
id (ou nom) du destinataire
sujet du message (titre)
message

eventuellement la date et un champ pour savoir si le message a été lu ..

create table messagerie (
id int(6) not null,
id_posteur int(6) not null,
id_destinataire int(6) not null,
sujet varchar(255) not null,
message text not null,
date datetime not null,
lu int(1) not null,
PRIMARY KEY (`id`)
)type=MyISAM

Voila pour la table
lu = 1 , pas lu=0
pour la lecture il faut rechercher les messages qui apartienne au membre (Je suppose que l'id du membre est enregistré dans $_SESSION['id'])
Message non lu
=> SELECT messagerie.id as id_message , id_posteur,sujet,date,nom as posteur, lu FROM membre, messagerie WHERE id_destinataire="'.$_SESSION['id'].'" && membre.id=id_destinataire && lu=0 order by date desc;
message lu
SELECT messagerie.id as id_message, id_posteur,sujet,date,nom as posteur,lu FROM membre, messagerie WHERE id_destinataire="'.$_SESSION['id'].'" && membre.id=id_destinataire && lu=1 order by date desc;
la table membre est la table qui contient les infos des membres :)

Pour l'affichage c'est une simple boucle while.
J'ai mis 2 requete comme sa a l'affichage tu peut différencier les messages non lu et les messages lu (comme sur la messagerie de La Globule)
Tu peut aussi ajouter une chekbox pour la suppression du message
Donc tu affiche les titres en tant que liens vers une 2nd page sur laquel tu affiche le message alire
<table>
<tr><td>lu><td>date</td>titre</td><td>de</td><td>Del</td></tr>
<?php
while ($data=mysql_fetch_array($req1))
{
echo '<tr><td>Non</td> <td>'.$data['date'].'</td> <td><a href="messagerie.php?action=lire&&id='.$data['id_message'].'" title="lire ce message">'.$data['titre'].</a></td> <td>'.$data['posteur']</td> <input type="checkbox" name="del[]" value="'.$data['id_message'].'" /></td></tr>';
}
?>

$req1 est le resultat de la 1er requete si dessus
Tu fait la meme chose pour la dexieme requete ensuite tu ferme la table
sans oublier un bouton del avec un form vers del.php
L'affichage du message a lire
SELECT sujet,message,id_posteur,nom,date FROM messagerie, membre WHERE messagerie.id="'.$_GET['id'].'" && membre.id=id_posteur';

Pour l'affichage je te laisse faire :)
n'oublie pas le bouton repondre en dessous
<form methode="post">
<input type="submit" value="Repondre" />
<input type="hidden" name="id" value="'.$_GET['id'].'" />
</form>
Il faut aussi faire un update pour marquer le message comme lu
UPDATE messagerie SET lu="1" WHERE id="'.$_GET['id'];
La page del.php

tu recupere $_POST['del'] qui est un tableau
<?php
for ($i=0;$i<count($_POST['del'];$i++)
{
$sql='DELETE FROM messagerie WHERE id_destinataire="'.$_SESSION['id'].'" && id="'.$_POST['del'][$i].'"';
mysql_query($sql) or die ('Erreur SQL !!!<br/>'.$sql.'<br/>'.mysql_error());
}
?>



pour la reponse tu commence par recuperer le message (sujet, date et l'id du posteur), ensuite tu le reaffiche ainsi qu'une textarea pour la reponse.
tu met dans le formulaire un champ hidden qui contient l'id du posteur du message au quel on repond (il devient le destinataire) et un champ hidden qui contient le sujet (sinon tu fait un select avant l'insertion pour recupérer le sujet mais il faut dans ce cas passer l'id du sujet).
Pour le traitement tu fait un insert
INSERT INTO messagerie VALUES ("", "'.$_SESSION['id'].', "'.$_POST['dest'].'", "Re : '.$_POST['sujet'].'" ,"'.strip_tags($_POST['message']).'" ,"'.date('Y-m-d H:i:s').'" ,"0")

Pour l'envoie d'un message :

dans ta page tu met un form avec un champ pour le destinataire, un pour le sujet et un pour le message

Pour le destinataire je te conseil (si vous n'êtes pas trop nombreux) un select comme sa pas d'erreur de nom, si non un moteur de recherche avec un like fonctionne bien.
Pour le traitement c'est un simple insert

INSERT INTO messagerie VALUES ("", "'.$_SESSION['id'].', "'.$_POST['dest'].'", "'.strip_tags($_POST['sujet']).'" ,"'.strip_tags($_POST['message']).'" ,"'.date('Y-m-d H:i:s').'" ,"0")


Voila je crois que j'ai fait le tour smiley. j'espère que c'est assez clair (sa vaut pas un bon comment faire de Globule mais bon ).

Bon courage @+
Il en faut peu pour être heureux !!!!!
moogli
le 20/08/2004 à 20:21
Passer un tableau php à une fonction Js
bibi
pourquoi archaique ?
quand tu parcour un tablo avec 2 boucle for c'est que ta des tableaux dans les cases du 1er tablo.
maintenant peut etre qu'avec $tablo[$i][$j] sa tourne smiley. moi g juste adapter la methode C pour bidouiller des matrices (du moins celle que je connais smiley).

pour le script que tu a donné c'est peut etre un problème de syntaxe faut chercher de ce cote la ...

Je vois pas autre chose @+
Il en faut peu pour être heureux !!!!!
moogli
le 20/08/2004 à 20:10
Accès utilisateur
On reprend

quand tu affiche les utilisateurs pour leur donner acces a ta page tu met une checkbox que tu clik ou non. cette checkbox tu l'appel name="id[]"

tu recupère pour l'insertion un tablo $_POST['id' ][$i].

Donc ensuite tu efface tout les tuples qui coreponde a ta page
DELETE table WHERE page="'.$page.'"

ensuite tu insere dans ta table tout les utilisateurs qui on acces a ta page
$tablo=$_POST['id'];
for ($i=0;$i<count($tablo);$i++)
{
INSERT INTO table VALUES ("","'.$page.'","'.$tablo[$i].'");
}

j'ai pris pour base que tu utulise l'id de l'uilisateur mais tu peut le remplacer par le nom.
la table suposer => id | nom de la page | id (nom) de l'utilisateur

avec sa, sa doit tourner (pense a mettre les $sql = mysql_query et autre fioriture smiley)
@+
Il en faut peu pour être heureux !!!!!
moogli
le 20/08/2004 à 19:52
Types de variables
lu chercher sur le Web selfhtml
sino ya tout plein de site sur le sujet
comme : www.allhtml.com et bien d'autre

@+
Il en faut peu pour être heureux !!!!!
moogli
le 20/08/2004 à 19:49
niveau tutoriel...
lu,

ouais des tutos sur sqlite se srait good parce que pour l'instant y pos grand chose.
Pis tutos sur la prog objet pour noeud noeud smiley (les base quoi + appli sur different language php,c++ ...)

bonn courage smiley
Il en faut peu pour être heureux !!!!!
moogli
le 20/08/2004 à 19:45
Prob passage local -> net
lu,

Si tu as mieux que phpmyadmin dis le smiley

dans le meme style g essayé sqlitemanager (que tu doit connaitre avec wamp et meme c pour sqlite et non mysql) c'est moins simple que phpmyadmin.

Si non quand tu fait le transfert tu selectionne
- insertion complette de la section donnees

si non il prend tout ce qu'il y a dans la base....
Il en faut peu pour être heureux !!!!!
moogli
le 20/08/2004 à 19:36
Réassigner une valeur à une session
Lu,

J'ai donné la solution (et d'autre aussi d'ailleur) hier.

il te suffit de faire
session_start();//si la sessin n'est pas ouverte
$_SESSION['nom']="NOUVEAU NOM";

tu met sa dans la page de traitement du formulaire de changement de nom.
@+
Il en faut peu pour être heureux !!!!!
LoadingChargement en cours