ajout ou changement de champ

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

ajout ou changement de champ

Message le Ven Oct 27, 2006 7:13

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: Tout sélectionner
<?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: Tout sélectionner
<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>


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Ven Oct 27, 2006 7:40

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)

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Ven Oct 27, 2006 15:24

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

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Mer Nov 01, 2006 10:32

j ai ajouté un autre champ banner_url2 à chaque ligne de la page ou j avais banner_url dans join.php

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


code ajouté
Code: Tout sélectionner
    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: Tout sélectionner
$TMPL['banner_url'] = $DB->escape($FORM['banner_url'], 1);


code ajouté
Code: Tout sélectionner

$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: Tout sélectionner
<label>{$lng->g_banner_url}<br />
<input type="text" name="banner_url" size="50" value="http://" /><br /><br />
</label>


code ajouté

Code: Tout sélectionner
<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

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Sam Nov 11, 2006 13:46

plus de nouvelle

oxman
WRInaute discret
WRInaute discret
 
Messages: 118
Inscription: 21 Juin 2004

Message le Sam Nov 11, 2006 14:26

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à =)

oxman
WRInaute discret
WRInaute discret
 
Messages: 118
Inscription: 21 Juin 2004

Message le Sam Nov 11, 2006 14:40

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)

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Lun Nov 13, 2006 20:08

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

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Lun Nov 20, 2006 17:29

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à =)

c'est passé lundi je n'ai plus de nouvelle


pmadfm
WRInaute discret
WRInaute discret
 
Messages: 63
Inscription: 22 Jan 2006

Message le Lun Fév 12, 2007 20:06

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.

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Mar Fév 13, 2007 18:10

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


pmadfm
WRInaute discret
WRInaute discret
 
Messages: 63
Inscription: 22 Jan 2006

Message le Mer Fév 14, 2007 2:04

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: Tout sélectionner
$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]

virginie2
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 27 Oct 2006

Message le Sam Fév 17, 2007 12:21

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités