par
Carpediem » 18 nov. 2013, 19:47
Bonsoir,
J'ai enfin réglé le problème, je vous joint le code définitif qui n'est certe pas très beau mais a peu près fonctionnel
<?php
function get_ip() {
// IP si internet partagé
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
}
// IP derrière un proxy
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
// Sinon : IP normale
else {
return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
}
}
$ip=get_ip();
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$res = $bdd->query('SELECT * FROM ip_sondage WHERE ip = "'.$ip.'"');
$requete = $res->fetch(PDO::FETCH_ASSOC);
$return = $res->fetch();
if($return['ip'] > 0)
{
echo header('Location: erreur_sondage1.php');
}
elseif($return['ip'] == 0)
{{
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$bdd->exec('INSERT INTO ip_sondage VALUES ("ID", "'.$ip.'")') or die (mysql_error());
}
if (isset($_POST["envoyer"])){
// On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
$etat = "erreur";
if (isset($_POST["sondage_semaine"])) $_POST["sondage_semaine"]=trim(htmlspecialchars($_POST["sondage_semaine"]));
$reponse=trim(htmlspecialchars($_POST["sondage_semaine"]));
if (empty($_POST["sondage_semaine"])) {
$erreur="Erreur dans la transmission du formulaire...";
}
elseif (is_numeric($_POST["sondage_semaine"])) {
$erreur="Erreur dans la transmission du formulaire...";
}
// Si tous les champs sont valides, on change l'état à ok
else {
$etat="ok";
}
}
if ($etat=="ok"){
// Cas où le formulaire a été soumis mais il y a des erreurs
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('UPDATE sondage_semaine SET nbre_vote = nbre_vote+1 WHERE jour_semaine = :jour_semaine');
$req->execute(array(
'jour_semaine' => $reponse));
echo header('Location: sondage_resultats.php');
}
elseif ($etat=="erreur"){
echo header('Location: erreur_sondage.php');
}
else {
echo "<h4>Erreur dans la transmission du vote.Retour à la page <a href=\"index.php\">Accueil</a></h4>";
}}
PDOStatement::closeCursor()
?>
Je dois mettre le site ce soir en ligne et je trouve pas le moyen d'afficher direct sous forme de tableau le sondage dans la page sondage_resultat.php en appelant mes résultats mysql.
Merci d'avance à ceux qui voudront bien me dépanner
Cordialement
Morgane
Bonsoir,
J'ai enfin réglé le problème, je vous joint le code définitif qui n'est certe pas très beau mais a peu près fonctionnel
[php]<?php
function get_ip() {
// IP si internet partagé
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
}
// IP derrière un proxy
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
// Sinon : IP normale
else {
return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
}
}
$ip=get_ip();
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$res = $bdd->query('SELECT * FROM ip_sondage WHERE ip = "'.$ip.'"');
$requete = $res->fetch(PDO::FETCH_ASSOC);
$return = $res->fetch();
if($return['ip'] > 0)
{
echo header('Location: erreur_sondage1.php');
}
elseif($return['ip'] == 0)
{{
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$bdd->exec('INSERT INTO ip_sondage VALUES ("ID", "'.$ip.'")') or die (mysql_error());
}
if (isset($_POST["envoyer"])){
// On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
$etat = "erreur";
if (isset($_POST["sondage_semaine"])) $_POST["sondage_semaine"]=trim(htmlspecialchars($_POST["sondage_semaine"]));
$reponse=trim(htmlspecialchars($_POST["sondage_semaine"]));
if (empty($_POST["sondage_semaine"])) {
$erreur="Erreur dans la transmission du formulaire...";
}
elseif (is_numeric($_POST["sondage_semaine"])) {
$erreur="Erreur dans la transmission du formulaire...";
}
// Si tous les champs sont valides, on change l'état à ok
else {
$etat="ok";
}
}
if ($etat=="ok"){
// Cas où le formulaire a été soumis mais il y a des erreurs
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('UPDATE sondage_semaine SET nbre_vote = nbre_vote+1 WHERE jour_semaine = :jour_semaine');
$req->execute(array(
'jour_semaine' => $reponse));
echo header('Location: sondage_resultats.php');
}
elseif ($etat=="erreur"){
echo header('Location: erreur_sondage.php');
}
else {
echo "<h4>Erreur dans la transmission du vote.Retour à la page <a href=\"index.php\">Accueil</a></h4>";
}}
PDOStatement::closeCursor()
?>[/php]
Je dois mettre le site ce soir en ligne et je trouve pas le moyen d'afficher direct sous forme de tableau le sondage dans la page sondage_resultat.php en appelant mes résultats mysql.
Merci d'avance à ceux qui voudront bien me dépanner
Cordialement
Morgane