Finitions de mon livre d'or (pagination + date) - PHP - Programmation
Marsh Posté le 27-02-2005 à 22:41:48
et il est ou le doctype ?
Marsh Posté le 27-02-2005 à 22:44:39
Pourquoi t'as mis :
<meta http-equiv="imagetoolbar" content="no"> |
C'est vachement utile la barre d'image dans IE Pourquoi la virer ?
Marsh Posté le 27-02-2005 à 22:53:40
FlorentG a écrit : Pourquoi t'as mis :
|
c pour pas que l'on me pique mes photos c'est tout!! mais bon il y a toujours moyen je pense...
Marsh Posté le 27-02-2005 à 22:55:25
FlorentG a écrit : C'est quoi tous ces tableaux et ces <font> ? |
ces tableux c normal euh d'après le prof qui m'a enseigné le cours d'internet. Vaut mieux quand on change de taille d'ecran comme ça ça ne change pas trop quand on est en 800*600 ou en 1024.
sinon cest <font> euh je ne vois pas trop ce qui cloche. C'est pour les couleurs quand je veux mettre une certaine couleur à un mot
Marsh Posté le 27-02-2005 à 22:58:09
Patty62 a écrit : c pour pas que l'on me pique mes photos c'est tout!! mais bon il y a toujours moyen je pense... |
Tu es au courant que :
Donc vire-ça tout de suite
Patty62 a écrit : ces tableux c normal euh d'après le prof qui m'a enseigné le cours d'internet. Vaut mieux quand on change de taille d'ecran comme ça ça ne change pas trop quand on est en 800*600 ou en 1024. |
Les tableaux ne doivent pas être utilisés pour la mise en page.
La balise <font> a été considéré "dangereuse" par le W3C, renseigne-toi sur les styles CSS
Patty62 a écrit : c'est quoi ça? |
Le type du document.
Marsh Posté le 27-02-2005 à 23:04:02
Je ne vois pas ce que l'on recherche, le type du document dsl mais je ne vois pas. J'ai un fichier php et une base de données !!! mais je ne pense pas que ça soit la réponse...
pour la barre ok je le sais!
Je n'y peux rien mais j'ai appris juste avec les tableaux par un prof alors bizarre!! je ne vois pas autrement...
sinon pour la balise <font>, je ne sais pas ce que c'est le W3C et les styles CSS dsl de n'etre que débutante!!!
Vous pouvez me comprendre j'espère? je ne sais pas tout puisque j'ai eu que là mon cours internet et on ne voit pas tout bien sûr!!! mais bon je souhaiterai que mon site soit enfin sur le net et que tout marche!!!
Marsh Posté le 27-02-2005 à 23:07:37
Ok, le W3C est le consortium qui met au point les technologies web (HTML, XML, CSS, etc...), et il a décrété que la balise <font> est dangereuse, comme le fait de mettre de la présentation dans le fichier HTML. Renseigne-toi sur les CSS.
Marsh Posté le 27-02-2005 à 23:15:25
Un certain nombre de profs d'html n'ont pas l'air au courant que le html4, ca date du siécle dernier. (il y a plus de 5 ans quoi, c'est surper long en informatique) Son successeur actuel est l'xhtml 1.1. L'utilisation de l'xhtml et des css permet de séparer le contenu de l'affichage.
le contenu est à l'intérieur du fichier au format xhtml et les informations d'affichages dans le CSS. De plus quand on utilise proprement l'xhtml, on choisit les balises pour leur valeur sémentique (leur signification) et non pas pour la façon dont les navigateurs les affiche par defaut.
Marsh Posté le 27-02-2005 à 23:56:42
Patty62 a écrit : Hello à tous, |
Pour l'ID met le en autoincrement si ce n'est pas fait.
Sinon :
$req="insert into livreor values('','$pseudo','$email','$message')";
mieux vaut faire :
$req = "insert into livreor(ID, PSEUDO, EMAIL, MESSAGE) VALUES('','$pseudo','$email','$message')";
Sinon pour le nombre de message par pages, c'est pas sorcier mais il te faut réfléchir un peu. De quoi as tu besoin ? Tu as besoin du nombre total de messages divisé par le nombre de message par pages pour avoir le nombre de pages et les afficher.
Donc :
$nb_par_page = 20;
Tu dois compter le nombre de messages dans la table, donc le nombre d'entrées....
$selectmess = 'SELECT COUNT(ID)as nombre FROM livreor';
$comptmess = mysql_query($selectmess);
$totalmess = mysql_fetch_array($comptmess);
$totalmessages = $totalmess['nombre'];
ou sinon :
$sql = 'SELECT count(ID) FROM livreor';
$resultat = mysql_query($sql);
$nb_total = mysql_fetch_array($resultat);
$totalmessages = $nb_total[0];
Tu as donc ce qu'il te faut, le nombre de messages au total, et le nombre de messages par pages...
Reste a faire l'opération :
$pages_total = ceil($totalmessages / $nb_par_page); // Pour info ceil te permet d'arrondir a l'entier superieur, si tu as 6,4 pages ca fera 7, tu peux utiliser round pour arrondir a l'entier inférieur.
Ensuite avant ou apres ton les messages tu aimerais surement afficher les liens vers les pages...donc on les affiche :
$p = "page n° ";
echo $p;
$i = 1;
while ($i < $pages_total)
{
echo '<a href="livreor.php?page='.$i.'" class="lienmachin">'.$i.'</a>';
}
il te reste plus qu'a verifier si la variable $_GET['page'] est présente pour afficher les messages et de créer une variable $page qui reprends le $_GET et si aucune page est séléctionné il te faut donner une valeure par défaut à cette variable , on va dire 1 pour la page 1.
Et enfin il te faut créer ta requete sql en intégrant en LIMIT le premier message que tu affiches, donc l'ID 1 par exemple, ca te donnes LIMIT 1, le nombre de message par page pour ne pas tout afficher .Donc il te faut une variable qui définit le premier element de la LIMIT pour le premier message a afficher sur chaque page. Compte tenu que sur la page 1, ce sera le message 0 a 19, page 1, message 20 à 39, etc... tu dois faire une variable qui calcule celà.
Ca doit donner un calcul du genre $tavariable = page - 1 * $nb_par_page . Ainsi si le livre est a la page 2 , ca donnera 2-1 * 20 = 20.
Tu peux aussi faire avec des clauses if , if ($_GET['page'] == 2) {tes requetes} etc... mais c'est plus lourd a faire.
Sinon pour la date, bein tu choppes celle du serveur avec un :
$dateheuremessage = date("Y-m-j H:m:s" );
Il te reste plus qu'a créer le champ datetime et insérer le $dateheuremessage a chaque message posté...
Ensuite tu peux reprendre cette valeur en utilisant explode pour l'afficher comme tu veux du genre :
Le 02/03/2004 à 00h52 etc...
Tu peux aussi utiliser un timestamp ... mais le datetime fonctionnera aussi bien si ton serveur est a l'heure
Voilà bon courage (un ptit café ? )
Marsh Posté le 28-02-2005 à 02:52:50
duncan_mc_leod a écrit : Ca doit donner un calcul du genre $tavariable = page - 1 * $nb_par_page |
ouais mais seulement "du genre" alors (1-1)*20 = 0
Marsh Posté le 28-02-2005 à 09:39:49
Si tu veux comprendre ce qu'ils ont voulu te dire en parlant de xhtml, w3c, css, valeur sémentique et autre :
www.openweb.eu.org
Marsh Posté le 28-02-2005 à 09:47:36
Djebel1 a écrit : ouais mais seulement "du genre" alors (1-1)*20 = 0 |
Exact. Pour la premiere page, 1-1*20 = 0 on commance au message 0 en effet bien vu. Revois tes maths si tu veux commancer au message 0 il te faut que le resultat du calcul donne 0. pour la page 5 par exemple on devrait commancer au message 80 : 5-1 = 4 * 20 = 80.
Marsh Posté le 28-02-2005 à 11:35:41
Hmm, vous connaissez la priorite des operateurs ??
Citation : Ca doit donner un calcul du genre $tavariable = page - 1 * $nb_par_page . Ainsi si le livre est a la page 2 , ca donnera 2-1 * 20 = 20. |
Je vois pas de parentheses moi dans "$page - 1 * $nb_par_page".
Je vous rappelle que la multiplication a priorite sur la soustraction ...
Donc : si $page = 1, et $nb_par_page=20, alors
"1 - 1 * 20" == "1 - (1 * 20)" == "-19"...
Si $page=2 :
"2 - 1 * 20" == "2 - (1 * 20)" == "-18"...
Marsh Posté le 28-02-2005 à 13:13:00
Merci beaucoup à tous pour les réponses je vais étudier tout ça ce soir car là cause travail je ne peux pas!!!
Marsh Posté le 28-02-2005 à 14:33:16
Hello tout le monde,
Bon tout ça me parait un peu difficile mais je vais essayer d'y arriver. Déjà j'ai créer une variable dans ma base données 'dateheure' et ça fonctionne sauf que ça me met pas l'heure et ça reste toujours l'heure et la date à 0! Bref je pense pas voir mis au bon endroit ça :
$dateheure = date("Y-m-j H:m:s" );
Je renvoie ma page et je tiens à préciser que j'ai fait le changement pour l'instant que pour la date et l'heure!!!
<html>
<head>
<meta http-equiv="imagetoolbar" content="no">
<title>Livre d'or</title>
</head>
<body background="../images/fond.jpg" bgproperties="fixed" text=#FFFFFF>
<?
if(isset($pseudo))
{
$connect=mysql_connect('localhost','acbe62200','')or die("Problème connection" );
$selectdb=mysql_select_db("acbecibistes_db" )or die("Problème selection base" );
$req="insert into livreor values('','$pseudo','$email','$message')";
$res=mysql_query($req)or die("pb d insertion" );
$dateheure = date("Y-m-j H:m:s" );
}
?>
<form method="post" action="livreor.php" name="livreor">
<h2><center> Laissez-nous un message !</center></h2>
<table>
<tr>
<td><font size=+1><font color=#0C0980>
<b>Pseudo* :</b></td>
<td><input type=text name=pseudo size=25 ></td>
<tr><td><font size=+1><font color=#0C0980><b>Email :</b></td>
<td><input type=text name=email size=25 ></td></tr>
<tr><td><font size=+1><font color=#0C0980><b>Date :</b></td>
<td><input type=text name=dateheure size=25 ></td></tr>
<tr><td><font size=+1><font color=#0C0980><b>Message :</b></td><td colspan=2>
<textarea name=message rows=4 cols=47></textarea>
<td rowspan=2><input type=submit value=Envoyer></td></tr>
</td>
</tr>
</form>
<table width=100% align=center border=0>
<tr>
<td>
<br>
<br>
</td>
</tr>
<br>
<br>
<?
$connect=mysql_connect("localhost","acbe62200","" )or die ("Pb de connexion à la base MySQL" );
$selectbase=mysql_select_db("acbecibistes_db" )or die ("Pb de selection de base" );
$req="select*from livreor limit 30";
$res=mysql_query($req)or die ("Pb d'execution de requête" );
echo"<table width=100% border=1>";
echo"<tr>";
echo"<td width=30%><font size=+2><font color=#0C0980><center>Date</center></td>";
echo"<td width=30%><font size=+2><font color=#0C0980><center>Pseudo</center></td>";
echo"<td width=90%><font size=+2><font color=#0C0980><center>Message</center></td>";
echo"</tr>";
while($row=mysql_fetch_array($res)){
echo "<tr>\n";
echo "<td>".$row[dateheure]."</td>\n";
echo "<td>".$row[pseudo]."</td>\n";
echo "<td>".$row[message]."</td>\n";
}
?>
<table width=90% align=center border=0>
<tr>
<td><br><br>
<a href="../pages/bienvenue_formulaire.php"><IMG SRC="../images/boutonretour.gif" border=0>
<td align=right>
<br><br>
<a href="../pages/presentation.php" target=cadprinc><IMG SRC="../images/logo_retour.gif" border=0>
</td>
</tr>
<br>
</body>
</html>
Je fais choses par chose car je trouve un peu dur tout ceci quand on n'est pas pro. J'espère que vous comrpendrez!
Bye. Patty
Marsh Posté le 28-02-2005 à 14:35:06
Enormément d'erreurs et de problèmes dans le code HTML (qui date d'il y a 15 ans). Pareil pour le PHP, plein de problème (essaye de poster un message avec une apostrophe dedans )
Marsh Posté le 28-02-2005 à 14:35:16
et les balises [code]
Marsh Posté le 28-02-2005 à 14:48:42
FlorentG a écrit : Enormément d'erreurs et de problèmes dans le code HTML (qui date d'il y a 15 ans). Pareil pour le PHP, plein de problème (essaye de poster un message avec une apostrophe dedans ) |
que veux-tu dire par poster un message avec une apostrophe dedans??
Sinon je ne vois pas où sont les problèmes moi je viens d'apprendre ça et c'est pareil pour le stage que je suis en train de faire. Je dois faire comme ça, c'est ça qui me fais peur avec tout ce que vous dites!!!
Marsh Posté le 28-02-2005 à 14:50:22
en plus le serveur a register_global a on
Marsh Posté le 28-02-2005 à 14:50:50
Patty62 a écrit : que veux-tu dire par poster un message avec une apostrophe dedans?? |
Euh.....
Bon...
Essaye de poster un truc dans ton livre d'or avec pour message :
test '' ""'"'''""''' |
Il risque de pas aimer
Marsh Posté le 28-02-2005 à 14:57:13
FlorentG a écrit : Euh.....
|
Ah oui dsl là j'ai compris. Oui j'ai essayé et ça me dit problème d'insertion!!
Mince alors il y a toujours et encore des problèmes alors que faire?
Marsh Posté le 28-02-2005 à 15:17:36
Pour ta pagination utilise la fonction LIMIT de mysql http://www.nexen.net/docs/mysql/an [...] lien=limit
Marsh Posté le 28-02-2005 à 15:55:52
FlorentG a écrit : Faut escaper les champs, avec la fonction addslashes() |
Cela veut dire quoi? dsl je ne connais pas ce truc lol!! Ah oui vraiment débutante et de plus on nous enseigne pas comme il faut les trucs!!!
Marsh Posté le 28-02-2005 à 17:33:20
Si l'utilisateur rentre : coucou je m'appel pipiou
Tu risques d'avoir des problémes avec le ' de m'appel. Il faut donc en quelque sorte l'anhiler et pour cela il faut l'écrire ainsi \'
Hors je doute que l'utilisateur qui saisi une chaine dans ton formulaire y pensera.
C'est la qu'intervient la fonction addslashes qu'on t'a proposé. Effectivement en agissant ainsi par exemple : $var=addslashes($_POST['blabla']);
Dans le champ de ton formulaire tout les ' seront remplacés par des \' automatiquement.
Edit: rassure toi, a l'affichage tu obtiendras ton apostrophe sans le slash précédent.
Edit2: Le lien vers la doc : http://fr2.php.net/manual/fr/function.addslashes.php
Marsh Posté le 28-02-2005 à 18:54:24
Tempus_Fugit a écrit : Si l'utilisateur rentre : coucou je m'appel pipiou |
Merci beaucoup. Je regarderai ça plus tard car ce soir je dois réviser. Mais c'est vrai que c'est embêtant pour apprendre tout ça et lire tout ça, il faut avoir du temps libre quand même. Alors ne vous inquiétez pas si je ne réponds pas de suite!!! Bye
Marsh Posté le 01-03-2005 à 00:46:17
fonctions essentielles a mettre pour les variables POST :
- addslashes
- htmlentities (sert a ce que le code html ne s'execute pas une fois posté dans le formulaire)
- stripslashes (pour afficher les posts sinon ca va t'afficher par exemple : bonjour je m\'appelle bruno. Avec un strislashes ca t'affichera bonjour je m'appelle bruno.
Sinon :
$dateheure = date("Y-m-j H:m:s" );
$connect=mysql_connect('localhost','acbe62200','')or die("Problème connection" );
$selectdb=mysql_select_db("acbecibistes_db" )or die("Problème selection base" );
$req="insert into livreor(ID, PSEUDO, MESSAGE, DATEHEURE) values('','$pseudo','$email','$message', '$dateheure')";
mysql_query($req)or die("pb d insertion" );
il te faut créer un champ DATETIME dans ta table pour inserer le $dateheure. Sinon je vois pas comment il pourrait l'inserer automatiquement...
Question : c'est quoi ton prof lol ?
Marsh Posté le 01-03-2005 à 16:58:53
duncan_mc_leod a écrit : fonctions essentielles a mettre pour les variables POST : |
Marsh Posté le 01-03-2005 à 19:08:01
duncan_mc_leod a écrit : fonctions essentielles a mettre pour les variables POST : |
Ah j'ai fait une mauvaise manip avant je disais bien merci je vais faire dela demain les modifications et merci à tous ceux qui m'ont aidé. En tout cas oui vous m'aidez plus que le prof hi!!!!
Marsh Posté le 02-03-2005 à 00:45:02
duncan_mc_leod a écrit : Tu sais que tu peux editer tes posts sur ce forum avec |
Comment? tu veux dire?
Marsh Posté le 02-03-2005 à 00:47:21
regarde donc la série d'image au dessus du texte d'un message. je penses que tu feras le lien tout seul avec ce qu'il a dit.
Marsh Posté le 02-03-2005 à 00:52:58
ok ok j'avais pas tout vu et pas tout lu dsl c'est bon j'ai capté!!
Marsh Posté le 17-03-2005 à 18:16:04
Code :
|
c'est pas possible d'utiliser cette fonction : mysql_num_rows() ?
Marsh Posté le 27-02-2005 à 22:37:47
Hello à tous,
Pouvez-vous m'aider pour la fin de mon livre d'or? Il marche enfin mais je voudrais faire la pagination. Ce que je veux dire est que je n'ai pas demandé à ce que l'on me mette par exemple 20 messages par pages.
Voilà j'ai créé une base de données qui est :
- ID (de type int)
- PSEUDO (de type varchar)
- EMAIL (de type varchar)
- MESSAGE (de type TEXT)
et voici ma page liveor.php :
<html>
<head>
<meta http-equiv="imagetoolbar" content="no">
<title>Livre d'or</title>
</head>
<body background="../images/fond.jpg" bgproperties="fixed" text=#FFFFFF>
<?
if(isset($pseudo))
{
$connect=mysql_connect('localhost','root','')or die("Problème connection" );
$selectdb=mysql_select_db("acbe" )or die("Problème selection base" );
$req="insert into livreor values('','$pseudo','$email','$message')";
$res=mysql_query($req)or die("pb d insertion" );
}
?>
<form method="post" action="livreor.php" name="livreor">
<h2><center> Laissez-nous un message !</center></h2>
<table>
<tr>
<td><font size=+1><font color=#0C0980>
<b>Pseudo* :</b></td>
<td><input type=text name=pseudo size=25 ></td>
<tr><td><font size=+1><font color=#0C0980><b>Email :</b></td>
<td><input type=text name=email size=25 ></td></tr>
<tr><td><font size=+1><font color=#0C0980><b>Message :</b></td><td colspan=2>
<textarea name=message rows=4 cols=47></textarea>
<td rowspan=2><input type=submit value=Envoyer></td></tr>
</td>
</tr>
</form>
<table width=100% align=center border=0>
<tr>
<td>
<br>
<br>
</td>
</tr>
<br>
<br>
<?
$connect=mysql_connect("localhost","acbe62200","" )or die ("Pb de connexion à la base MySQL" );
$selectbase=mysql_select_db("acbecibistes_db" )or die ("Pb de selection de base" );
$req="select*from livreor limit 30";
$res=mysql_query($req)or die ("Pb d'execution de requête" );
echo"<table width=100% border=1>";
echo"<tr>";
echo"<td width=30%><font size=+2><font color=#0C0980><center>Pseudo</center></td>";
echo"<td width=90%><font size=+2><font color=#0C0980><center>Message</center></td>";
echo"</tr>";
while($row=mysql_fetch_array($res)){
echo "<tr>\n";
echo "<td>".$row[pseudo]."</td>\n";
echo "<td>".$row[message]."</td>\n";
}
?>
<table width=90% align=center border=0>
<tr>
<td><br><br>
<a href="../pages/bienvenue.php"><IMG SRC="../images/boutonretour.gif" border=0>
<td align=right>
<br><br>
<a href="../pages/presentation.php" target=cadprinc><IMG SRC="../images/logo_retour.gif" border=0>
</td>
</tr>
<br>
</body>
</html>
Aussi je souhaiterais avoir de l'aide du point de vue date. J'ai vu que je pouvais mettre dans ma base de données DATEHEURE (du type datetime) et j'ai vu que l'on pouvait incrémenter automatiquement. Mais je ne sais pas trop ce que c'est et je n'ai jamais fait. Alors si quelqu'un peut m'aider et m'expliquer. Merci beaucoup.
J'espère que quelqu'un m'aidera à finir ce livre d'or. Bye. Patty