Erreur qui va faire passer mon ordi par la fenetre.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur qui va faire passer mon ordi par la fenetre.

Re: Erreur qui va faire passer mon ordi par la fenetre.

par dexon123 » 01 déc. 2011, 15:26

Salut, j'ai fais une faute de frape dans la value des input radio de la page précédente :S

En tout cas, j'ai réglé mon problème ^.^ Merci quand même :D

Re: Erreur qui va faire passer mon ordi par la fenetre.

par sirakawa » 01 déc. 2011, 10:30

Ce n'est pas htmlspecialchars qui est en cause car :
Les remplacements effectués sont :
"&" (et commercial) devient "&"
""" (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisée.
"'" (guillemet simple) devient ' uniquement lorsque ENT_QUOTES est utilisée.
"<" (inférieur à) devient "<"
">" (supérieur à) devient ">"
Quant à moi, pour éviter le problème potentiel des if, je suggère:
<?PHP
$p="+";
/* au lieu de*/
if ($p == "+")
{
	print "plus";
}
if ($p == "-")
{
	print "moins";
}

/* tests plus complets*/
if ($p == "+")
{
	print "plus";
}
elseif ($p == "-")
{
	print "moins";
}
else
	{
	print "erreur sur p";
}
?>

Re: Erreur qui va faire passer mon ordi par la fenetre.

par Mazarini » 01 déc. 2011, 10:14

Bonjour,

je pense que tu devrais vérifier la valeur de $p en l'affichant et en regardant dans le source de la page.

Tu fais :
if ($p == '-')
{
$req = ...
}
if ($p == '+')
{
$req = ...
}
if ($req)
{
}

Rien ne dit que tu passe bien dans un des 2 if qui affecte $req.

Il n'est pas impossible que la ligne $p = htmlspecialchars($_POST['type']); pose problème (à vérifier que + ou - ne sont pas des caractères spéciaux html). L'affichage ne montrera pas le problème dans le navigateur, mais le montrera dans le source de la page.

Re: Erreur qui va faire passer mon ordi par la fenetre.

par dexon123 » 01 déc. 2011, 00:33

Salut, merci pour ta réponse mais sa ne marche pas. j'ai mis des 'or die(mysql_error());' à tout les 'mysql_query' et aucune erreur n'apparait sauf
le message : "merde là..." de

if ($req){
echo'La cagnotte a bien été changé. Tu seras redirigé dans 3 secondes.';
echo'<script>setTimeout("location=(\'2.php\');",3000);</script>';
}else{echo'merde là...';}}

need help! D:

Re: Erreur qui va faire passer mon ordi par la fenetre.

par xTG » 29 nov. 2011, 07:49

Si tu parles d'afficher l'erreur sql c'est dans le die() et il faut utiliser mysql_error().

Re: Erreur qui va faire passer mon ordi par la fenetre.

par dexon123 » 29 nov. 2011, 04:32

Oh j'ai completement oublier de dire: quand on clique sur Changer, sur la page d'action (celle dont j'ai mis le code) le message 'merde là...' s'affiche.

Erreur qui va faire passer mon ordi par la fenetre.

par dexon123 » 29 nov. 2011, 04:29

Bonjours, bonsoir,
je fait un genre de admin menu qui permet l'Administration du montant dans la "cagnotte"
voicit l'application :
Image

Donc le problème, c'est que un message d'erreur s'affiche. Mais je ne sais pas pourquoi. Quel est la chose a écrire dans un 'echo' pour que sa écrive qu'es-ce qui ne fonctionne pas correctement ? Vous savez ? le message qui te dit le fichier et la ligne ?

Donc voila le code de la page suivant le clique du bouton 'changer' :
<?php
$c_cagnotte = $_POST['cagnotte'];
if ( !eregi( "^[0-9]+$", $c_cagnotte )){echo'Que des chifres dans le nombres de cagnotte';}
else{
$u = htmlspecialchars($_GET['u']);
$p = htmlspecialchars($_POST['type']);
$s_u = mysql_real_escape_string($u);
if($p == '+'){
$result = mysql_query("SELECT cagnotte FROM user WHERE pseudo = '$s_u'")
 or die('erreur 1');
 
 while ( $row = mysql_fetch_assoc($result) ) {
 $f_cagnotte = $row["cagnotte"];
 }
$lol = $c_cagnotte + $f_cagnotte;
$req = mysql_query("UPDATE user SET cagnotte='".$lol."' WHERE pseudo='$s_u'") or die("Insert Error");
mysql_close($db);
}
if($p == '-'){
$result = mysql_query("SELECT cagnotte FROM user WHERE pseudo = '$s_u'")
 or die('erreur 1');
 
 while ( $row = mysql_fetch_assoc($result) ) {
 $p_cagnotte = $row["cagnotte"];
 }
$lol = $c_cagnotte - $p_cagnotte;
$req = mysql_query("UPDATE user SET cagnotte='".$lol."' WHERE pseudo='$s_u'") or die("Insert Error");
mysql_close($db);
}

if ($req){
echo'La cagnotte a bien été changé. Tu seras redirigé dans 3 secondes.';
echo'<script>setTimeout("location=(\'2.php\');",3000);</script>';
}else{echo'merde là...';}}

?>