Bonjour/Bonsoir,
J'ai crée un site grâce au tuto de M@teo en xHTML/CSS/PHP/MySQL sur le Site du Zér0 (même si je n'ai aucune connaisance en PHP), depuis des mois et quelques semaines que j'y travaille, et j'en ai vu des problèmes qui arrivait, j'ai tout résolu grâce à des aides de forum ou d'amis plus expérimentés, mais là .. Je ne sais pas quoi faire.
De 1 :Mon formulaire de contact ne marche pas, je l'ai copier/coller (je sais que c'est pas bien
) donc je vous le donne :
De 2 : Mon design est très bien sous Firefox, mais il ne marche pas sous IE (voici le lien de mon site
De 3 : Je voudrais créer mon forum, sans utiliser les forums tout fait, j'ai aussi préféré créer mon forum car il sera plus personnalisable selon mes envie et selon MES templates !
Pour ceci j'ai trouvé ce tutoriel pour m'aider (même si je ne suis pas encore lancé dans la lecture ! ). Je sais que phpbb est installable sur un site mais c'est trop compliqué à installer !
De 4 : Je ne sais pas comment faire pour que le footer se positionne lui même en fonction de la hauteur du minichat en dessous de celui-ci.
De 5 : J'ai trouvé un bon tutoriel qui explique comment faire les statistiques de son site soi-même en utilisant du PHP et une base de données, j'ai tout arrangé (création des dossiers/fichiers, créations des tables) mais, quand je lance la page avec les fichiers nécessaires avec mon logiciel de transfert FTP(FileZilla) et que je visite la page sur mon navigateur.. Je vois ceci :
( ! ) Parse error: syntax error, unexpected T_STRING in /var/www/hosting/contaminated/public/stats.php on line 51
Je vous lance le code encore une fois copié/collé (mais j'ai lu le tutoriel donc je connais le fonctionnement du code ! ) :
Voila les problèmes que j'ai rencontré et que je n'arrive pas à résoudre, je ne lancerai PAS mes codes sources sur le forum, veuillez m'envoyez un MP !
Voici encore une fois le lien de mon site !
Merci d'avance !
Modifié par Contaminated (19 Jun 2010 - 22:10)
J'ai crée un site grâce au tuto de M@teo en xHTML/CSS/PHP/MySQL sur le Site du Zér0 (même si je n'ai aucune connaisance en PHP), depuis des mois et quelques semaines que j'y travaille, et j'en ai vu des problèmes qui arrivait, j'ai tout résolu grâce à des aides de forum ou d'amis plus expérimentés, mais là .. Je ne sais pas quoi faire.
De 1 :Mon formulaire de contact ne marche pas, je l'ai copier/coller (je sais que c'est pas bien

<?php
// Dans la ligne qui suit, remplacer webmaster@domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "anis-mikou@hotmail.fr";
// === traitement des données du formulaire ============================================================
if (isset($_POST["email_expediteur"]) && isset($_POST["titre"]) && isset($_POST["message"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
$_POST["titre"]=trim(stripslashes($_POST["titre"]));
$_POST["message"]=trim(stripslashes($_POST["message"]));
// --- test de la validité des champs saisis ---
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
$erreur="Saisissez votre adresse email...";
}
elseif (!preg_match("#^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$#",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="Saisissez un message...";
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>The Contaminated</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
<link rel="icon" type="image/gif" href="images/animated_favicon1.gif" />
<meta name="keywords" content="Anis, Mikou, Mikou Anis, Anis Mikou, Aniss, Aniss Mikou, Mikou Aniss, Contaminated, Contaminated Blog, The Contaminated, Tutoriaux, Tutoriaux pour GIMP, Tutos Gimp, Gimp, GIMP, Tutos gimp, gimp tutos, tutoriels gimp, tutoriels pour GIMP, tutoriels pour gimp, portfolio contaminated, contaminated portfolio" />
<img alt="Website counter" hspace="0" vspace="0" border="0" src="http://fully-sick-counters.net/2554344-B7891D0368599C21953268E97CD55C49/counter.img?theme=06&digits=10&siteId=3"/>
<noscript><br/><a href="http://www.luxurycar-comparison.com">Free Counter</a><br>The following text will not be seen after you upload your website, please keep it in order to retain your counter functionality <br> <a href="http://www.play-roulette-online.info" target="_blank">american roulette tips</a></noscript>
</head>
<body>
<div id="haut-de-page">
<img src="images/commun/banniere.jpg" alt="banniere" >
</div>
<div id="menu">
<ul id="menu">
<li><a href="index.php" >Accueil</a></li>
<li><a href="articles.php" >Articles</a></li>
<li><a href="tutoriaux.php">Tutoriaux</a></li>
<li><a href="portfolio.php">Créations</a></li>
<li><a href="moi.php">A propos</a></li>
<li><a href="contact.php">Contact</a></li>
<li><a href="stats.php">Statistiques</a></li>
<li><a href="livre_dor.php">Livre d'or</a></li>
<li><a href="plan_du_site.php">Plan du site</a></li>
</ul>
</div>
<div id="bloc-gauche-facebook">
<iframe src="http://www.facebook.com/plugins/likebox.php?id=125752540789008&width=292&connections=0&stream=true&header=false&height=395" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:395px;" allowTransparency="true"></iframe>
<div id="minichat">
<style type="text/css">
form
{
text-align:center;
}
</style>
<form action="minichat_post.php" method="post">
<p>
<label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br />
<label for="message">Message</label> : <input type="text" name="message" id="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=site_contaminated', 'contaminated', 'Nq312pmD');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0, 10');
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}
$reponse->closeCursor();
?>
</div>
</div>
<div id="contenu">
<h1>Contacter le webmaster</h1>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="titre">Titre de message (facultatif):</label><br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Message (obligatoire):</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<p><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "MIME-Version: 1.0";
if (mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>
</div>
<div id="pied_de_page">
<p>Copyright "Tout pourri Corporation" 2009, tous droits reserves</p>
</div>
</body>
</html>
De 2 : Mon design est très bien sous Firefox, mais il ne marche pas sous IE (voici le lien de mon site
De 3 : Je voudrais créer mon forum, sans utiliser les forums tout fait, j'ai aussi préféré créer mon forum car il sera plus personnalisable selon mes envie et selon MES templates !
Pour ceci j'ai trouvé ce tutoriel pour m'aider (même si je ne suis pas encore lancé dans la lecture ! ). Je sais que phpbb est installable sur un site mais c'est trop compliqué à installer !
De 4 : Je ne sais pas comment faire pour que le footer se positionne lui même en fonction de la hauteur du minichat en dessous de celui-ci.
De 5 : J'ai trouvé un bon tutoriel qui explique comment faire les statistiques de son site soi-même en utilisant du PHP et une base de données, j'ai tout arrangé (création des dossiers/fichiers, créations des tables) mais, quand je lance la page avec les fichiers nécessaires avec mon logiciel de transfert FTP(FileZilla) et que je visite la page sur mon navigateur.. Je vois ceci :
( ! ) Parse error: syntax error, unexpected T_STRING in /var/www/hosting/contaminated/public/stats.php on line 51
Je vous lance le code encore une fois copié/collé (mais j'ai lu le tutoriel donc je connais le fonctionnement du code ! ) :
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=site_contaminated', 'contaminated', 'Nq312pmD');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
//------------------------------------------Nombre de visiteurs au total--------------------------------------------
// Incrémentation
$nb_visites = file_get_contents('data/pagesvues.txt');
$nb_visites++;
file_put_contents('data/pagesvues.txt', $nb_visites);
echo 'Nombre de pages vues : <strong>' . $nb_visites . '</strong><br/>';
// ------------------------------------------Nombre de visiteurs par jour-------------------------------------------
//ETAPE 1 - Affichage du nombre de visites d'aujourd'hui
$retour_count = mysqli_query($connexion, 'SELECT COUNT(*) AS nbre_entrees FROM visites_jour WHERE date=CURRENT_DATE()');//On compte le nombre d'entrées pour aujourd'hui
$donnees_count = mysqli_fetch_assoc($retour_count); //Fetch-array
echo 'Pages vues aujourd\'hui : <strong>'; // On affiche tout de suite pour pas le retaper 2 fois après
if ($donnees_count['nbre_entrees'] == 0) //Si la date d'aujourd'hui n'a pas encore été enregistrée (première visite de la journée)
{
mysqli_query($connexion, 'INSERT INTO visites_jour(visites, date) VALUES (1, CURRENT_DATE());'); //On rentre la date d'aujourd'hui et on marque 1 comme nombre de visites.
echo '1'; //On affiche une visite car c'est la première visite de la journée
} else { //Si la date a déjà été enregistrée
$retour = mysqli_query($connexion, 'SELECT visites FROM visites_jour WHERE date=CURRENT_DATE()'); //On sélectionne l'entrée qui correspond à notre date
$donnees = mysqli_fetch_assoc($retour);
$visites = $donnees['visites'] + 1; //Incrémentation du nombre de visites
mysqli_query($connexion, 'UPDATE visites_jour SET visites = visites + 1 WHERE date=CURRENT_DATE()'); //Update dans la base de données
echo $visites; //Enfin, on affiche le nombre de visites d'aujourd'hui !
}
echo '</strong></br/>';
//ETAPE 2 - Record des connectés par jour
$retour_max = mysqli_query($connexion, 'SELECT visites, date FROM visites_jour ORDER BY visites DESC LIMIT 0, 1'); //On sélectionne l'entrée qui a le nombre visite le plus important
$donnees_max = mysqli_fetch_assoc($retour_max);
echo 'Record : <strong>' . $donnees_max['visites'] . '</strong> établi le <strong>' . $donnees_max['date'] . '</strong><br/>'; //On l'affiche ainsi que la date à laquelle le record a été établi
//ETAPE 3 - Moyenne du nombre de visites par jour
$total_visites = 0; //Nombre de visites
/*(pour éviter les bugs on ne prendra pas le nombre du premier exercice,
mais celui-ci reste utile pour être affiché sur toutes les pages car il est plus rapide,
contrairement à $total_visites dont on ne se servira que pour la page de stats)*/
$total_jours = 0;//Nombre de jours enregistrés dans la base
$total_visites = mysqli_fetch_assoc(mysqli_query($connexion, 'SELECT SUM(visites) FROM visites_jour AS total_visites'));
$total_visites = $total visites['total visites'];
$total_jours = mysqli_fetch_assoc(mysqli_query($connexion, 'SELECT COUNT(*) FROM visites_jour AS total_jours'));
$total_jours = $total_jours['total_jours'];
$moyenne = $total_visites/$total_jours; //on fait la moyenne
echo 'Moyenne : <strong>' . $moyenne . '</strong> visiteurs par jour<br/>'; // On affiche ! Terminé !!!
//-----------------------------------Affichage du nombre de visiteurs connectés-------------------------------------
//On prend l'adresse de la page à laquelle on enlève le \ du début (1er caractère) :
$page = substr($_SERVER['PHP_SELF'], 1);
// On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
//On commence par virer les entrées trop vieilles (+ de 5 minutes)
mysqli_query($connexion, 'DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);
$retour = mysqli_query($connexion, 'SELECT COUNT(*) AS nb_connectes FROM connectes WHERE ip=\'' . ip2long($_SERVER['REMOTE_ADDR']) . '\'');
$donnees = mysqli_fetch_assoc($retour); //On regarde si le visiteur est déjà dans la table
if ($donnees['nb_connectes'] == 0) // Si il n'y est pas, on l'ajoute
{
mysqli_query($connexion, 'INSERT INTO connectes(ip, timestamp, page) VALUES(\'' . ip2long($_SERVER['REMOTE_ADDR']) . '\', NOW()), \'' . $page . '\'');
}
else // Sinon, on remet le décompte de 5 minutes à 0
{
mysqli_query($connexion, 'UPDATE connectes SET timestamp=NOW(), page=\'' . $page . '\' WHERE ip=\'' . ip2long($_SERVER['REMOTE_ADDR']) . '\'');
}
//Enfin, on calcule le nombre total d'entrées puis on l'affiche !
$retour = mysqli_query($connexion, 'SELECT COUNT(*) AS nb_connectes FROM connectes');
$donnees = mysqli_fetch_assoc($retour);
$visiteurs_connectes = $donnees['nb_connectes'];
// Affichage
echo 'Visiteurs connectés : <strong>' . $donnees['nb_connectes'] . '</strong><br/>';
//------------------------------------Affichage du record de connectés----------------------------------------------
$f_records = fopen('records.txt', 'r+'); //On ouvre le fichier
$dernierRecord = fgets($f_records); //On prend sa première ligne
$dernierRecord = explode(' ', $dernierRecord); //Je vous avais dit de regarder la fonction explode !
//Elle va permettre de séparer notre fichier en 2 parties :
//Le record (0) dans $dernierRecord[0] et la date (0/0/0) dans $dernierRecord[1]
echo 'Record du nombre de connectés : <strong>'; //On le marque tout de suite
//Ici on va avoir besoin de la variable $visiteurs_connectes de l'exercice précédent
if ($visiteurs_connectes > $dernierRecord[0]) //Si le nombre de connecté est plus important que le record actuel
{
rewind($f_records); //On "rebobine " le fichier
$ligne = $visiteurs_connectes . ' ' . date('d/m/Y');
fwrite($f_records, $ligne); //On écrit la ligne sous la forme fixée au départ
echo $visiteurs_connectes . '</strong> établi le <strong>' . date('d/m/Y');
} else { //sinon, on affiche le record du fichier.
echo $dernierRecord[0] . '</strong> établi le <strong>' . $dernierRecord[1];
}
// On ferme la balise puis le fichier
echo '</strong><br/>';
fclose($f_records);
//-------------------------------------------Affuences et heure de pointe-------------------------------------------
// Enregistrement
$heure = date ('H');
$retour_afflu = mysqli_query($connexion, 'SELECT COUNT(*) AS maintenant FROM affluence WHERE date = CURRENT_DATE() AND heure = ' . $heure);
$donnees_afflu = mysqli_fetch_assoc($retour_afflu);
if ($donnees_afflu['maintenant'] == 0) //Si l'heure n'a pas encore été enregistrée
{
mysqli_query($connexion, 'INSERT INTO affluence(heure, date, visites) VALUES (' . $heure . ', CURRENT_DATE(), 1);'); //On rentre la date et l'heure et on marque 1 comme nombre de visites.
} else {
mysqli_query($connexion, 'UPDATE affluence SET visites = visites + 1 WHERE date = CURRENT_DATE() AND heure = ' .$heure); //On rentre l'heure et la date d'aujourd'hui et on marque 1 comme nombre de visites.
}
// Affichage
echo '<table>';
echo '<tr>';
for ($i = 0; $i < 23; $i++)
{
echo '<td><strong>' . $i . 'h</strong></td>';
}
echo '</tr>';
echo '<tr>';
$req = mysqli_query($connexion, "SELECT SUM(visites) AS nb_visites FROM affluence WHERE date != CURRENT_DATE() GROUP BY heure ORDER BY heure ASC");
while($dat = mysqli_fetch_assoc($req))
echo '<td>' . $dat['nb_visites'] . '</td>';
echo '</tr>';
echo '</table>';
?>
Voila les problèmes que j'ai rencontré et que je n'arrive pas à résoudre, je ne lancerai PAS mes codes sources sur le forum, veuillez m'envoyez un MP !

Voici encore une fois le lien de mon site !

Merci d'avance !

Modifié par Contaminated (19 Jun 2010 - 22:10)