Partage
  • Partager sur Facebook
  • Partager sur Twitter

phpmyadmin

insertion en php

    20 mai 2011 à 22:49:12

    bonjour
    je suis nouveau, et j'ai un drôle de problème.
    cela fait trois jours que je cherche et j'en viens à imaginer des choses surnaturelles!!
    Ma base de donné ne répond pas. j'explique!!
    j'ai plusieurs pages HTML css php dans l'administration de mon site. Je travail en local avec root ''.
    je suis en train de créer des pages pour up-loader des images et des formulaires pour les textes.
    j'ai trois pages qui fonctionnent très bien, reliées à trois différentes table de ma base. là tous va bien...
    et d’ailleurs j'utilise le mémé script sur ces trois pages.
    je veux en réaliser une quatrième identique à la troisième et ça ne marche pas.
    les symptômes..
    si j’inscris des données avec phpmyadmin ça fonctionne, j'ai un retour dans ma page liste.php.
    et dans l'autre sens :inscrire les données en remplissant mon formulaire ça ne fonctionne pas et pas de message d’erreur??
    page rediger_music.php
    <!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>Rédiger music</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
    			h3, form
    			{
                text-align:center;
    			}
            </style>
        </head>
        
        <body>
    <h3><a href="liste_music.php">Retour music</a></h3>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("xxx");
    if (isset($_GET['modifier_music'])) // Si on demande de modifier une news.
    {
        // On protège la variable « modifier_news » pour éviter une faille SQL.
        $_GET['modifier_music'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_music']));
        // On récupère les informations de la news correspondante.
        $retour = mysql_query('SELECT * FROM music WHERE id=\'' . $_GET['modifier_music'] . '\'');
        $donnees = mysql_fetch_array($retour);
        
        // On place le titre et le contenu dans des variables simples.
       
    			$nom_photo = stripslashes($donnees['nom_photo']);
    			$titre = stripslashes($donnees['titre']);
    			$infos = stripslashes($donnees['infos']);
    			$auteur = stripslashes($donnees['auteur']);
    			$lien = stripslashes($donnees['lien']);
    			
    	
        $id_music = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification.
    }
    else // C'est qu'on rédige une nouvelle news.
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news.
        $nom_photo = '';
    	$titre = '';
    	$infos = '';
    	$auteur = '';
    	$lien = '';
    	
    	
        $id_music = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification.
    }
    ?>
    <form action="liste_music.php" enctype="multipart/form-data" method="post">
    <input type="file" name="fichier" size="50">
    <p>nom_photo : <input type="text" size="50" name="nom_photo" value="<?php echo $nom_photo; ?>" /></p>
    <p>titre : <input type="text" size="50" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>auteur : <input type="text" size="50" name="auteur" value="<?php echo $auteur; ?>" /></p>
    <p>lien : <input type="text" size="50" name="lien" value="<?php echo $lien; ?>" /></p>
    
    
        
        <input type="hidden" name="id_music" value="<?php echo $id_music; ?>" />
        <input type="submit"name="upload" value="Envoyer" />
    
    </form>
    </body>
    </html>
    


    page liste_music.php
    <?php
    
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
        $content_dir = '../music/music_images/'; // dossier où sera déplacé le fichier
    
        $tmp_file = $_FILES['fichier']['tmp_name'];
    
        if( !is_uploaded_file($tmp_file) )
        {
            exit("Le fichier est introuvable");
        }
    
        // on vérifie maintenant l'extension
        $type_file = $_FILES['fichier']['type'];
    
        if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') )
        {
            exit("Le fichier n'est pas une image");
        }
    
        // on copie le fichier dans le dossier de destination
        $name_file = $_FILES['fichier']['name'];
    
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
            exit("Impossible de copier le fichier dans $content_dir");
        }
    
        echo "Le fichier a bien été uploadé";
    }
    ?> 
    <!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>Liste music</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            h2, th, td
            {
                text-align:center;
            }
            table
            {
                border-collapse:collapse;
                border:2px solid black;
                margin:auto;
            }
            th, td
            {
                border:1px solid black;
            }
            </style>
        </head>
        
        <body>
    
    <h2><a href="rediger_music.php">Ajouter music</a></h2>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("xxx");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['nom_photo'])
     AND isset($_POST['titre'])
     AND isset($_POST['infos'])
     AND isset($_POST['auteur'])
     AND isset($_POST['lien']))
    {
        $nom_photo = addslashes($_POST['nom_photo']);
    	$titre = addslashes($_POST['titre']);
    	$infos = addslashes($_POST['infos']);
    	$auteur = addslashes($_POST['auteur']);
        $lien = addslashes($_POST['lien']);
        // On vérifie si c'est une modification de news ou non.
        if ($_POST['id_music'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table.
            mysql_query("INSERT INTO music VALUES('',
    		'" . $nom_photo . "',
    		'" . $titre . "',
    		'" . $infos . "',
    		'" . $auteur . "',	
    		'" . $lien . "',
    		'" . time() . "')");
        }
        else
        {
            // On protège la variable "id_news" pour éviter une faille SQL.
            $_POST['id_music'] = addslashes($_POST['id_music']);
            // C'est une modification, on met juste à jour le titre et le contenu.
            mysql_query("UPDATE music SET 
    		nom_photo='" . $nom_photo . "',
    		titre='" . $titre . "',
    		infos='" . $infos . "',
    		auteur='" . $auteur . "',		
    		lien='" . $lien . "'
    		WHERE id='" . $_POST['id_music'] . "'");
        }
    }
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_music'])) // Si l'on demande de supprimer une news.
    {
        // Alors on supprime la news correspondante.
        // On protège la variable « id_news » pour éviter une faille SQL.
        $_GET['supprimer_music'] = addslashes($_GET['supprimer_music']);
        mysql_query('DELETE FROM music WHERE id=\'' . $_GET['supprimer_music'] . '\'');
    }
    ?>
    <table><tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>nom_photo</th>
    <th>titre</th>
    <th>infos</th>
    <th>auteur</th>
    <th>lien</th>
    <th>Date</th>
    <th>image</th>
    
    
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM music ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news.
    {
    ?>
    <tr>
    <td><?php echo '<a href="rediger_music.php?modifier_music=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="liste_music.php?supprimer_music=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['nom_photo']); ?></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo stripslashes($donnees['infos']); ?></td>
    <td><?php echo stripslashes($donnees['auteur']); ?></td>
    
    <td><?php echo stripslashes($donnees['lien']); ?></td>
    <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
    <td><img src="../music/music_images/<?php echo ($donnees['nom_photo']); ?>"/></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news.
    ?>
    </table>
    </body>
    </html>
    

    alors je me demande si l'encodage peut avoir une influence
    -- phpMyAdmin SQL Dump
    -- version 3.3.9
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Ven 20 Mai 2011 à 20:37
    -- Version du serveur: 5.5.8
    -- Version de PHP: 5.3.5
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- Base de données: `xxx`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Structure de la table `music`
    --
    
    CREATE TABLE IF NOT EXISTS `music` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nom_photo` varchar(255) NOT NULL,
      `titre` varchar(255) NOT NULL,
      `infos` varchar(255) NOT NULL,
      `auteur` varchar(255) NOT NULL,
      `lien` varchar(255) NOT NULL,
      `timestamp` bigint(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    
    --
    -- Contenu de la table `music`
    --
    

    je ne comprends pas mon erreur.
    merci
    • Partager sur Facebook
    • Partager sur Twitter

    phpmyadmin

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown