| :: |
| Auteur |
Message |
nelumbo PR1


Inscrit le: 06 Mar 2007 Messages: 186
|
Posté le: Mer Mar 19, 2008 4:24 pm Sujet du message: Update DB impossible |
|
|
Bonsoir,
J'ai un petit problème sur un script de rencontre. Un petit problème assez gênant tout de même.
Impossible de sauvegarder les options "settings". J'édite le fichier en manuel... bon passons, je ne le touche pas tous les jours . Chez surftown, y'a pas ce problème.
Le plus gênant, c'est qu'il est impossible d'effectuer un changement dans les profils via l'admin. Sans doute une configuration serveur... mais laquelle ?
Sur mon htaccess j'ai essayé :registrer_global Off et magic_quotes On dans le folder d'administration, mais quand ça veux pas...
Une idée ? |
_________________ Rencontre gratuit || Petite annonce gratuite |
|
| Revenir en haut de page |
|
 |
|
 |
nelumbo PR1


Inscrit le: 06 Mar 2007 Messages: 186
|
Posté le: Sam Mar 22, 2008 5:08 pm Sujet du message: Re: Update DB impossible |
|
|
Peut être une piste, surftown est en PHP 4 et netissime en PHP 5.
Peut il s'agir aussi d'un problème de compatibilité php 5 ? |
_________________ Rencontre gratuit || Petite annonce gratuite |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 14327
|
|
| Revenir en haut de page |
|
 |
nelumbo PR1


Inscrit le: 06 Mar 2007 Messages: 186
|
Posté le: Lun Mar 24, 2008 3:06 pm Sujet du message: Re: Update DB impossible |
|
|
J'ai un fichier avec un formulaire ou j'édite mes options via l'admin. On va dire set.php . En soumettant ce formulaire, un autre fichiers doit se remplir avec mes options. C'est le fichier option.php .
Un exemple quand il est édité normalement.
| Code: |
<?
$set_from = "Lovia";
$set_url = "http://www.lovia.fr";
$set_lang = "eng";
$set_li = "6O7Qo6BU";
$set_path = "/var/www/vhosts/lovia.fr/httpdocs";
$set_from_mail = "admin@lovia.fr";
$set_smtp = "";
?>
|
Je met ce fichier sur le serveur, ma config est prise en compte. Maintenant, si j'effectue un changement via le formulaire de l'admin (set.php?file=option.php), ce fichier devient bizarrement vierge.
Je ne pense pas que ce formulaire implique une action dans la DB.
Pour l'édition des profils c'est pas la même histoire... |
_________________ Rencontre gratuit || Petite annonce gratuite |
|
| Revenir en haut de page |
|
 |
nelumbo PR1


Inscrit le: 06 Mar 2007 Messages: 186
|
Posté le: Lun Mar 24, 2008 5:33 pm Sujet du message: Re: Update DB impossible |
|
|
Pour la partie update des profils. J'ai trouvé ce bout de code, peut être une incompatibilité php5 ou mysql 5 . Le serveur Ok tourne effectivement sous mysql 4.
| Code: | if (getParam("submit",""))
{
// Update all fields affected
$sql = "update users set ";
foreach ($_REQUEST as $key => $value) {
if ($key<>"submit" AND $key<>"PHPSESSID" AND $key<>"profile" AND $key<>"phpbb2mysql_data"
)
$sql.= "$key='" . $value . "',";
}
$sql=substr($sql,0,-1);
$sql.=" where username='".$_REQUEST["profile"]."'";
$res_ret=query($sql);
echo "<b>Fields updated</b><br>More than " . mysql_affected_rows() . " columns was changed from before.";
}
if (getParam("show",""))
{
echo "<form method='post' action='edit_user.php'>";
echo "<input type='submit' name='submit' value='Update'>";
echo "<input type='hidden' name='profile' value='".$_REQUEST["profile"]."'>";
echo "<table width='95%'>";
$result = query("SHOW COLUMNS FROM users");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row_col = mysql_fetch_assoc($result)) {
//print_r($row_col);
$fieldname=$row_col[Field];
echo "<tr><td>$fieldname</td><td> <input type='text' name='$fieldname' value='".$row["$fieldname"]."'";
if ($fieldname=="username" || $fieldname=="password" || $fieldname=="show")
echo " disabled=disabled";
echo "></td></tr>";
}
}
echo "</table>";
echo "<input type='submit' name='submit' value='Update'>";
echo "</form>";
} |
|
_________________ Rencontre gratuit || Petite annonce gratuite |
|
| Revenir en haut de page |
|
 |
nelumbo PR1


Inscrit le: 06 Mar 2007 Messages: 186
|
Posté le: Lun Mar 24, 2008 7:45 pm Sujet du message: Re: Update DB impossible |
|
|
Premier bug éliminé. J'ai remplacer $_REQUEST par $_POST dans la partie update des profils. Ouuufff
Il reste l'écriture des options qui pose problème  |
_________________ Rencontre gratuit || Petite annonce gratuite |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 14327
|
Posté le: Sam Mar 29, 2008 9:58 am Sujet du message: Re: Update DB impossible |
|
|
Hum, il "craint" un peu ce script, il balance n'importe quoi dans la db :
| Code: | foreach ($_REQUEST as $key => $value) {
if ($key<>"submit" AND $key<>"PHPSESSID" AND $key<>"profile" AND $key<>"phpbb2mysql_data"
)
$sql.= "$key='" . $value . "',";
} |
Aucune vérification des valeurs envoyées, et pire, le script tenter de rentrer dans la db toutes les variable de $_REQUEST sauf les trois listés dans le if.
Le principe, c'est plutôt de n'accepter que les variable que l'on veut que l'inverse, et surtout, il faut les valider pour s'assurer qu'un petit malin ne va pas entrer un code malicieux.
Au minimum, htmlspecialchars(), en prenant aussi en compte les guillemets simples (') à échapper.
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
|
|