addslashes

Eléphant du PHP | 155 Messages

15 juin 2005, 16:17

CONCESSION de DISTRIBUTION PUBLIQUE d
CONCESSION de DISTRIBUTION PUBLIQUE d'ELECTRICITE
les longueurs diffèrent => c'est déjà pas bon
y'a une couil** dans le paté ! Sad


C'est electricité et pas argent, mais j'ai toujours fait attention.

guy
Eléphant du PHP | 134 Messages

15 juin 2005, 16:20

a tu essayé avec ma proposition dans le post un peu plus haut ?
Guy

Eléphant du PHP | 155 Messages

15 juin 2005, 16:28

$service= htmlentities($service, ENT_QUOTES);
$s= "SELECT DISTINCT  id_service FROM phpgw_workf_services WHERE nom_service='".$service."'";
// Envoi de la requête à MySQL
$results= mysql_query($s);
$seris=mysql_fetch_array($results, MYSQL_ASSOC);
$idservice=$seris['id_service'];
ca, c'est avec ta solution et elle uniquement, ben ca n'enregistre rien non plus.


Pour CERBER, la problème reste tjs le mê, la variable récupérée est bloquée au ' , donc forcement elle n'ets pas égale a celle de la base de donnée.
Il me faut trouver un moyen de récupérer entièrement la valeur de mon formulaire.

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

15 juin 2005, 16:33

on est reparti : cette fois on affiche la valeur recue :
<?
echo $_POST['nom_service'].'<br>'.htmlentities($_POST['nom_service']).'<br>';
$service =trim($_POST['nom_service']);
if(get_magic_quotes_gpc())
    $service=stripslashes($service);
}
$serviceForce = "CONCESSION de DISTRIBUTION PUBLIQUE d'argent";
echo "$service<br>$serviceForce<br>";

$lenS  = strlen($service);
$lenSF = strlen($serviceForce);
if($lenS!=$lenSF){
	echo "les longueurs diffèrent => c'est déjà pas bon<br>";
}
$max = min($lenS,$lenSF);

for($i=0;$i<$max;$i++){
	if($service{$i}!=$serviceForce{$i}){
		echo "ca bloque au caractère $i : '"
			.$service{$i}."' contre '"
			.$serviceForce{$i}."'";
		break;
	}	
}

if(strcmp($service,$serviceForce)==0){
    echo "c'est egal ! COOL Smile <br>";
}
else{
    echo "y'a une couil** dans le paté ! :( <br>";
}
?>

guy
Eléphant du PHP | 134 Messages

15 juin 2005, 16:34

$service= htmlentities($service, ENT_QUOTES);
$s= "SELECT DISTINCT  id_service FROM phpgw_workf_services WHERE nom_service='".$service."'";
// Envoi de la requête à MySQL
$results= mysql_query($s);
$seris=mysql_fetch_array($results, MYSQL_ASSOC);
$idservice=$seris['id_service'];
quel est le resultat de
echo"service est egal à $service<br>";
echo"et la requete est egale à $s<br>;"
si tu les place à la fin de ton script ?
Guy

Eléphant du PHP | 155 Messages

15 juin 2005, 16:35

CERBER:

CONCESSION de DISTRIBUTION PUBLIQUE d
CONCESSION de DISTRIBUTION PUBLIQUE d
CONCESSION de DISTRIBUTION PUBLIQUE d
CONCESSION de DISTRIBUTION PUBLIQUE d'argent
les longueurs diffèrent => c'est déjà pas bon
y'a une couil** dans le paté ! Sad

GUY:
service est egal à
et la requete est egale à SELECT DISTINCT id_service FROM phpgw_workf_services WHERE nom_service=''

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

15 juin 2005, 16:39

ok => c au niveau du formulaire que se situe le probleme : il te retourne pas la bonne valeur, il la tronque ....
elle viens d'où cette valeur ? c'est l'utilisateur qui la saisie ?
Peux tu nous passer le code source (html, pas besoin du php pour l'intant) du formulaire

Eléphant du PHP | 155 Messages

15 juin 2005, 16:40

La valeur viens de ma base de donnée!

voici le code de mon select pour ce champs service:
<form name='nom' action='enregistrer.php' method='post'>

Service :
            <select name='nom_service'><br>

<?php

$rq = "SELECT DISTINCT nom_service FROM phpgw_workf_services ORDER BY nom_service";
$result = mysql_query($rq)
or die ("Exécution de la requête service impossible".mysql_error());
//DISTINCT permet d'afficher qu'une fois les données
//on liste tous les servicesde la table service.
while ($liste=mysql_fetch_array($result))
{
    extract($liste);
    //pour chaque ligne on teste si elle correspond à la ligne a afficher :
        //si var1 = "" aucune ligne ne sera sélectionnée
        // sinon la ligne qui a été enregistrée sera sélectionnée
    $selected = ($nom_service == $var1) ? "selected" : ""; // Cette ligne permet de sélectionner la ligne dont la valeur est stocké ds la bdd
    echo "<option value='".$nom_service."' ".$selected.">".$nom_service."</option>\n";
}
?>

<INPUT TYPE='submit' name ='enregistrer' VALUE='Enregistrer'>
</form>

Modifié en dernier par renatane le 15 juin 2005, 16:49, modifié 2 fois.

guy
Eléphant du PHP | 134 Messages

15 juin 2005, 16:40

$servic =$_POST['nom_service']; 
$service= htmlentities($service, ENT_QUOTES);
$s= "SELECT DISTINCT  id_service FROM phpgw_workf_services WHERE nom_service='".$service."'";
// Envoi de la requête à MySQL
$results= mysql_query($s);
$seris=mysql_fetch_array($results, MYSQL_ASSOC);
$idservice=$seris['id_service'];
echo"service est egal à $service<br>";
echo"et la requete est egale à $s<br>;"

juste cela dans ton script melange pas les deux methodes stp
Guy

Eléphant du PHP | 155 Messages

15 juin 2005, 16:43

Je ne melange rien du tout.:?
qd j'utilise l'une, je met l'autre en /* */
Je sais je suis pas fut fut mais qd mê :wink:

Eléphant du PHP | 155 Messages

15 juin 2005, 16:46

Guy:

service est egal à
et la requete est egale à SELECT DISTINCT id_service FROM phpgw_workf_services WHERE nom_service=''
voilà ce que ca m'affiche.

guy
Eléphant du PHP | 134 Messages

15 juin 2005, 16:47

j'ai pas dit cela mais que repond le bout de code que je t'ai pondu ?
Guy

Eléphant du PHP | 155 Messages

15 juin 2005, 16:49

ben ca fait 2 fois que je le note, c'est ce qui est au dessus guy.

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

15 juin 2005, 16:57

J'ai trouvé !!! tes derniers messages m'avaient mis sur la voie, la source de ton formulaire m'a donné raison !
Le probleme est pas sur la page d'arrivée mais sur la page de formulaire, ici pour être précis :
echo "<option value='".$nom_service."' ".$selected.">".$nom_service."</option>\n";
si $nom_service contient un ' php va rien dire mais le code HTML généré va être faux et ca se verra pas dans le navigateur (a moins d'avoir firefox et un plugin html validator)

essaye de remplacer cette ligne par ca :
echo "<option value=\"".addslashes($nom_service)."\" ".$selected.">".htmlentities($nom_service)."</option>\n";

Eléphant du PHP | 155 Messages

15 juin 2005, 17:07

CONCESSION de DISTRIBUTION PUBLIQUE d\\\'ELECTRICITE
CONCESSION de DISTRIBUTION PUBLIQUE d\\\'ELECTRICITE
CONCESSION de DISTRIBUTION PUBLIQUE d\'ELECTRICITE
CONCESSION de DISTRIBUTION PUBLIQUE d'ELECTRICITE
les longueurs diffèrent => c'est déjà pas bon
ca bloque au caractère 37 : '\' contre '''y'a une couil** dans le paté ! Sad

Oula, y'a de l'avancement, waouww

Je doit y alé, je reverrai ca demain,
en tous cas déjà merci pour votre aide.