IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Transmission d'informations


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut Transmission d'informations
    Bonjour,

    Je voudrais transmettre dans informations à un script php sans l'afficher sur la page et aussi faire que le champ date soit affiché avec la date actuelle, sans que l'utilisateur puisse la modifier. Voilà mon code pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     <?php
     
    	   $serveur = mysql_connect("127.0.0.1","root","");
    	   if (!$serveur)
    		{
    			die('Non connecté : ' . mysql_error());
    		} 
     
    		$db = mysql_select_db('cinegeeks', $serveur);
    		if (!$db)
    		{
    			die ('Impossible d\'utiliser la base : ' . mysql_error());
    		} 
     
    		$result  =  mysql_query  (  'SELECT * FROM articles WHERE Univers = \'Geek\' '  );
     
    		while ($donnees = mysql_fetch_array($result, MYSQL_ASSOC))
    		{
    		?>
     
    		<h2><?php echo $donnees['Titre']; ?></h2>  
            <i><?php echo $donnees['Auteur']; ?> le <?php echo $donnees['Date']; ?> </i><br />
            <br />
            <?php echo $donnees['Article']; ?><br />
            <br /><br />
     
     
            <form name="commentaire" method="post" action="geek.php">
            Nom : <input name="Nom" type="text" /><br />
            Date : <input name="Date" type="text" /><br />
            Commentaire : <br /><textarea name="Commentaire"  rows="10"  cols="40" ></textarea><br />
             <input type="submit" value="Envoyer" />
     
            <?php
    		} // fin du while
    		mysql_free_result($result);
    		?>
     
     
    		 <?php
     
    		$Nom = trim($_POST['Nom']);
    		$Date = trim($_POST['Date']);
    		$Commentaire = trim($_POST['Commentaire']);
     
    		 if(empty($Nom) || empty($Date) || empty($Commentaire)) {
    			echo 'Veuillez remplir tout les champs !';
    		} else {
    			if(@mysql_connect("127.0.0.1","root","")) {
    				if(@mysql_select_db('cinegeeks')) {
    					$query = 'INSERT INTO commentaires VALUES(
    						"",
    						"'.mysql_real_escape_string($Nom).'",
    					   "'.mysql_real_escape_string($Commentaire).'",
    						"'.mysql_real_escape_string($Date).'")';
    					$result = mysql_query($query);
    				} else
    			echo 'Impossible d\'utiliser la base : ' . mysql_error();
    			} else
    		echo 'Non connecté : ' . mysql_error();
    		}
     
     
    		 ?>
    Ce que je voudrais transmettre, c'est le nom de l'article, pour pouvoir linké le commentaire à l'article et pouvoir l'afficher ensuite.

    Pour l'instant aussi, je récupère les articles dans l'ordre de la base de données, mais j'aimerais afficher le plus récent en premier si possible.

    J'aimerais aussi, faire en sorte qu'on voit pas le formulaire d'ajout de commentaire directement, mais qu'on clique sur un lien pour le voir ...

    Si quelqu'un pourrait m'aider, ce serait sympa.

    Thanks

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Je voudrais transmettre dans informations à un script php sans l'afficher sur la page
    Qu'entends tu par là ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    J'entends que l'information se transmet, sans être affiché sur la page html. Là par exemple pour transmettre le Nom, je fait un input. Je voudrais faire sans ça.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Le problème que tu rencontre, c'est que le déroulement de ton code est fait à l'envers, c'est à dire que tu fais en dernier ce qui devrait être fait en 1er.

    En faite, tu propose 1 page (geek.php) qui en faite propose 2 écrans (2 traitement différents, 2 affichages différents, au minimum).
    Le 1er c'est de proposer un formulaire pour que l'utilisateur saisisse des infos (un article).
    Le 2ème, c'est après avoir validé (soumis) les infos, on insère ces infos, mais encore, de proposer un lien au lieu du formulaire.

    En conclusion, ça revient à avoir 2 pages.
    Mais pour plusieurs (tout à fait justifiés), on fusionne ces 2 écrans dans une même page.
    Du coup, ça demande de faire les choses dans l'ordre au niveau du code, car ici, le code Php s'exécutera de manière procédurale, les uns après les autres.


    Pour faire ceci au mieux, il faudrait :
    1/ Vérifier l'existence des données reçues en POST. Si elles existent, on les insèrent.
    2/ On récupère tous les articles.
    Ici, si l'article précédemment reçu est inséré (étape 1), il sera récupéré.
    (Ce qui n'est pas le cas dans ton code, car tu le prévois de le faire en dernier)
    3 /
    a/ -> Si une insertion a été faite (étape 1) : On affiche le lien vers l'article
    b/ ->SINON on affiche le formulaire (contenu par défaut)

    Exemple : (je simplifie, juste l'essentiel)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $serveur = mysql_connect("127.0.0.1","root","");
    $db = mysql_select_db('cinegeeks', $serveur);
     
    $action = null;
     
    if (isset($_POST['Nom'], $_POST['Date'], $_POST['Commentaire']) && !empty($_POST['Nom']) && !empty($_POST['Date']) && !empty($_POST['Commentaire'])) {
        // On insert les données reçues en POST
        // INSERT INTO ... etc ...
        $action = 'insertion';
    }
     
    // On récupère tous les articles
    $result = mysql_query("SELECT * FROM articles WHERE Univers = 'Geek'");
     
    // On affiche le bon écran selon le cas defaut/insertion
    if ($action == 'insertion') {
        // On affiche tous les lien ou juste le lien précédemment inséré.
    }
    else {
        // On affiche le formulaire (contenu par défaut)
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Merci de prendre du temps pour m'aider.

    Alors, je comprend pas tout.

    Ce que je veux c'est affiché des articles déjà présent sur la base de donnée sans possibilité de faire un nouveau (autre page pour ça), puis afficher les commentaires et un formulaire pour en ajouté.

    C'est ce qui est fait si je rempli ça ? j'en ai pas l'impression :s

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Ce que je veux c'est affiché des articles déjà présent sur la base de donnée sans possibilité de faire un nouveau (autre page pour ça), puis afficher les commentaires et un formulaire pour en ajouté.

    C'est ce qui est fait si je rempli ça ? j'en ai pas l'impression :s
    C'est ce que ça y fait.
    C'est aussi se que j'ai dis : On fusionne dans 1 seule page se qui théoriquement devrait se faire en 2 pages.

    En somme, quand on valide (submit) le formulaire, on recharge la même page.

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/10/2012, 19h15
  2. Réponses: 3
    Dernier message: 26/03/2010, 15h36
  3. transmission d'information en c#
    Par flex@ dans le forum C#
    Réponses: 1
    Dernier message: 28/10/2008, 00h36
  4. Transmission d'informations entre deux fenêtres ouvertes
    Par lnplnp dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/02/2007, 12h04
  5. [VB.Net] Transmission d'information entre 2 Form
    Par stargatejojo dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/05/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo