Page 1 sur 2

probleme d'upload d'images

Posté : 09 sept. 2005, 19:28
par munich
bonjour,
je débute en php, je suis en train de faire un site avec une interface admin pour charger des photos. J'ai utilisé un code trouvé dans un bouquin mais celui ci ne fonctionne pas, j'aimerais que la photo se copie dans le dossier images/tish et qu'elle soit de la forme tisha + ID
Pouvez-vous m'aider
<?php require_once('../Connections/toaster.php'); ?>
<?php
$colname_rsrecuptish = "1";
if (isset($HTTP_GET_VARS['tishref'])) {
  $colname_rsrecuptish = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['tishref'] : addslashes($HTTP_GET_VARS['tishref']);
}
mysql_select_db($database_toaster, $toaster);
$query_rsrecuptish = sprintf("SELECT * FROM tish WHERE `ref` = '%s'", $colname_rsrecuptish);
$rsrecuptish = mysql_query($query_rsrecuptish, $toaster) or die(mysql_error());
$row_rsrecuptish = mysql_fetch_assoc($rsrecuptish);
$totalRows_rsrecuptish = mysql_num_rows($rsrecuptish);

session_start();
//init des variables
if(!isset($HTTP_SESSION_VARS['statut'])) $statut=""; else $statut=$HTTP_SESSION_VARS['statut'];
if(!isset($HTTP_SESSION_VARS['log'])) $log=""; else $log=$HTTP_SESSION_VARS['log'];
if(!isset($HTTP_GET_VARS['logout'])) $logout=""; else $logout=$HTTP_GET_VARS['logout'];
if(!isset($HTTP_POST_VARS['modifTish'])) $modifTish="non"; else $modifTish=$HTTP_POST_VARS['modifTish'];
if(!isset($HTTP_POST_VARS['auteur'])) $auteur=""; else $auteur=$HTTP_POST_VARS['auteur'];
if(!isset($HTTP_POST_VARS['ID'])) $ID=""; else $ID=$HTTP_POST_VARS['ID'];
if(!isset($HTTP_POST_VARS['ref'])) $ref=""; else $ref=$HTTP_POST_VARS['ref'];
if(!isset($HTTP_POST_VARS['taille'])) $taille=""; else $taille=$HTTP_POST_VARS['taille'];
if(!isset($HTTP_POST_VARS['prix'])) $prix=""; else $prix=$HTTP_POST_VARS['prix'];
if(!isset($HTTP_POST_VARS['description'])) $description=""; else $description=$HTTP_POST_VARS['description'];
if(!isset($HTTP_POST_FILES['tisha'])) $tisha=""; else $tisha=$HTTP_POST_FILES['tisha'];
if(!isset($HTTP_POST_FILES['tishb'])) $tishb=""; else $tishb=$HTTP_POST_FILES['tishb'];
if(!isset($HTTP_POST_FILES['tishc'])) $tishc=""; else $tishc=$HTTP_POST_FILES['tishc'];
if(!isset($HTTP_POST_VARS['nom'])) $nom=""; else $nom=$HTTP_POST_VARS['nom'];
if(!isset($HTTP_POST_VARS['coul'])) $coul=""; else $coul=$HTTP_POST_VARS['coul'];
//----------------------------
if ($logout=="ok") 
{
$HTTP_SESSION_VARS['statut']="";//efface le statut
header("Location: login.php");
}
if ($statut != "admin")
{ header("Location: login.php");
}
?>
<?php
if ($modifTish=="ok")
	{
//---Mise à jour dans la base
	mysql_select_db($database_toaster, $toaster);
	$updatetish = "UPDATE tish SET ref='$ref', nom='$nom', coul='$coul', auteur='$auteur', ID='$ID', taille='$taille', prix='$prix', description='$description' ";
	if ($tisha!="") 
	{$updatetish .= ", tisha='$tisha'";}
	$updatetish .= "WHERE ref='$ref' ";
	
	mysql_query($updatetish, $toaster) or die(mysql_error()); 
//----Gestion de la tisha de l'article si elle a était modifiée
if ($tisha!="")
	{
	copy($tisha,'../images/tish/'.$tisha_name);
    }
//----Redirection vers l'écran de Gestion des articles
	header("Location: tishgestion.php");
	}
?>
<html><!-- InstanceBegin template="/Templates/modeladmin.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Document sans titre</title>
<!-- InstanceEndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>

<body>

<center>
<form name="form1" method="post" action="">
  <select name="select">
      <option value="tishajout.php">ajout tish</option>
      <option value="tishfajout.php">ajout tish f</option>
      <option value="stickajout.php">ajout acc</option>
      <option value="newsajout.php">ajout news</option>
      <option value="sweatajout.php">ajout sweat</option>
      <option value="toyzajout.php">ajout toyz</option>
      <option value="artistajout.php">ajout artist</option>
      <option>Interfac administrateur</option>
    </select>
</form>

<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login : <?php echo $log ?> 
  - Logout : <?php echo "<a href=\"".$HTTP_SERVER_VARS['PHP_SELF']."?logout=ok\">" ?><img src="clic.gif" width="14" height="13" border="0" align="absmiddle"> 
  </a> </font>
<table width="800" height="875" border="0" cellpadding="0" cellspacing="0">
  <tr> <!-- InstanceBeginEditable name="modifadmin" --> 
      <td align="center" valign="top"> <p><strong><font color="#990000" size="5">Modification 
          tish</font></strong></p>
        <form action="" method="post" enctype="multipart/form-data" name="form2">
          <table width="589" border="0" cellspacing="0" cellpadding="0">
            <tr> 
              <td width="66" height="22">ref</td>
              <td width="179"><input name="ref" type="text" id="ref" value="<?php echo $row_rsrecuptish['ref']; ?>"></td>
              <td width="344" rowspan="11" valign="top"><p><img src="../images/tish/<?php echo $row_rsrecuptish['tisha']; ?>" alt="" name="tisha" id="tisha"></p>
                <p><img src="../images/tish/<?php echo $row_rsrecuptish['tishb']; ?>" alt="" name="tishb" id="tishb"></p>
                <p><img src="../images/tish/<?php echo $row_rsrecuptish['tishc']; ?>" alt="" name="tishc" id="tishc"></p></td>
            </tr>
            <tr> 
              <td>nom</td>
              <td><input name="nom" type="text" id="nom" value="<?php echo $row_rsrecuptish['nom']; ?>"></td>
            </tr>
            <tr> 
              <td>coul</td>
              <td><input name="coul" type="text" id="coul" value="<?php echo $row_rsrecuptish['coul']; ?>"></td>
            </tr>
            <tr> 
              <td>auteur</td>
              <td><input name="auteur" type="text" id="auteur" value="<?php echo $row_rsrecuptish['auteur']; ?>"></td>
            </tr>
            <tr> 
              <td>prix</td>
              <td><input name="prix" type="text" id="prix2" value="<?php echo $row_rsrecuptish['prix']; ?>"></td>
            </tr>
            <tr> 
              <td>taille</td>
              <td> 
                <textarea name="taille" cols="50" rows="10" id="taille"><?php echo $row_rsrecuptish['taille']; ?></textarea></td>
            </tr>
            <tr> 
              <td>description</td>


Quand je vais sur la page et que j'essaie de modifier la photo j'arrive à ce message d'erreur :

Notice: Undefined variable: tisha_name in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 54

Notice: Array to string conversion in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 54

Warning: copy(Array): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 54

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php:54) in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 57


Merci d'avance

Posté : 09 sept. 2005, 19:49
par Cyrano
Il y a pas mal de choses à dire sur ce beau code made in DreamWeaver... le rendre lisible serait un + ... Enfin bon. Déjà, tu n'as pas mis le sessin_start() au début, les variables de session ne doivent pas avoir une grosse valeur dans ces conditions.

Ensuite, tu utilises des formulation de variables super-globales désuetes voire obsolètes du genre $HTTP_GET_VARS que tu peux avantageusement remplacer par $_GET tout simplement.

J'ai corrigé le plus flagrant : ton erreurde variable indéfinie vient de ce que tu essayes d'utiliser une variable inexistante : ticha_name au lieu de tisha['name'] C'est un tableau associatif et non une chaine de caractères.

Proposition de correction, il reste probablement un ou deux détails à ajuster :
<?php
session_start();
require_once('../Connections/toaster.php');
$colname_rsrecuptish = "1";
if (isset($_GET['tishref']))
{
    $colname_rsrecuptish = (get_magic_quotes_gpc()) ? $_GET['tishref'] : addslashes($_GET['tishref']);
}
mysql_select_db($database_toaster, $toaster);
$query_rsrecuptish = sprintf("SELECT * FROM tish WHERE `ref` = '%s'", $colname_rsrecuptish);
$rsrecuptish = mysql_query($query_rsrecuptish, $toaster) or die(mysql_error());
$row_rsrecuptish = mysql_fetch_assoc($rsrecuptish);
$totalRows_rsrecuptish = mysql_num_rows($rsrecuptish);

session_start();
//init des variables
if(!isset($_SESSION['statut']))   $statut="";       else $statut      = $_SESSION['statut'];
if(!isset($_SESSION['log']))      $log="";          else $log         = $_SESSION['log'];
if(!isset($_GET['logout']))       $logout="";       else $logout      = $_GET['logout'];
if(!isset($_POST['modifTish']))   $modifTish="non"; else $modifTish   = $_POST['modifTish'];
if(!isset($_POST['auteur']))      $auteur="";       else $auteur      = $_POST['auteur'];
if(!isset($_POST['ID']))          $ID="";           else $ID          = $_POST['ID'];
if(!isset($_POST['ref']))         $ref="";          else $ref         = $_POST['ref'];
if(!isset($_POST['taille']))      $taille="";       else $taille      = $_POST['taille'];
if(!isset($_POST['prix']))        $prix="";         else $prix        = $_POST['prix'];
if(!isset($_POST['description'])) $description="";  else $description = $_POST['description'];
if(!isset($_FILES['tisha']))      $tisha="";        else $tisha       = $_FILES['tisha'];
if(!isset($_FILES['tishb']))      $tishb="";        else $tishb       = $_FILES['tishb'];
if(!isset($_FILES['tishc']))      $tishc="";        else $tishc       = $_FILES['tishc'];
if(!isset($_POST['nom']))         $nom="";          else $nom         = $_POST['nom'];
if(!isset($_POST['coul']))        $coul="";         else $coul        = $_POST['coul'];
//----------------------------
if ($logout=="ok")
{
    $_SESSION['statut']="";//efface le statut
    header("Location: login.php");
}
if ($statut != "admin")
{
    header("Location: login.php");
}
if ($modifTish=="ok")
{
    //---Mise à jour dans la base
    mysql_select_db($database_toaster, $toaster);
    $updatetish = "UPDATE tish SET ref='". $ref ."', nom='". $nom ."', coul='". $coul ."', auteur='". $auteur ."', ID='". $ID ."', taille='". $taille ."', prix='". $prix ."', description='". $description ."' ";
    if ($tisha!="")
    {
        $updatetish .= ", tisha='". $tisha ."'";
    }
    $updatetish .= "WHERE ref='". $ref ."' ";

    mysql_query($updatetish, $toaster) or die(mysql_error());
    //----Gestion de la tisha de l'article si elle a était modifiée
    if ($tisha!="")
    {
        copy($tisha,'../images/tish/'.$tisha['name']);
    }
    //----Redirection vers l'écran de Gestion des articles
    header("Location: tishgestion.php");
}
?>
<html><!-- InstanceBegin template="/Templates/modeladmin.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Document sans titre</title>
<!-- InstanceEndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<center>
<form name="form1" method="post" action="">
  <select name="select">
      <option value="tishajout.php">ajout tish</option>
      <option value="tishfajout.php">ajout tish f</option>
      <option value="stickajout.php">ajout acc</option>
      <option value="newsajout.php">ajout news</option>
      <option value="sweatajout.php">ajout sweat</option>
      <option value="toyzajout.php">ajout toyz</option>
      <option value="artistajout.php">ajout artist</option>
      <option>Interfac administrateur</option>
    </select>
</form>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login : <?php echo $log ?>
  - Logout : <?php echo "<a href=\"".$HTTP_SERVER_VARS['PHP_SELF']."?logout=ok\">" ?><img src="clic.gif" width="14" height="13" border="0" align="absmiddle">
  </a> </font>
<table width="800" height="875" border="0" cellpadding="0" cellspacing="0">
  <tr> <!-- InstanceBeginEditable name="modifadmin" -->
      <td align="center" valign="top"> <p><strong><font color="#990000" size="5">Modification
          tish</font></strong></p>
        <form action="" method="post" enctype="multipart/form-data" name="form2">
          <table width="589" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="66" height="22">ref</td>
              <td width="179"><input name="ref" type="text" id="ref" value="<?php echo $row_rsrecuptish['ref']; ?>"></td>
              <td width="344" rowspan="11" valign="top"><p><img src="../images/tish/<?php echo $row_rsrecuptish['tisha']; ?>" alt="" name="tisha" id="tisha"></p>
                <p><img src="../images/tish/<?php echo $row_rsrecuptish['tishb']; ?>" alt="" name="tishb" id="tishb"></p>
                <p><img src="../images/tish/<?php echo $row_rsrecuptish['tishc']; ?>" alt="" name="tishc" id="tishc"></p></td>
            </tr>
            <tr>
              <td>nom</td>
              <td><input name="nom" type="text" id="nom" value="<?php echo $row_rsrecuptish['nom']; ?>"></td>
            </tr>
            <tr>
              <td>coul</td>
              <td><input name="coul" type="text" id="coul" value="<?php echo $row_rsrecuptish['coul']; ?>"></td>
            </tr>
            <tr>
              <td>auteur</td>
              <td><input name="auteur" type="text" id="auteur" value="<?php echo $row_rsrecuptish['auteur']; ?>"></td>
            </tr>
            <tr>
              <td>prix</td>
              <td><input name="prix" type="text" id="prix2" value="<?php echo $row_rsrecuptish['prix']; ?>"></td>
            </tr>
            <tr>
              <td>taille</td>
              <td>
                <textarea name="taille" cols="50" rows="10" id="taille"><?php echo $row_rsrecuptish['taille']; ?></textarea></td>
            </tr>
            <tr>
              <td>description</td>

merci merci

Posté : 09 sept. 2005, 21:04
par munich
pour ce qui est du codage made in dreamweaver, c'est presque ça....
En fait je dois faire une boutique en ligne pour dans très peut de temps avec un paiement sur paypal, ne connaissant rien au php (sauf éventuellement depuis 2 semaines) j'ai acheter un bouquin dreamweaver/PHP/MySQM
de Jean Marie de France aux éditions Eyrolles... Visiblement il est dépassé depuis un moment vu ce que tu me dis.
Je vais essayer de remédier à ce problème, mais la solitude du jeune PHP sauf depuis que je connais le forum m'a conduit à prendre des raccourcis rapide

P.S. Si vous avez des conseils de lecture PHP, assez simple je suis preneur, ou des sites
...
Merci beaucoup en tout cas

++

Posté : 09 sept. 2005, 21:11
par HD
pourquoi tu n'essaie pas oscommerce ? (google)

Posté : 09 sept. 2005, 21:23
par Cyrano
pourquoi tu n'essaie pas oscommerce ? (google)
Parce qu'il faudrait rentrer dans le code pour le modifier: pour fonctionner, oscommerce nécessite un register_globals à ON :tir2:

Pour les conseils de lecture, disons qu'une bible PHP de chez MicroApplication ne nuirait pas, sinon, PHP 5 Avancé par notre admin Cyruss, chez Eyrolles aussi. Quant aux liens, tu as PHPFrance bien entendu qui outre le forum a aussi quelques tutos pratiques, ou encore phpDebutant avec une suite de tutos très bien conçus à faire dans l'ordre si tu ne connais pas grand chose au PHP.

question sans doute stupide

Posté : 09 sept. 2005, 21:27
par munich
Je ne sais pas ce qu'est OScommerce ?
SI vous pouvez m'éclairer....

Merci

Posté : 09 sept. 2005, 21:32
par Cyrano
C'est un script tout prêt de magasin en ligne: à ce compte là, je te recommande plutôt ZenCart qui coté sécurité est mieux fait : c'est libre et gratuit au téléchargement (les deux) et il te reste à aménager l'interface graphique pour l'adapter pour ton client.
- oscommerce
- Zencart

ENcore quelques questions

Posté : 09 sept. 2005, 21:43
par munich
A vrai dire, je pensais avoir preque fini avec le site, mais aux vues de vos derniers commentaires il y a beaucoup a redire.
Le problème qui se pose est que j'ai déjà l'interface graphique, les pages en dehors du magasin et je pense avoir bien avancé, du coup j'ai peur de repartir de zéro, sachant que je ne maitrise que dreamweaver et encore je pense qu'il me reste pas mal de choses à apprendre....
Que me conseillez-vous :
continuer sur mon magasin en ligne
ou bien passer sur oscommerce ou zencart ?

Ma base de données est terminée, et les pages en dehors du magasin sont en lien avec celle-ci (news, annuraire, goldboook...)
C'est pourquoi j'ai peur d'en reprendre pour 2 ans (lol) et dans l'immédiat mon souci est la rapidité (j'aimerais avoir fini dans une semaine ou deux... a plein temps)

Merci encore pour votre soutien :D

Posté : 09 sept. 2005, 22:02
par Cyrano
Il faudrait que tu sois pas mal avancé en PHP pour arriver à faire le tour d'un de ces deux scripts pour arriver à transférer ton interface dessus: dons si tu n'as plus trop de temps, termine ce que tu as commencé, ce sera plus facile pour te repérer. D'autant que oscommerce comme zencart sont quand même des usines à gaz avec des bases de données de plus ou moins 100 tables. C'est en général assez complet mais terriblement complexe. Personnellement, je ne m'y risquerai même pas.

Mais ça dépend bien sûr de ton degré d'avancement dans le projet et des niveaux de difficultés auxquels tu te heurtes.

Posté : 09 sept. 2005, 22:27
par HD
Personnellement, je ne m'y risquerai même pas.
arf :shock: je te retire tout de suite ton diplome ! tu l'as meme pas gardé 24h !

a propos de zencart (qui m'a bcp interessé car je ne le connaissait pas) c'est possible de l'adapter selon l'interface de ton site : http://www.zen-cart.com/modules/xoopsfa ... at_id=3#14
j'ai pas verifié pour oscommerce mais ca doit se faire aussi
mais peu importe ton choix final, tu devra de toute facon te mettre serieusement au php car
En fait je dois faire une boutique en ligne pour dans très peut de temps avec un paiement sur paypal,
sans connaissances suffisantes t'aura bien du mal :?

difficultés et besoins

Posté : 09 sept. 2005, 22:32
par munich
Re:
Concrètement j'ai lancé une petite marque de vêtements et j'ai besoin d'avoir en ligne le plus rapidement possible un magasin très simple avec un bouton acheter qui amène vers paypal qui se charge du panier et du paiement, je lui envoie juste un formulaire avec la référence, le prix, la taille... Paypal me renvoie un mail avec l'adresse de la personne et les références du produit acheté.
J'ai donc fait une interface avec le reste de mes pages, et une interface administrateur pour rajouter des produits, des news...
Il me reste la partie du magasin (admin) à terminer, les tables sont prêtes et fonctionnent, je bloque sur les pages d'ajout de produit à la base, et modification de produit (code précédent)...
Toutes les pages du magasin fonctionnent sur le même principe donc je pensais pouvoir le dupliquer.
Après je me pose pas mal de question quant à la sécurité, mon interface admin est vérouillée par un mot de passe et un login mais pas les pages accessibles au public contiennent des formulaires de saisie sans protection qui m'inquiétent (à tort ou à raison).
Voici la version préliminare mise en ligne : http://ns31881.ovh.net/~toasterf/toaster/tish.php
je n'ai mis qu'une toute petite partie du site en ligne

d'autres part, pour le code de la fenêtre ci dessus,
en local j'ai un message d'erreur qui m'affiche :

Notice: Array to string conversion in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 56

Warning: copy(Array): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 56

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php:56) in c:\program files\easyphp1-8\www\toaster\admin\tishmodif.php on line 59

Je ne sais pas quoi modifier

Note : j'ai recopié le code renvoyé

Posté : 09 sept. 2005, 23:36
par Cyrano
Personnellement, je ne m'y risquerai même pas.
arf :shock: je te retire tout de suite ton diplome ! tu l'as meme pas gardé 24h !
Trop tard, il est imprimé à coté de moi,je garde ce morceau d'anthologie :langue:

Plus sérieusement, je n'aime en général pas les scripts tout fait qui ne s'installent pas sur ma machine sans la moindre correction. En outre, adaptr une interface là-dessus n'est pas facile dans on ne connait pas le script et il faut un certain temps pour se familiariser avec ça. C'est pour ça que je suis en train de développer mon propre script. Moins gros, peut-être moins sophistiqué, mais avec du code propre. Par contre, il est loin d'être terminé et il ne sera pas gratuit.

Posté : 09 sept. 2005, 23:49
par HD
C'est pour ça que je suis en train de développer mon propre script. Moins gros, peut-être moins sophistiqué, mais avec du code propre. Par contre, il est loin d'être terminé et il ne sera pas gratuit.
un scoop (mais un peu decevant quand meme)
eh les mecs : CYRANO A TRAHI LA COMMUNAUTE FREE & OPEN-SOURCE :cry:
munich : pour qu'on puisse t'aider, donne nous les lignes 53 à 60 car ton code est trop long

suite du problème....

Posté : 10 sept. 2005, 11:05
par munich
Bonjour,

voici les lignes mises en cause soit les lignes 44 à 57
 mysql_select_db($database_toaster, $toaster);
    $updatetish = "UPDATE tish SET ref='$ref', nom='$nom', coul='$coul', auteur='$auteur', ID='$ID', taille='$taille', prix='$prix', description='$description' ";
    if ($tisha!="")
    {$updatetish .= ", tisha='$tisha'";}
    $updatetish .= "WHERE ref='$ref' ";
    
    mysql_query($updatetish, $toaster) or die(mysql_error());
//----Gestion de la tisha de l'article si elle a était modifiée
if ($tisha!="")
    {
    copy($tisha,'../images/tish/'.$tisha_name);
    } 

dans mon formulaire j'ai un champ fichier ou je vais chercher un photo sur mo disque dur et elle doit se copier dans le fichier images/tish/ du site sous le nom du fichier jpg et se rajouter à la base ou modifier son nom dans la base de données si besoin
Je pense pas que ce soit compliqué mais j'y arrive pas....

Merci d'avance

Posté : 10 sept. 2005, 11:21
par jeff
salut
d'apres ce que je vois,je pense que $tisha est un tableau (y a un truc qui me chifonne je ne vois pas la partie d'upload dans ton code)
essaye
$tisha['name']
sinon va voir du coté des tutos tu a le code pour faire ce que tu veut :wink: