probléme d'enregistrement vide dans ma base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probléme d'enregistrement vide dans ma base de données

Re: probléme d'enregistrement vide dans ma base de données

par moogli » 08 juil. 2011, 13:05

si c'est vital fait le 17 ou le 18 :)

dans le fichier diapo faut que tu vire tous ce qui est entete et fin de fichier html, car il y aura doublon dans le code final
en gros
<html><head></head><body>
blabla

<html>
....
<body>
<img src ... />
</body>
</html>
blba bla
</html>

donc diapo.php devrait être
<div id="carrousel">
        <?php
                                        include('params.inc.php');
                                        $connect=mysql_connect(MYHOST,MYUSER,MYPASS) or die ('erreur de connexion');
                                        mysql_select_db(MYDB) or die ('erreur de connexion à la base');
                                        $requeteselect = 'SELECT id,lienimage,url FROM images';
                                        $result = mysql_query($requeteselect, $connect);
                                        $tableau = array();
                                        $i=1;
                                        while($image_courante = mysql_fetch_array($result,MYSQL_ASSOC)){
                                                //on met toutes les infos dans un tableau
                                                $tableau[$image_courante['id']]['url'] = $image_courante['url'];
                                                $tableau[$image_courante['id']]['lienimage'] = $image_courante['lienimage'];
                                               
                                                        echo '<div id="slide'.$i.'" class="slide"><a href='.$tableau[$image_courante['id']]['url'].' target="_blank"><img src='.$tableau[$image_courante['id']]['lienimage'].'> </a></div>';
                                                //echo'<br />';
                                                        $i++;
                                        }
                       
                                               

                                        mysql_close($connect);
                                       
        ?>
           
        </div>
Il faut vérifier mais je ne pense pas que la balise a accepte une balise div en contenue (ça parait logique que du contenue "en ligne" ne contienne pas de contenue "bloc"). Dans ce cas faut virer la déclaration et la fermeture du div (1ère et dernière ligne).

@+

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 08 juil. 2011, 09:56

a l'aide je galére vraiment

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 06 juil. 2011, 13:37

pour le caroussel il est déja en ligne sur l'arborésance /test/que je tavais fourni
pour le visualiser, c'est le script "diapo.php"
mon caroissel fonctionne à merveille maintenant, j'ssaye de le placer dans un endroit un peut compliquer de la page web du site
le site est http:www.tvamiens.com
et la ou il y'a l'image "tv amiens partenaire de", j'aimerai placer ma <div> qui gére la caroussel
sauf que sur la div de l'image, les propriété du lecteur flow player sont definits, donc j'ai essayer de faire un include mais ça ne marche pas
je te donne le code de ma page qui me permet de gérer le diffelment d'image
diapo.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" lang="fr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" href="css/admin.css" type="text/css" media="screen" />
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript" src="test.js"></script>

</head> 

<body>
     <div id="carrousel">
	<?php
					include('params.inc.php');
					$connect=mysql_connect(MYHOST,MYUSER,MYPASS) or die ('erreur de connexion'); 
					mysql_select_db(MYDB) or die ('erreur de connexion à la base'); 
					$requeteselect = 'SELECT id,lienimage,url FROM images';
					$result = mysql_query($requeteselect, $connect);
					$tableau = array();
					$i=1;
					while($image_courante = mysql_fetch_array($result,MYSQL_ASSOC)){
						//on met toutes les infos dans un tableau
						$tableau[$image_courante['id']]['url'] = $image_courante['url'];
						$tableau[$image_courante['id']]['lienimage'] = $image_courante['lienimage'];
						
							echo '<div id="slide'.$i.'" class="slide"><a href='.$tableau[$image_courante['id']]['url'].' target="_blank"><img src='.$tableau[$image_courante['id']]['lienimage'].'> </a></div>';
					        //echo'<br />';
							$i++;
					}
			
						

					mysql_close($connect);
					
	?>
	   
	</div>

</form>
</body>
</html>
et voici le code de la page du site ou je doit placer mon caroussel
mod_joomvideo.php
<div id="tvamiens">
		<div id="lecteur">
				<a href="<?php echo $nom; ?>" id="player">
				<?php if ($ref == "") echo '<img src="/tvamiens/modules/mod_joomvideo/logo.png" alt="TVAmiens" />'; ?>
				</a>
				<script type="text/javascript" >flowplayer("player", "/tvamiens/modules/mod_joomvideo/flowplayer/flowplayer-3.2.2.swf", {
clip: {
  scaling: "fit"
}});</script>
		</div>
			
		<div id="playlist">
			<?php 
					while ($video = mysql_fetch_array($req) ) 
					{	$num = $video['num'];
						$nom = $video['nom'];
						$res = $video['resume'];
						$pres = $video['presentation'];
						$date = $video['date'];
						$cat = $video['categories'];
						$emi = $video['emission'];
						$img= $video['img'];
					
					   $dossier=opendir("videos/miniatures/".$nom);
						echo "<a href=\"$url?ref=$num#tvamiens\" title=\"$res\">";
						if(file_exists("$img"))
						echo "<img src=\"$img\" alt=\"miniature\" width=\"85\" height=\"52\" />";
						else echo "<img src=\"videos/miniatures/logo.png\" alt=\"miniature\" width=\"85\" />";
						echo "<span class=\"pres\"><strong>$nom</strong><br/><small>$pres</small></span></a>";
					}
				?>
				</div>
		</div>
<?php mysql_close;?>
moi ce que j'ai essayer de faire c'était la ou il y'a le href vers l'image png(dans la page mod_jommvideo.php) c'est à dire au niveau de ce bout de code
<div id="lecteur">
				<a href="<?php echo $nom; ?>" id="player">
				<?php if ($ref == "") echo '<img src="/tvamiens/modules/mod_joomvideo/logo.png" alt="TVAmiens" />'; ?>
				</a>
remplacer le href par
<?php include('modules/mod_joomvideo/test/diapo.php'); ?>
et ça ne marche pas

Re: probléme d'enregistrement vide dans ma base de données

par moogli » 06 juil. 2011, 13:01

1. mysql_query n'a pas besoin de second paramètre. Comme je ne suis jamais sûr de ce qu'il faut je ne le mets pas et je laisse php gérer
Le second parametre est l'Inde giflant de connexion (c'est dans la doc ;) )
Il est fournit par le mysql_connect et permet d'utiliser plusieurs connexion différentes (par exemple deux serveurs mysql differents) sinon php ne sait pas a quel saint de vouer et c'est la merde.
C'est vrai optionnel dans la plus part des cas mais ca coûte rien de la préciser (tu peux aussi mettre dans ton php.ini les identifiant mysql par defaut mais c'est par cela que tout le monde le fait ;) )

Quand au carrousel j'ai pas regardé il faut savoir comment il fonctionne et en gros comment sais qu'elle image prendre et oú. Une fois que tu sais ca c'est bon.

Je ne vois pas en quoi la modification de l'error_reporting mettrais le brin au pire ca retour étais false mais ca arrête pas le script. Ca peut merder coté html si il y a un message d'erreur php qui s'y affiche sans qu'il soit visible (au milieu d'une balise html ou script par exemple.

@+

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 04 juil. 2011, 14:14

alors la ce que j'essaye de faire c'est remplacer l'image "tv amiens partenaire de " dans la page d'acceuil de site "www.tvamiens.fr" ajouter le script "diapo.php" qui est déja en ligne que tu peut visualiser avec l'arboressence que je t'avais passer pour linterface "admin.php" à savoir "http://www.tvamiens.com/modules/mod_joomvideo/test". et ça ne marche pas
voici le script initiale de cette page
	<?php mysql_connect("localhost", "tvamiensvideo", "******") or die(mysql_error()); mysql_select_db("video");?>
	<link rel="stylesheet" href="modules/mod_joomvideo/video.css" type="text/css" />
	<!--[if IE]>
      <link rel="stylesheet" type="text/css" href="modules/mod_joomvideo/ie.css" />
    <![endif]-->
	<script type="text/javascript" src="modules/mod_joomvideo/flowplayer/flowplayer-3.2.2.min.js"></script>
<!--[if lt IE 7]> 
    <div style=' clear: both; height: 59px; padding:0 0 0 15px; position: relative;'>
        <a href="http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode">
            <img src="http://www.theie6countdown.com/images/upgrade.jpg" border="0" height="42" width="820" alt="" />
        </a>
    </div> 
<![endif]-->

		
<?php 		$page=$_SERVER["PATH_INFO"]; 
					$url=$_SERVER['REQUEST_URI'];
					$ref=$_GET['ref'];
  
  // cherche la postion du '.'  
  $position = strpos($page, ".");
  
  // enleve l'extention, tout ce qui se trouve apres le '.' 
  $page = substr($page, 0, $position);
	
$page=str_replace("/","",$page);
$page=str_replace("les-emissions","",$page);

if ($ref != "")
{	$position2 = strpos($url, "?");
	$url = substr($url, 0, $position2);
}

if ($page != "" && $page != "toutes-nos-emissions")
				$req = mysql_query("SELECT * FROM video WHERE categories = '$page' OR categories2 =  '$page'  OR emission='$page' ORDER BY num DESC ");
			else if ($page == "")
				$req = mysql_query("SELECT * FROM video WHERE acc='1'  ORDER BY num DESC");
				else $req = mysql_query("SELECT * FROM video ORDER BY num DESC LIMIT 0,12");

$cat = mysql_query("SELECT categories, num, fichier FROM video WHERE num='$ref' ORDER BY num DESC ");
while ($cate = mysql_fetch_array($cat) ) 
{	$page = $cate['categories'];
	$nom = $cate['fichier'];
}
?>
  
<div id="tvamiens">
		<div id="lecteur">
				<a href="<?php echo $nom; ?>" id="player">
				<?php if ($ref == "") echo '<img src="/tvamiens/modules/mod_joomvideo/logo.png" alt="TVAmiens" />'; ?>
				</a>
				<script type="text/javascript" >flowplayer("player", "/tvamiens/modules/mod_joomvideo/flowplayer/flowplayer-3.2.2.swf", {
clip: {
  scaling: "fit"
}});</script>
		</div>
			
		<div id="playlist">
			<?php 
					while ($video = mysql_fetch_array($req) ) 
					{	$num = $video['num'];
						$nom = $video['nom'];
						$res = $video['resume'];
						$pres = $video['presentation'];
						$date = $video['date'];
						$cat = $video['categories'];
						$emi = $video['emission'];
						$img= $video['img'];
					
					   $dossier=opendir("videos/miniatures/".$nom);
						echo "<a href=\"$url?ref=$num#tvamiens\" title=\"$res\">";
						if(file_exists("$img"))
						echo "<img src=\"$img\" alt=\"miniature\" width=\"85\" height=\"52\" />";
						else echo "<img src=\"videos/miniatures/logo.png\" alt=\"miniature\" width=\"85\" />";
						echo "<span class=\"pres\"><strong>$nom</strong><br/><small>$pres</small></span></a>";
					}
				?>
				</div>
		</div>
<?php mysql_close;?>


et voila avec quoi j'ai remplacer en utilisant un include(enfait la ou il y'a un img src j'ai fait un include)
	<?php mysql_connect("localhost", "tvamiensvideo", "*****") or die(mysql_error()); mysql_select_db("video");?>
	<link rel="stylesheet" href="modules/mod_joomvideo/video.css" type="text/css" />
	<!--[if IE]>
      <link rel="stylesheet" type="text/css" href="modules/mod_joomvideo/ie.css" />
    <![endif]-->
	<script type="text/javascript" src="modules/mod_joomvideo/flowplayer/flowplayer-3.2.2.min.js"></script>
<!--[if lt IE 7]> 
    <div style=' clear: both; height: 59px; padding:0 0 0 15px; position: relative;'>
        <a href="http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode">
            <img src="http://www.theie6countdown.com/images/upgrade.jpg" border="0" height="42" width="820" alt="" />
        </a>
    </div> 
<![endif]-->

		
<?php 		$page=$_SERVER["PATH_INFO"]; 
					$url=$_SERVER['REQUEST_URI'];
					$ref=$_GET['ref'];
  
  // cherche la postion du '.'  
  $position = strpos($page, ".");
  
  // enleve l'extention, tout ce qui se trouve apres le '.' 
  $page = substr($page, 0, $position);
	
$page=str_replace("/","",$page);
$page=str_replace("les-emissions","",$page);

if ($ref != "")
{	$position2 = strpos($url, "?");
	$url = substr($url, 0, $position2);
}

if ($page != "" && $page != "toutes-nos-emissions")
				$req = mysql_query("SELECT * FROM video WHERE categories = '$page' OR categories2 =  '$page'  OR emission='$page' ORDER BY num DESC ");
			else if ($page == "")
				$req = mysql_query("SELECT * FROM video WHERE acc='1'  ORDER BY num DESC");
				else $req = mysql_query("SELECT * FROM video ORDER BY num DESC LIMIT 0,12");

$cat = mysql_query("SELECT categories, num, fichier FROM video WHERE num='$ref' ORDER BY num DESC ");
while ($cate = mysql_fetch_array($cat) ) 
{	$page = $cate['categories'];
	$nom = $cate['fichier'];
}
?>
  
<div id="tvamiens">
		<div id="lecteur">
				<a href="<?php echo $nom; ?>" id="player">
				<?php if ($ref == "") include'/tvamiens/modules/mod_joomvideo/test/diapo.php'; ?>
				<script type="text/javascript" >flowplayer("player", "/tvamiens/modules/mod_joomvideo/flowplayer/flowplayer-3.2.2.swf", {
clip: {
  scaling: "fit"
}});</script>
		</div>
			
		<div id="playlist">
			<?php 
					while ($video = mysql_fetch_array($req) ) 
					{	$num = $video['num'];
						$nom = $video['nom'];
						$res = $video['resume'];
						$pres = $video['presentation'];
						$date = $video['date'];
						$cat = $video['categories'];
						$emi = $video['emission'];
						$img= $video['img'];
					
					   $dossier=opendir("videos/miniatures/".$nom);
						echo "<a href=\"$url?ref=$num#tvamiens\" title=\"$res\">";
						if(file_exists("$img"))
						echo "<img src=\"$img\" alt=\"miniature\" width=\"85\" height=\"52\" />";
						else include'/tvamiens/modules/mod_joomvideo/test/diapo.php';
						echo "<span class=\"pres\"><strong>$nom</strong><br/><small>$pres</small></span></a>";
					}
				?>
				</div>
		</div>
<?php mysql_close;?>

l'include on dirait qu'il ne marche pas
et voici mon script diapo.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" lang="fr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" href="css/admin.css" type="text/css" media="screen" />
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript" src="test.js"></script>

</head> 

<body>
     <div id="carrousel">
	<?php
					include('params.inc.php');
					$connect=mysql_connect(MYHOST,MYUSER,MYPASS) or die ('erreur de connexion'); 
					mysql_select_db(MYDB) or die ('erreur de connexion à la base'); 
					$requeteselect = 'SELECT id,lienimage,url FROM images';
					$result = mysql_query($requeteselect, $connect);
					$tableau = array();
					$i=1;
					while($image_courante = mysql_fetch_array($result,MYSQL_ASSOC)){
						//on met toutes les infos dans un tableau
						$tableau[$image_courante['id']]['url'] = $image_courante['url'];
						$tableau[$image_courante['id']]['lienimage'] = $image_courante['lienimage'];
						
							echo '<div id="slide'.$i.'" class="slide"><a href='.$tableau[$image_courante['id']]['url'].' target="_blank"><img src='.$tableau[$image_courante['id']]['lienimage'].'> </a></div>';
					        //echo'<br />';
							$i++;
					}
			
						

					mysql_close($connect);
					
	?>
	   
	</div>

</form>
</body>
</html>
et voila mon script qui fait defiler les image en javascript

Code : Tout sélectionner

var carrousel = { nbSlide : 0, nbCurrent : 1, elemCurrent : null, elem : null, timer : null, init:function(elem){ this.nbSlide = elem.find(".slide").length; this.elem=elem; elem.find(".slide").hide(); elem.find(".slide:first").show(); this.elemCurrent = elem.find(".slide:first"); carrousel.play(); elem.mouseover(carrousel.stop); elem.mouseout(carrousel.play); }, gotoSlide : function(num){ if(num==this.nbCurrent){ return false; } /*this.elemCurrent.fadeOut(); this.elem.find("#slide"+num).fadeIn();*/ var cssDeb = { "left" : this.elem.width() }; var cssFin = { "left" : -this.elem.width() }; this.elem.find("#slide"+num).show().css(cssDeb); this.elem.find("#slide"+num).animate({"top":0,"left":0},500); this.elemCurrent.animate(cssFin,500) this.nbCurrent = num; this.elemCurrent = this.elem.find("#slide"+num); }, next : function(){ var num = this.nbCurrent+1; if(num >this.nbSlide){ num = 1; } this.gotoSlide(num); }, stop : function(){ window.clearInterval(carrousel.timer); }, play : function(){ window.clearInterval(carrousel.timer); carrousel.timer = window.setInterval("carrousel.next()",2000); }, } $(function(){ carrousel.init($("#carrousel")); });

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 04 juil. 2011, 14:06

c'est parfait ça fonctionne, oufffffffffff, je suis content,
enfait il fallait juste rajouter la ligne "$oldreporting = error_reporting(-1);" amon tout premier script que tu m'avais corriger et la ça fonctionne
merci beaucoup

Re: probléme d'enregistrement vide dans ma base de données

par macgawel » 04 juil. 2011, 13:57

1. mysql_query n'a pas besoin de second paramètre. Comme je ne suis jamais sûr de ce qu'il faut je ne le mets pas et je laisse php gérer :oops:
2. En cas de plantage, affiche la requête et l'erreur - tu peux comparer la requête avec celle générée via phpMyAdmin, et le message d'erreur peut être intéressant...
(Au passage, si tu as une clé dans ta table, il faut lui passer une valeur :roll: )
$requeteinsert ='INSERT INTO images(lienimage,url) VALUES('http://www.test.fr', 'coca')';
$result = mysql_query($requeteinsert) or die ("Erreur sur la requête $requeteinsert<br />Erreur :".mysql_error());

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 04 juil. 2011, 13:27

ça ne marche toujours pas
tien j'ai méme fait un script pour tester si j'arrive bien à me connecter à ma base
<?php
$sql_db = "diapo";
if($id = mysql_connect("localhost", "root", "mon mot de passe"))//Si j'arrive à me connecter avec ses paramêtres
{ if($id_db = mysql_select_db($sql_db))//Puis à cette base de données
{ echo "Succès !";//Ça roule !
$requeteinsert ='INSERT INTO images(lienimage,url) VALUES('http://www.test.fr', 'coca')';
$result = mysql_query($requeteinsert,$id);
echo "réussis";
}else{
die("Echec");//Ou impossible de se connecter à la base :( (vous êtes connectez au serveur mais impossible //de sélectionner la base $sql_db)
}
mysql_close($id);
}else{
die("Echec complet");//Ou encore pire ! L'échec complet, c'est que vous n'êtes même pas arriver à vous connecter !
}

?> 

alors quand je met la requette d'insertion il ne marche pas, mais des que je met la requette d'insertion en commentaire, bah ça passe il se connecte en m'affichant succés

Re: probléme d'enregistrement vide dans ma base de données

par moogli » 04 juil. 2011, 12:32

hum tu a bien changer mon ndm (nom de domaine) par le tiens et le doc root local par le tiens (donc l'endroit où tu met ton code sur ton pc pour tester, si jamais tu le fait ;) )

if (isset($_SERVER['SERVER_NAME']) && $_SERVER["SERVER_NAME"]=='phpjungle.info') { <= la, le ndm
echo 'serveur_name vaut phpjungle.info';
$emplacement = 'inthenet';
}
elseif($_SERVER["DOCUMENT_ROOT"] != 'H:/web/docRoot') { <= et la le doc root de ton serveur sur ton pc a toi, au pire laisse le comme ça en ligne ça doit toujours fonctionner si le premier fonctionne pas ;)
$emplacement = 'inthenet';
echo 'le doc root est != du local ('.$_SERVER['DOCUMENT_ROOT'].')<br />';

tu peux virer ou mettre en commentaire les echo, c'était juste pour être sur de la où passé mon script (debug ;) ) lorsque j'ai testé le serveur embarqué par l'alpha de php5.4 ;) (donc totalement inutile pour toi la hein :) )

mais ceci dit, l'affichage que tu a eu confirme qu'au final le code prend bien les paramètres 'inthenet' ça devrait donc fonctionner :mrgreen:

@+

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 04 juil. 2011, 10:13

bonjours,
j'ai bien testé votre code, il est bien en ligne, j'ai modifié le tableau "inthenet" avec mes edentifiant, et ça ne marche pas
il me repond avec ce message
le doc root est != du local (/home/www/www/)
erreur de connexion

Re: probléme d'enregistrement vide dans ma base de données

par moogli » 01 juil. 2011, 20:23

je sais bien moi non plus, sur ma platforme de dev win et sur mon site oueb nux avec des versions de php différente.

comme le dit la doc
Retourne TRUE en cas de succès.

Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.

Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.
donc soit ton error_reporting n'est pas actif et on peux pa debuger soit y a un soucis dans le nom du fichier et pas de message d'erreur.
Pour avoir la réponse c'est simple, il faut afficher les deux noms de fichiers (temporaire et final et activer l'error_reporting)

tu peux eesayé d'ajouter un is_uploaded_file si tu veux, mais je ne pense pas que cela soit le cas.

pour test tu peux avoir ce code :
<?php
//include('params.inc.php');
$oldreporting = error_reporting(-1);
// si tu veux pas t'emmerder remplis justes les 4 lignes du tableaux inthenet avec tes identifiants, sinon faut que tu modifie les constante ne bas :)
$pdoconnect = array(
    'inthenet' => array (
        'host' => 'perso',
        'dbname'=> 'ca',
        'user' => 'aussi ',
        'mdp' => 'c perso'
    ),
    'local' => array(
        'host' => 'localhost',
        'dbname'=> 'test',
        'user' => 'root',
        'mdp' => 'yyRu2TKEvyYpzFLK'
        
    )
);

if (isset($_SERVER['SERVER_NAME']) && $_SERVER["SERVER_NAME"]=='phpjungle.info') {
    echo 'serveur_name vaut phpjungle.info';
    $emplacement = 'inthenet';
}
elseif($_SERVER["DOCUMENT_ROOT"] != 'H:/web/docRoot') {
    $emplacement = 'inthenet';
    echo 'le doc root est != du local ('.$_SERVER['DOCUMENT_ROOT'].')<br />';
}
else {
    $emplacement = 'local';
}

define('MYHOST',$pdoconnect[$emplacement]['host']);
define('MYUSER',$pdoconnect[$emplacement]['user']);
define('MYPASS',$pdoconnect[$emplacement]['mdp']);
define('MYDB',$pdoconnect[$emplacement]['dbname']);
function up_error($code,$nom) {
    $valid = false;
    switch ($code) {
        case '0' : $erreur = 'Pas d\'erreur';$valid = true;break;
        case '1' : $erreur = 'Votre fichier `'.$nom.'` dépasse la taille maximale d\'upload autorisée par PHP( '.get_cfg_var('upload_max_filesize').' )'; break;
        case '2' : $erreur = 'Votre fichier dépasse la taille maximale demandée par le Webmestre';break;
        case '3' : $erreur = 'Le fichier n\'a pas été totalement uploadé !!!';break;
        case '4' : $erreur = 'Aucun fichier téléchargé !!!';break;
        default : $erreur = 'L\'upload a rencontré une erreur inconnue !!!'; break;
    }
    $return[] = $valid;
    $return[] = $erreur;
    return $return;
}

$connect=mysql_connect(MYHOST,MYUSER,MYPASS) or die ('erreur de connexion');
mysql_select_db(MYDB) or die ('erreur de connexion à la base');
if(!empty($_FILES['img'])){
  var_dump($_FILES);
  require("imgClass.php");
  if ($_FILES['img']['error'] === 0) {
      if (is_uploaded_file($_FILES['img']['tmp_name'])) {
        $img = $_FILES['img'];
        $ext = strtolower(substr($img['name'],-3));
        $allow_ext = array("jpg",'png','gif');
        if(in_array($ext,$allow_ext)){
            //$finfo = finfo_open(FILEINFO_MIME_TYPE);
            //$finfo = new SplFileInfo($_FILES['img']['tmp_name']);
            /*
            $a = mime_content_type($_FILES['img']['tmp_name']);
            //$a = $finfo->getType();
            if (($a == 'image/gif') || ($a == 'image/png') || ($a == 'image/jpeg')) {
                */
                $sql = 'select count(id) as nb from images where lienimage=\''.  mysql_real_escape_string($_FILES['img']['name']).'\';';
                $r = @mysql_query($sql);
                if ($r === false ){
                    $erreur = 'Erreur SQL oust !<br />'. mysql_error().'<br />';
                }
                else {
                    $data = mysql_fetch_assoc($r);
                    mysql_free_result($r);
                    if ($data['nb'] == 0) {
                        if (move_uploaded_file($img['tmp_name'],"images/".$img['name'])) {
                            $nom_image = Img::creerMin("images/".$img['name'],"images/min",$img['name'],653,370);
                            if ($nom_image !== false){
                                $requeteinsert = 'INSERT INTO images(lienimage,url) VALUES(\''.$nom_image.'\',\''.mysql_real_escape_string($_POST['url']).'\')';
                                $result = mysql_query($requeteinsert,$connect);
                            }
                            else {
                                // impossible de redimensionner l'image parce que .....
                            }
                        }
                        else {
                            $x = up_error($_FILES['img']['error'], $_FILES['img']['name']);
                            $erreur = 'Le fichier a pas été uploadée '.$x[1];
                            $erreur .= '<br />Defaut du if ligne 72';
                        }
                    }
                    else {
                      $erreur = 'Le nom de fichier existe deja recommence XD';
                      }
                  }
                  /*
              }
              else {
                  echo 'fichier pa bon non plus ^^ '; // mauvaise type mime
              }
              */
        }
        else{
            echo 'type fichier pas bon<hr />';// le in_rray, vérification sur le type mime
        }
      }// ajout ou is_uploded_file
      else {
          // cen'est pas un fichier uploader
          $erreur = 'fichier non uploader :/ ('.htmlentities($_FILES['img']['tmp_name']).')<br />';
      }
  }// fin du if ($_FILES['img']['error'] === 0) {
  else {
      $x = up_error($_FILES['img']['error'], $_FILES['img']['name']);
      if ($x[0] === false){
          $erreur = '<p style="border:1px solid red; color:red;">Erreur lors de l\'upload : '.$x[1].'</p>';
      }
 }
}
?>
<!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" lang="fr" dir="ltr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/admin.css"  type="text/css" media="screen, projection" />
    </head>
    <body>
   <?php
if(isset($erreur)){
   echo $erreur;
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<fieldset>
<legend>Ajout d'une image</legend>
                <label for="image1">Image</label>
<input type="file"  name="img"/>
<input type="text" id="url" name="url" value="http://"/>
                <label for="image1">url du site web</label>
                <button type="submit">Uploader</button>
            </fieldset>
</form>
<table summary="Liste des images de la galerie">
<caption>Liste des images</caption>
<tr>
<th>Nom</th>
<th>site web</th>
<th>Supprimer</th>
</tr>
<?php
$dir = pathinfo(__FILE__,PATHINFO_DIRNAME);
         if(!empty($_GET['sup']) && is_numeric($_GET['sup'])){
            $requeteselect = 'SELECT lienimage FROM images WHERE id=\''.mysql_real_escape_string($_GET['sup']).'\'';
            $result = mysql_query($requeteselect, $connect);
             if (mysql_num_rows($result) === 1 ){
                $image_courante = mysql_fetch_array($result,MYSQL_ASSOC);
                if (unlink($dir.DIRECTORY_SEPARATOR.$image_courante['lienimage'])) {
                    //unlink('images/'.$image_courante['lienimage']);
                    mysql_free_result($result);
                    $requetesup = 'DELETE FROM images WHERE id=\''.mysql_real_escape_string($_GET['sup']).'\'';
                    $result = mysql_query($requetesup, $connect);
                }
            }
            else {
                // erreur soit zéro soit plus d'un tuples. 
                echo 'le fichier existe pas ;)<hr />';
            }
            
         }

         $requeteselect = 'SELECT id,lienimage,url FROM images';
         $result = mysql_query($requeteselect, $connect);
         while($image_courante = mysql_fetch_array($result,MYSQL_ASSOC)){
            echo '<tr>
                  <td>'.$image_courante['lienimage'].'</td>
                  <td>'.stripslashes($image_courante['url']).'</td>
                  <td><a href="?sup='.$image_courante['id'].'">Supprimer</a></td>
            </tr>';
         }
         mysql_free_result($result);
         mysql_close($connect);
         ?>
</table>
</body>
</html>
dit moi quand il c'est en ligne que je puisse regarder ;)

Pour info le bazrad avec les tableaux au début me permet de mettre le même code partout (normalement y a un fichier ini mais j'ai simplifié ;) )


@+

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 01 juil. 2011, 13:37

mais en local ça marche j'ai pas de probléme au niveau du else

Re: probléme d'enregistrement vide dans ma base de données

par moogli » 01 juil. 2011, 12:47

rapide, 1 test => Le fichier a pas �tait upload�e Pas d'erreur
ce message est créer ligne 78 (pour moi) il s'agit du else qui va avec le if(move_uploaded_file(....)) active le rapport d'erreur il y a fort a parier que tu ai un message d'erreur (move_uploaded_file ne retourne pas false sans raisons ;) )

première ligne de admin.php


@+

Re: probléme d'enregistrement vide dans ma base de données

par sidomed » 01 juil. 2011, 12:07

tuteur que dalle oui, il s'est méme pas ce que c'est que le php, et c'est un site ou plusieur gens sont passé dessue, je peut te garantir que c'est le bordel
je te file le lien pour voir

http://www.tvamiens.com/modules/mod_joomvideo/test
tu trouvera le contenue de mes script

Re: probléme d'enregistrement vide dans ma base de données

par moogli » 01 juil. 2011, 12:03

le log seul ovh peux te le dire (en général c'est un fichier à la racine ou dans un répertoire de l'espace web alloué).

je pense que joomla doit bien avoir des composant pour faire ce que tu veux, l'avantage c'est ça sera intégré au reste.

si tu est en stage tu devrais avoir un "tuteur" qui devrais pouvoir t'aider un minimum ?

pour le fonctionnement au pire file le lien (en ligne) que je test. mais faut ajouter un ini_set('error_reporting',E_ALL|E_STRICT); en 1ere ligne du script !

@+