probleme pour inserer une fonction dans une page pour deux champs
Pièces détachées Forum Contact

probleme pour inserer une fonction dans une page pour deux champs

Nous rachetons vos PC portables (et MAC) HS
papayou

probleme pour inserer une fonction dans une page pour deux champs

bonjour a tous

mon probleme je crois qui l'est simple pour vous et difficile pour moi
voila ce code est un plugin de mon portail .
j ai deux champs

champ 1  title
champ 2  description

je voudrai utiliser ma fonction qui est si dessous pour traiter les carcteres .

Code:

function verification($row)
{
$row = strtr( $row,"àáâãäåòóôõöøèéêëçìíîïùúûüÿñÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜÑ","aaaaaaooooooeeeeciiiiuuuuynAAAAAAOOOOOOEEEECIIIIUUUUN");
$row = strtr($row," ","_");
$row = str_replace("'","_",$row);
$row = str_replace("\"","_",$row);
$row = str_replace("&","",$row);
$row = str_replace("(","",$row);
$row = str_replace(")","",$row);
$row = str_replace("[","",$row);
$row = str_replace("]","",$row);
$row = str_replace(":","",$row);
$row = str_replace("<","",$row);
$row = str_replace(">","",$row);
$row = str_replace("\\","",$row);
$row = str_replace("/","",$row);
$row = str_replace("*","",$row);
$row = str_replace("?","",$row);
$row = str_replace("’","",$row);
$row = str_replace("«","",$row);
$row = str_replace("»","",$row);
$row = str_replace("~","",$row);
$row = str_replace("|","",$row);
$row = str_replace("`","",$row);
$row = str_replace("^","",$row);
$row = str_replace("°","",$row);
$row = str_replace("=","",$row);
$row = str_replace("+","",$row);
$row = str_replace("-","",$row);
$row = str_replace("¨","",$row);
$row = str_replace("$","",$row);
$row = str_replace("£","",$row);
$row = str_replace("¤","",$row);
$row = str_replace("%","",$row);
$row = str_replace("µ","",$row);
$row = str_replace("§","",$row);
$row = str_replace("!","",$row);
$row = str_replace(";","",$row);
$row = str_replace(".","",$row);
$row = str_replace(",","",$row);
$row = str_replace("@","",$row);
$row = str_replace("²","2",$row);
$row = str_replace(" "," ",$row);
return($row);
}

je ne sais pas comment et ou l inserer j ai fais des essais à

// Validation checks
à
// Get details from DB if Edit, otherwise set from POST data

les infos des champs title et description son bien dans la variable $row (oui ou non).
code pour utiliser ma variable

$row = verification($row);

merci pour tous votre aide

Code:

<?php

require_once("../../class2.php");
if (!getperms("P")) {
header("location:".e_BASE."index.php");
}
require_once(e_ADMIN."auth.php");
if (file_exists(e_PLUGIN."atoll/language/".e_LANGUAGE.".php")){
require_once(e_PLUGIN."atoll/language/".e_LANGUAGE.".php");
}

$debug = false;

$configtitle = ATOLL_ADMIN_00;

$atolltable = "atoll";
$categorytable = "atoll_category";
$primaryid = "id"; // first column of your table.
$e_wysiwyg = ""; // commas seperated list of textareas to use wysiwyg with.
$pageid = "media"; // unique name that matches the one used in admin_menu.php.
$show_preset = FALSE; // allow e107 presets to be saved for use in the form.

$fieldcapt[] = ATOLL_ADMIN_MEDIA_00_0;
$fieldname[] = "title";
$fieldtype[] = "text";
$fieldvalu[] = ",96%,100";
$fieldmand[] = "*";

$fieldcapt[] = ATOLL_ADMIN_MEDIA_01_0;
$fieldname[] = "description";
$fieldtype[] = "textarea";
$fieldvalu[] = ",96%,500px";
$fieldmand[] = "";

$fieldcapt[] = ATOLL_ADMIN_MEDIA_09_0;
$fieldname[] = "author";
$fieldtype[] = "text";
$fieldvalu[] = USERNAME.",50,100";
$fieldmand[] = "";


//---------------------------------------------------------------
// END OF CONFIGURATION AREA
//---------------------------------------------------------------

// -------- Presets. ------------ // always load before auth.php
if ($show_preset) {
require_once(e_HANDLER."preset_class.php");
$pst = new e_preset;
$pst->form = "adminform"; // form id of the form that will have it's values saved.
$pst->page = e_SELF; // display preset options on which page(s).
$pst->id = "admin_".$atolltable;
}

require_once(e_ADMIN."auth.php");
require_once("form_handler.php");
$rs = new form;

// Validation checks ///////////////////////////////////////////////////////////////////

if (isset($_POST['add']) || isset($_POST['update']))
{
if (strlen($_POST['title']) == 0)
{
$message .= "Title ".ATOLL_ADMIN_MEDIA_12;
}
}

// Data is valid so try and add /////////////////////////////////////////////////////////

if (!isset($message) && isset($_POST['add']))
{
if ($debug) print "<br>".print_r($_POST)."<br>";

$count = count($fieldname);

for ($i=0; $i<$count; $i++)
{
$inputstr .= " '".$rs->getfieldvalue($fieldname[$i], $fieldtype[$i], $debug)."', ";
}
$inputstr .= time();
if ($sql->db_Insert($atolltable, "0, $inputstr", $debug))
{
$message = ATOLL_ADMIN_MEDIA_06;
unset($_POST['add']);
}
else
{
$message = ATOLL_ADMIN_MEDIA_07;
}
}

// Data is valid so try and update ///////////////////////////////////////////////////////

if (!isset($message) && isset($_POST['update']))
{
if ($debug) print "<br>".print_r($_POST)."<br>";

$count = count($fieldname);

for ($i=0; $i<$count; $i++)
{
$inputstr .= $fieldname[$i]."='".$rs->getfieldvalue($fieldname[$i], $fieldtype[$i], $debug)."', ";
}
$inputstr .= "timestamp=".time();
if ($sql->db_Update($atolltable, "$inputstr WHERE $primaryid='".$_POST[$primaryid]."'", $debug))
{
$message = ATOLL_ADMIN_MEDIA_04;
unset($_POST['update']);
}
else
{
if ($debug) print "<br>".mysql_error()."<br>";
$message = ATOLL_ADMIN_MEDIA_05;
} }

//$fieldname


// Get details from DB if Edit, otherwise set from POST data
if (isset($_POST['edit'])) {
$sql -> db_Select($atolltable, "*", " $primaryid='".$_POST['existing']."' ");
$row = $sql->db_Fetch();
} else {
if (isset($_POST['add']) || isset($_POST['update'])) {
$row = $_POST;
} }

// Try the delete
if (isset($_POST['delete'])) {
if ($debug) print "<br>".print_r($_POST)."<br>";
$message = ($sql -> db_Delete($atolltable, "$primaryid='".$_POST['existing']."' ")) ? ATOLL_ADMIN_MEDIA_08 : ATOLL_ADMIN_MEDIA_09;
}

// Draw the form
$text = "<div style='text-align:center'><form method='post' action='".e_SELF."' id='myexistingform'>
<table style='width:96%;margin-left:auto;margin-right:auto;' class='fborder'>";

if (isset($message)) {
$text .= "<tr><td colspan='2' class='spacer' style='text-align:center'>$message</td></tr>";
if ($debug) print "<br>".mysql_error()."<br>";
}

$text .= "<tr><td colspan='2' class='forumheader' style='text-align:center'>";

$table_total = $sql->db_Select($atolltable, "*", " order by id asc", "");
if (!$table_total) {
$text .= ATOLL_ADMIN_MEDIA_10;
} else {
$text .= "<span class='defaulttext'>".ATOLL_ADMIN_MEDIA_00.":</span><select name='existing' class='tbox'>";
while (list($id, $title, $description, $rest) = $sql-> db_Fetch()) {
$sql2->db_Select($atolltable, "*", "id=$id order by id");
list($id, $title, $description, $rest) = $sql2->db_Fetch();
$text .= "<option value='$id'>$title ($id)</option>";
}
$text .= "</select><input class='button' type='submit' name='edit' value='".ATOLL_ADMIN_MEDIA_01."' />
<input class='button' type='submit' name='delete' value='".ATOLL_ADMIN_MEDIA_11."' /></td></tr>";
}

$text .= "</table></form></div>";

$text .= "<div style='text-align:center'>\n";
$text .= "<form method='post' action='".e_SELF."' id='adminform'><table class='fborder' style='margin-left:auto;margin-right:auto;width:96%'>";
for ($i=0; $i<count($fieldcapt); $i++) {
$form_send = $fieldcapt[$i] . "|" .$fieldtype[$i]."|".$fieldvalu[$i];
$text .="<tr>
<td style='vertical-align:top' class='forumheader3'>".$fieldcapt[$i]." ".$fieldmand[$i]."</td>
<td class='forumheader3'>";
$text .= $rs->user_extended_element_edit($form_send, $row[$fieldname[$i]], $fieldname[$i]);
$text .="</td></tr>";
};

$text .= "<tr style='vertical-align:top'><td colspan='2' style='text-align:center' class='forumheader'>";

if (isset($_POST['edit']) || isset($_POST['update'])){
$text .= "<input class='button' type='submit' id='update' name='update' value='".ATOLL_ADMIN_MEDIA_02."' />
<input type='hidden' name='$primaryid' value='".$row[$primaryid]."'>";
} else {
$text .= "<input class='button' type='submit' id='add' name='add' value='".ATOLL_ADMIN_MEDIA_03."' />";
}

$text .= "</td></tr></table></form></div>";
$ns->tablerender($configtitle, $text);

require_once(e_ADMIN."footer.php");

?>


  



Guest-83

Re: probleme pour inserer une fonction dans une page pour deux champs

Bonjour,

Tu peux faire ça, pourquoi pas, mais tu n'évites pas vraiment les failles de sécurité.

Moi je te recommande de changer ta méthode de faire, et de faire quelques choses de bien plus restrictif.
Pour les espaces, tu continues à remplacer par un _
mais pour le reste, tu les interdis tout betement.

C'est peut-être dégueulasse tu vas dire, mais tu as interet à devenir très restrictif, parce que php commence à partir à fond dans la sécurité, et php6 le sera bien plus, donc, les hackers risquent d'avoir du mal et des fonctions tel que tu as, pourra en faire les frais !

Alors regarde la fonction filter_var() de php, avec le flag FILTER_VALIDATE_REGEXP et le reg (par exemple):
#^(([0-9a-zA-Z]*)?((([._-]*)([0-9a-zA-Z]*))*))$#

et si FALSE ou TRUE, tu vois si tu enregistres ou ejectes !
Tu oublies pas de dire sur ton formulaire que seul les caractères A-Z, a-z, 09, ._- sont autorisés.



  



papayou

Re: probleme pour inserer une fonction dans une page pour deux champs

je suis content pour votre post
mais je n'ai pas tous compris
j ai compris que ma fonction n etais pas securisé .
mais le plus dur pour moi là, c'est d integrer la fonction dans le script .car ,je n ai pas l impression qu elle le soit



  



papayou

Re: probleme pour inserer une fonction dans une page pour deux champs

un autre petit message d'aide . pour le message de Guest-83
j'ai compris que ma fonction etais nul au niveau securité ,je suis débutant +++ pour l 'instant j'arrive à me perdre dans ce code.

qu'elle variable je dois traiter. dans qu'elle variable sont mes données

merci à vous tous



  



Réponse rapide

forum Répondez et participez librement forum
Services informatiques Merci d'écrire un message de plus de 10 mots en français correct. (Tout message mal rédigé sera effacé.)

Produits en vente en relation avec le sujet :

Pied de page des forums

Forum : Réseau - Sécurité - Materiel
Php - Référencement - Serveurs - Divers
Windows - Internet - Logiciels - Communication
SARL Brakstar / 485 013 809 R.C.S. BOURGES
2 rue de coulon. 18310 Graçay
Mail : societe@brakstar.com
USA EN ES BR PO DE NL IT SU DN HU JP TE RU PL FI NO GR SE SL ET TH UK SL IN LH RO LE HE BG CZ MS CAT IR CR