ajout ou changement de champ

Nouveau WRInaute
bonjour j utilise un script de top site . son nom atsphp-5.1.2 anglais
j aimerai ajouter ou changer un champ à l interieur . Celui de la banniere .
Dans le script lorsqu une personne s enregistre elle dois donner l url de ça banniere. cette url est enregistre dans la base de donnée et pas l image de la banniere . moi ce que j aimerai c est de uploadé l image de la renomer et de l enregistrer sur mon serveur dans un dossier .

Dans ma base de donnée j aimerai enregistrer le chemin qui mene au dossier ou à ete enregisté la banniere corespondant au site qui c est enregistre

se script et composé de deux fichier qui se combine ensemble join.php et join_form.html meme un petit aide de rien du tous me ferai plaisir car je suis debutant et je suis coinçé depuis un moment mon site reposera une parti sur se script encore merci de bien vouloir m aider
voici le fichier join.php

Code:
<?php 
//===========================================================================\\ 
// Aardvark Topsites PHP 5                                                   \\ 
// Copyright (c) 2003-2006 Jeremy Scheff.  All rights reserved.              \\ 
//---------------------------------------------------------------------------\\ 
// http://www.aardvarktopsitesphp.com/                http://www.avatic.com/ \\ 
//---------------------------------------------------------------------------\\ 
// This program is free software; you can redistribute it and/or modify it   \\ 
// under the terms of the GNU General Public License as published by the     \\ 
// Free Software Foundation; either version 2 of the License, or (at your    \\ 
// option) any later version.                                                \\ 
//                                                                           \\ 
// This program is distributed in the hope that it will be useful, but       \\ 
// WITHOUT ANY WARRANTY; without even the implied warranty of                \\ 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General \\ 
// Public License for more details.                                          \\ 
//===========================================================================\\ 

if (!defined('ATSPHP')) { 
  die("This file cannot be accessed directly."); 
} 

class join extends join_edit { 
  function join() { 
    global $FORM, $LNG, $TMPL; 

    $TMPL['header'] = $LNG['join_header']; 

    if (!isset($FORM['submit'])) { 
      $this->form(); 
    } 
    else { 
      $this->process(); 
    } 
  } 

  function form() { 
    global $CONF, $FORM, $LNG, $TMPL; 

    if ($CONF['captcha']) { 
      $TMPL['join_captcha'] = $this->do_skin('join_captcha'); 
    } 
    else { 
      $TMPL['join_captcha'] = ''; 
    } 

    $TMPL['categories_menu'] = "<select name=\"category\">\n"; 
    foreach ($CONF['categories'] as $cat => $skin) { 
      if ($TMPL['category'] == $cat) { 
        $TMPL['categories_menu'] .= "<option value=\"{$cat}\" selected=\"selected\">{$cat}</option>\n"; 
      } 
      else { 
        $TMPL['categories_menu'] .= "<option value=\"{$cat}\">{$cat}</option>\n"; 
      } 
    } 
    $TMPL['categories_menu'] .= "</select>"; 

    if (!isset($TMPL['url'])) { $TMPL['url'] = 'http://'; } 
    if (!isset($TMPL['banner_url'])) { $TMPL['banner_url'] = 'http://'; } 

    if (isset($TMPL['url'])) { $TMPL['url'] = stripslashes($TMPL['url']); } 
    if (isset($TMPL['title'])) { $TMPL['title'] = stripslashes($TMPL['title']); } 
    if (isset($TMPL['description'])) { $TMPL['description'] = stripslashes($TMPL['description']); } 
    if (isset($TMPL['category'])) { $TMPL['category'] = stripslashes($TMPL['category']); } 
    if (isset($TMPL['banner_url'])) { $TMPL['banner_url'] = stripslashes($TMPL['banner_url']); } 
    if (isset($TMPL['email'])) { $TMPL['email'] = stripslashes($TMPL['email']); } 

    $TMPL['content'] = $this->do_skin('join_form'); 
  } 

  function process() { 
    global $CONF, $DB, $FORM, $LNG, $TMPL; 

    $TMPL['username'] = $DB->escape($FORM['u'], 1); 
    $TMPL['url'] = $DB->escape($FORM['url'], 1); 
    $TMPL['title'] = $DB->escape($FORM['title'], 1); 
    $FORM['description'] = str_replace(array("\r\n", "\n", "\r"), ' ', $FORM['description']); 
    $TMPL['description'] = $DB->escape($FORM['description'], 1); 
    $TMPL['category'] = $DB->escape($FORM['category'], 1); 
    $TMPL['banner_url'] = $DB->escape($FORM['banner_url'], 1); 
    $TMPL['email'] = $DB->escape($FORM['email'], 1); 

    $TMPL['title'] = $this->bad_words($TMPL['title']); 
    $TMPL['description'] = $this->bad_words($TMPL['description']); 

    if ($this->check_input('join')) { 
      $password = md5($FORM['password']); 

      require_once("{$CONF['path']}/sources/in.php"); 
      $short_url = in::short_url($TMPL['url']); 

      $join_date = date('Y-m-d', time() + (3600*$CONF['time_offset'])); 

      $DB->query("INSERT INTO {$CONF['sql_prefix']}_sites (username, password, url, short_url, title, description, category, banner_url, email, join_date, active, openid) 
                  VALUES ('{$TMPL['username']}', '{$password}', '{$TMPL['url']}', '{$short_url}', '{$TMPL['title']}', '{$TMPL['description']}', '{$TMPL['category']}', '{$TMPL['banner_url']}', '{$TMPL['email']}', '{$join_date}', {$CONF['active_default']}, 0)", __FILE__, __LINE__); 
      $DB->query("INSERT INTO {$CONF['sql_prefix']}_stats (username) VALUES ('{$TMPL['username']}')", __FILE__, __LINE__); 

      if ($CONF['google_friendly_links']) { 
        $TMPL['verbose_link'] = ""; 
      } 
      else { 
        $TMPL['verbose_link'] = "index.php?a=in&u={$TMPL['username']}"; 
      } 
      $TMPL['link_code'] = $this->do_skin('link_code'); 

      $LNG['join_welcome'] = sprintf($LNG['join_welcome'], $TMPL['list_name']); 

      if ($CONF['active_default']) { 
        $TMPL['approve_message'] = ''; 
      } 
      else { 
        $TMPL['approve_message'] = $LNG['join_approve']; 
      } 

      $join_email = new skin('join_email'); 
      $join_email->send_email($TMPL['email']); 

      if ($CONF['email_admin_on_join']) { 
        $join_email_admin = new skin('join_email_admin'); 
        $join_email_admin->send_email($CONF['your_email']); 
      } 

      $TMPL['content'] = $this->do_skin('join_finish'); 
    } 
    else { 
      $this->form(); 
    } 
  } 
} 
?>

et en dessous le formulaire join_form.html se script sous LICENSE GNU

Code:
<form action="index.php?a=join" method="post" name="join_form"> 
<fieldset> 
<legend>{$lng->join_user}</legend> 
<div class="{$error_style_username}"><label>{$lng->g_username}<br /> 
<input type="text" name="u" size="20" value="{$username}" /> 
{$error_username} 
</label></div><br /> 
<div class="{$error_style_password}"><label>{$lng->g_password}<br /> 
<input type="password" name="password" size="20" value="{$password}" /> 
{$error_password} 
</label></div> 
</fieldset> 

<fieldset> 
<legend>{$lng->join_website}</legend> 
<div class="{$error_style_url}"><label>{$lng->g_url}<br /> 
<input type="text" name="url" size="50" value="{$url}" /> 
{$error_url} 
</label></div><br /> 
<div class="{$error_style_title}"><label>{$lng->g_title}<br /> 
<input type="text" name="title" size="50" value="{$title}" /> 
{$error_title} 
</label></div><br /> 
<label>{$lng->g_description}<br /> 
<textarea cols="40" rows="5" name="description">{$description}</textarea><br /><br /> 
</label> 
<label>{$lng->g_category}<br /> 
{$categories_menu}<br /><br /> 
</label> 
<div class="{$error_style_banner_url}"><label>{$lng->g_banner_url}<br /> 
<input type="text" name="banner_url" size="50" value="{$banner_url}" /> 
{$error_banner_url} 
</label></div><br /> 
<div class="{$error_style_email}"><label>{$lng->g_email}<br /> 
<input type="text" name="email" size="50" value="{$email}" /> 
{$error_email} 
</label></div><br /> 
{$join_captcha} 
<input name="submit" type="submit" value="{$lng->join_header}" /> 
</fieldset> 
</form>
 
WRInaute accro
ton site a une id dans ta base, donc pas besoin d enregistrer le chemin de l'image, tu l'appelle $id.gif par exemple, et tu les stocke toutes dans le meme repertoire (ex : /donnees/site/baniere/".$id_site.".gif). du coup tu n'a jsute à implementer à l'aide d'un champ "file" la copie de l'image sur ton serveur (google -> php uploader image)
 
Nouveau WRInaute
je debute
peus tu etre plus claire je fais quoi ? et je met ou ?
je crais un repertoire et je change le bouton d envoi c est ça
 
Nouveau WRInaute
j ai ajouté un autre champ banner_url2 à chaque ligne de la page ou j avais banner_url dans join.php

Code:
avant
if (!isset($TMPL['banner_url'])) { $TMPL['banner_url'] = 'http://'; }

code ajouté
Code:
    if (!isset($TMPL['banner_url2'])) { $TMPL['banner_url2']= '$banner_url2';}

a la place de $banner_url2' j ai mis ça ' ' ou banner_url2'

code avant
Code:
$TMPL['banner_url'] = $DB->escape($FORM['banner_url'], 1);

code ajouté
Code:
$TMPL['banner_url2'] = $DB->escape($FORM['banner_url2'] = $this->image($TMPL['banner_url2'], 1));

peux ton recuper la valeur du champ la traiter dans une fonction externe d upload (image) et envoyer le resultat du traitement dans la base de donée

dans join_form.html j ai ajouter ça

code avant
Code:
<label>{$lng->g_banner_url}<br />
<input type="text" name="banner_url" size="50" value="http://" /><br /><br />
</label>

code ajouté

Code:
<label>{$lng->g_banner_url2}<br />
<input type="file" name="banner_url2" size="50" value="$banner_url2" /><br /><br />
</label>
et dans le champ <form action="index.php?a=join" method="post" enctype="multipart/form-data" />

j ai ajouté enctype="multipart/form-data"

mais j ai une erreur
Undefined index: banner_url2 in c:\program files\easyphp1-8\www\topsite\atsphp-5.0.3\sources\join.php on line 96
wrapper.html
pouvez vous me dire pourquoi j ai une erreur
 
WRInaute discret
Je regarderais ça un peu plus tard, au pire lundi tu devrais avoir une solution de ma part, un peu la flemme de tout lire là =)
 
WRInaute discret
e-kiwi a en effet une bonne solution.

Après : $DB->query("INSERT INTO

Tu mets :
$id = mysql_insert_id($DB->connection);
copy($TMPL['url'], "/repertoire/que/tu/veux/".$id.substr($TMPL['url'], -4));

Cependant, je ne suis pas sur que la valeur $id soit correcte en procédant ainsi. Donc vérifie =)

Les images de tes bannières seront donc accessibles avec "id.extension" de la bannière. (extension : gif, jpg, etc)
 
Nouveau WRInaute
alors j'ajoute ça et puis apres j'atoute quoi

$id = mysql_insert_id($DB->connection);
copy($TMPL['url'], "/repertoire/que/tu/veux/".$id.substr($TMPL['url'], -4));

merci pour votre aide sympa à vous
 
Nouveau WRInaute
Bonjour,

Je viens de voir ton post et peut être est il un peu tard.

Toutefois je vais répondre quand même.

En fait ce que voulait dire e-kiwi :
C'est que comme tu as un ID et d'ailleurs ce n'eest pas ID mais username, il te suffit de coder le nom de l'image avec le username puis ton extension.

Exemple un username="pmadfm" te donnerais une image pmadfm.gif.
Sachant qu'un username est unique.

J'ai moi même un Topsites http://www.01-topsites.com pour ne pas le citer et j'ai presque tout réécrit dedans, non pas pour un problème de qualité mais pour ajouter des services supplémentaires, je peux dire que je connais assez bien l'application.

Or je te déconseille vivement de stocker sur ton serveur l'image des membres, sinon tu va exploser ton serveur en terme de bande passante.

En revanche pour le redimensionnement il te suffit de coder des heigth et des width sur tes programmes et le tour est joué.

De plus dans l'admin tu peux également préciser la taille maximum que tu autorise pour les bannières.

Mais attention si tu stock tu risque d'exploser, a titre d'exemple j'ai plus de 730 000 affichage du bouton de stats et donc de calcul et de mise à jour des bases chaque jour, je peux te dire que j'ai du passer en dédié et qu'il a fallut optimiser le serveur apache qui s'étouffait, alors si en plus tu ajoutes des images bonjour la bande passante.

Bon courage.
 
Nouveau WRInaute
non il n'est pas tard
j ai ete voir ton top site pour voir les services supplementaires
certaint services sont biens

mon serveur à une bande passante illimité en upload et donload
mais je ne sais pas ecrire le php le décoder oui

merci à toi
 
Nouveau WRInaute
Bonjour Virginie,

En fait je serais curieux de savoir ou tu as pris un abonnement illimité et quelles sont réllement les clauses.

Moi comme beaucoup d'autres avons signés des hébergements soit disant illimités, mais dès que la bande passante est trop attaquée, c'est simple il bloque le compte.

Sinon là tu t'attaque à gros, moi j'y ai passé des nuits, car en plus du PHP il y a le code dxhtml, les classes PHP et le tout dans un environnement complexe et enchevêtré. Si tu touche à quelque chose cela se répercute un peu partout.

Sinon sache que le TMPL est un tableau qui est originellement chargé issue de la table des paramètres du site. Aussi si tu ajoute une variable dans cette table, elle se retrouvera automatiquement dans TMPL sans aucune modification du code.

Encore une astuce, quand tu veux utiliser une variable en html par exemple le wrapper, tu peux l'appeler directement {$variable} entre bracket tu peux également mettre le nom et le chemin relatif d'un programme en php que tu aurais développé.


J'allais oublier si tu ajoute un variable dans ton forulaire n'oublie pas de l'ajouter dans la base et dans ta requête de mise à jour MySQL par exemple :
Code:
$DB->query("INSERT INTO {$CONF['sql_prefix']}_sites (username, password, url, short_url, title, description, category, banner_url, banner_url2,email, join_date, active, openid)
                  VALUES ('{$TMPL['username']}', '{$password}', '{$TMPL['url']}', '{$short_url}', '{$TMPL['title']}', '{$TMPL['description']}', '{$TMPL['category']}', '{$TMPL['banner_url']}', '{$TMPL['banner_url2']}', '{$TMPL['email']}', '{$join_date}', {$CONF['active_default']}, 0)", __FILE__, __LINE__);

Mais si tu as des besoins importants, tu peux également envisager une autre table que tu lies via la variable username. c'est ce que j'ai fait avec les fiches de présentation, d'ailleurs à peine une 20 de fiche prouvent que cete une idée louable mais que tout le monde s'en fout ou presque.
Bon courage Virigine et à bientôt.[/code]
 
Nouveau WRInaute
je suis abonnée chez haisoft.fr mais mon contrat date de deux ou trois ans
renouvelable .
Sinon là tu t'attaque à gros, moi j'y ai passé des nuits, car en plus du PHP il y a le code dxhtml, les classes PHP et le tout dans un environnement complexe et enchevêtré. Si tu touche à quelque chose cela se répercute un peu partout.

Sinon sache que le TMPL est un tableau qui est originellement chargé issue de la table des paramètres du site. Aussi si tu ajoute une variable dans cette table, elle se retrouvera automatiquement dans TMPL sans aucune modification du code
je n'ai pas compris ça
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut