Aller au contenu

Aenoa

Hubmaster
  • Compteur de contenus

    769
  • Inscrit(e) le

  • Dernière visite

Messages postés par Aenoa

  1. bonjour :)

    essayez tout d'abord de modifier les "=" dans les conditions. En effet, pour vérifier une égalité, vous devez mettre un double égal (==) ; auquel cas c'est de la redéclaration de variable.

    Ensuite, remplacez Sat par "Sat". En effet, PHP comprends cette méthode mais peut engendrer des soucis, comme par exemple un undefined index ou encore faire échouer la vérification.

    ensuite, je ne peux que conseiller d'indenter le code :)

    j'ai aussi réalisé une boucle plus légère, qui devrait normalement fonctionner.


    if($heure > 830 && $heure < 1830) // vérif si heure entre 8h30 et 18h30
    {
    // on est bien entre 8h30 et 18h30.
    if( ($date == "Sat" && $heure > 1230) || $date == "Sun") // on est Samedi et Il est plus de 12h30 ? ou alors on est dimanche... on est fermés !
    {
    $image = "img/close.gif";
    }
    else // on est donc pas dimanche, ni samedi après midi... on est donc soit en semaine, soit samedi matin. On est ouverts !
    {
    $image = "img/open.gif";
    }
    }
    else // heure entre 18h30 et 8h30 (donc hors ouverture)
    {
    $image = "img/close.gif";
    }

    Normalement ça fonctionne... Je n'ai pas testé, j'ai fais sur le tas :)

    n'hésitez pas a me donner un retour :P

    bonne soirée !

  2. Je n'ai pas testé mais normalement tout sera bon.


    <?php
    // Nom de la base de donnée
    $mabasededonnee="maintenance13";

    // Connexion à MySQL
    $connexion = mysql_connect("localhost","root","");

    // Vérification de la bonne connexion à MySQL
    if(!$connexion)
    {
    die("Erreur lors de la connexion à MySQL: <br />" .mysql_error());
    }

    // Sélection de la Base de donnée $mabasededonnee
    mysql_select_db($mabasededonnee, $connexion);

    // Requête permettant de lister tout les commentaires
    $requete="SELECT * FROM commentaire";
    // Exécution de la requête ci-dessus
    $resultat=mysql_query($requete, $connexion);
    // Vérification de la bonne exécution de la requête
    if (!$resultat)
    {
    $message = 'Requête invalide: ' . mysql_error() . "\n";
    $message .= 'Requête effectuee: ' . $requete;
    die($message);
    }

    // Affichage des commentaires
    while ($row = mysql_fetch_assoc($resultat))
    print_r($row);



    if(isset($_POST["Valider"]));
    {
    $prenom = isset($_POST["prenom"]) ? stripslashes($_POST["prenom"]) : NULL;
    $resume = isset($_POST["resume"]) ? stripslashes($_POST["resume"]) : NULL;

    if(!empty($prenom) && !empty($resume))
    {
    // Les deux champs sont correctement remplis.
    // On peut donc insérer ce qu'ils ont marqué dans la db.

    $prenom_bis = mysql_real_escape_string($prenom, $connexion);
    $resume_bis = mysql_real_escape_string($resume, $connexion);

    // Requête permettant d'insérer un nouveau commentaire
    $requete_ins = "INSERT INTO commentaire (prenom, commentaires) VALUES ('$prenom_bis', '$resume_bis')";
    // Exécution de la requête ci-dessus
    $resultat_ins = mysql_query($requete_ins, $connexion);
    // Vérification de la bonne exécution de la requête
    if (!$resultat_ins)
    {
    $message2 = 'Requête invalide: ' . mysql_error() . "\n";
    $message2 .= 'Requête effectuee: ' . $requete_ins;
    die($message2);
    }
    }
    elseif(empty($prenom))
    {
    // $prenom n'a pas été entré ou est vide
    echo 'prenom est vide. <br/>';
    }
    elseif(empty($resume))
    {
    // $resume n'a pas été entré ou est vide
    echo 'commentaire est vide.<br/>';
    }
    }

    // Au final, fermeture de la base de donnée
    mysql_close($connexion);
    ?>

    évidement cela requiert que ta table "commentaire" soit structurée avec une colonne se nommant "prenom" et une autre se nommant "commentaires"


  3. mysql_select_db($mabasededonnee,$connexion);

    $requete="INSERT INTO commentaire (prenom,resume) VALUES ('$prenom', '$resume')";
    $resultat=mysql_query($requete,$connexion);

    if (!$resultat) {
    $message = 'Requête invalide: ' . mysql_error() . "\n";
    $message .= 'Requête effectuee: ' . $requete;
    die($message);
    }
    mysql_close($connexion);
    while ($row = mysql_fetch_assoc($resultat))
    print_r($row);

    if(isset($_POST["Valider"]))
    {
    $prenom = mysql_real_escape_string($prenom);
    $resume = mysql_real_escape_string($resume);


    if(empty($prenom)){
    echo 'prenom est vide. <br/>';
    }
    else if(empty($resume)){
    echo 'resume est vide.<br/>';
    }

    ton code est mal structuré ici :/

    je te retape le tout bien structuré et j'éditerais ce message avec le code... a dans quelques minutes :)

  4. (Pour compléter ce qui est dit, et un peu répondre aux possibles soucis que j'ai vu dans le code)

    Bonsoir, apres plusieurs petits changements, je n'ai plus d'erreurs mais je n'ai tjrs pas de resultat dans ma base de donnée quand je ne remplie pas toutes les "cases" de mon formulaire,je n'ai pas de message.

    voici le code:


    $prenom = stripslashes (isset($_POST["prenom"]));
    $resume = stripslashes(isset($_POST["resume"]));

    merci à vous.

    Jp

    Bonjour,

    c'est tout à fait normal. Tu met dans tes variables $prenom et $resume un booléen (isset retournant true / false). Automatiquement, les variables sont remplies :)

    tu doit retirer le isset() de ta déclaration de $prenom et $resume.

    Si tu veux éviter les erreurs "undefined", il y a une petite astuce, c'est les conditions en déclaration.

    ça se présente comme tel:

    $variable = condition ? si vrai : si faux;

    Par exemple, vérifier que 1 == 2 (ce qui est faut) sera ainsi:

    $variable = 1 == 2 ? "C'est egal !" : "Ce n'est pas égal !";

    et en affichant $variable, tu verra "Ce n'est pas égal !" car 1 est différent de 2 ;) j'espère que c'est compréhensible.

    Dans ton cas, tu désire vérifier que la variable est définie. Tu peut donc faire comme suit:


    $prenom = isset($_POST["prenom"]) ? stripslashes($_POST["prenom"]) : NULL;
    $resume = isset($_POST["resume"]) ? stripslashes($_POST["resume"]) : NULL;

    "C'est bien beau, mais ça fais quoi?"

    En fait, et je vais l'expliquer que pour prénom (vu que resume fais exactement pareil):

    On défini une variable nommée $prenom. Dans cette variable, on met une condition. une "vérification" si tu préfère. On vérifie si $_POST["prenom"] est défini (via isset($_POST["prenom"]) ?) et on dit que si c'est vrai (donc isset retourne true; signifiant que $_POST["prenom"] contient quelque chose) on dit que $prenom contiendra stripslashes($_POST["prenom"]). Toutefois, si jamais $_POST["prenom"] venant à retourner false (et donc qu'il ne serait pas complété par l'utilisateur), on met $prenom avec la valeur NULL. NULL étant en réalité une sorte de "vide". Ainsi, pour ta vérification antérieure, tu aura bien un message si tu fais empty($prenom) ; car la variable est vide ;)

    ----

    Pour ajouter une entrée de ce que l'utilisateur a tapé, après avoir vérifié si tout a été défini par l'utilisateur (les empty), tu doit faire une autre query contenant ceci:


    // Je créer de nouvelles variables, rien n'empêche de redéfinir $prenom et $resume.
    // mysql_real_escape_string() va sécuriser tes variables contre les injections sql
    // (des trucs méchants qui peuvent faire des failles de sécurité)
    $prenom_i = mysql_real_escape_string($prenom);
    $resume_i = mysql_real_escape_string($resume);

    // Cette requête ajoute dans la table commentaire,
    // les variables $prenom dans la colonne 'prenom'
    // et $resume dans la colonne 'commentaires'.
    // Faut adapter selon le nom de tes colonnes / table :)
    $requete2 = "INSERT INTO commentaire (prenom, commentaires) VALUES ('$prenom_i', '$resume_i')"
    $execution = mysql_query($requete2, $connexion);

    if(!$execution)
    {
    $message = 'requête invalide: '. mysql_error() . "\n";
    $message.= 'requête: ' . $requete2;
    die($message);
    }

  5. dans ta vérification de si $commentaire est vide, ça tombe des nue: tu met les commentaires dans $commentaires (avec S) et vérifie $commentaire (sans S).



    <?php

    $connexion = mysql_connect("localhost","root","");

    if (!$connexion)
    die ("connexion impossible");

    $mabasededonnee="maintenance13";

    mysql_select_db($mabasededonnee, $connexion);

    $requete="SELECT * FROM commentaire";
    $resultat=mysql_query($requete, $connexion);

    if (!$resultat)
    {
    $message = 'Requête invalide: ' . mysql_error() . "\n";
    $message .= 'Requête effectuee: ' . $requete;
    die($message);
    }
    mysql_close($connexion);

    if(isset($_POST["Valider"]));
    {
    $prenom = stripslashes($_POST["prenom"]);
    $commentaires = stripslashes($_POST["commentaires"]);

    if(empty($prenom))
    {
    echo 'prenom est vide. <br/>';
    }
    elseif(empty($commentaires))
    {
    echo 'commentaire est vide.<br/>';
    }
    }

    ?>

  6. quel est ta requête + ce qui précède ? (en partant de la connexion sql) ?

    Normalement elle n'a rien a voir avec ta requête, tu a juste une variable $prenom que tu n'a pas déclaré et que tu demande d'afficher quelque part :)

  7. tu a mal précisé, donc :)

    ta table se nomme COMMENTAIRE (sans S) donc la requête doit avoir "Select * from commentaire" ; ta colonne n'est pas citée vue que tu sélectionne toute les colonnes.

    Sinon tu aurais marqué "Select commentaires from commentaire".

  8. Merci à vous pour vos reponses, j'ai effectivement changer "commentaires".

    J'ai aussi changer la partie "requete" mais voici un message d'erreur "Notice: Undefined variable: query in C:\wamp\www\maintenance13\".

    Que puis je faire ?

    remplace $query par $requete :)

  9. Et puis c'est la fin de l'école, de nombreux professionnels prennent quelques jours de congés pour aller avec leurs enfants en vacance :)

    HS:

    Ici, c'est comme pour une femme.. une privilégie la qualité à la quantité... ;)

    On peut très bien trouver la qualité ET la quantité... whistling.gif

  10. Oj, je comprends le principe. La fonction files_get_content execute en un premier temps cette page sur le serveur distant et reprend tout ce qui s'affiche ?

    Exact. Si l'on précise une page internet, il va récupérer le code source de la page. Donc évidement, il ne faut mettre que du php, aucun <html> etc.

    Par contre, la dernière phrase, je n'ai pas compris, mais alors pas du tout

    Si votre base de donnée est en MySQL (je n'ai pas testé les autres), vous avez la possibilité de créer des utilisateurs. Ces utilisateurs ont une limite définissant de quel endroit ils peuvent se connecter. Par défaut, l'on met tout le temps "localhost". Mais, en mettant "%" signifiant "tout serveur", tu pourra te connecter de n'importe où; y compris d'un serveur distant. Donc, sur B, quand tu te connecte à mysql, suffit de marquer (exemple en mysql_*) : "mysql_connect("ton_ip_serveur_a", $user, $pass)".

×
×
  • Créer...