par
Niico » 03 avr. 2009, 15:45
tiens j'avais toujours entendu parler de ces magic quotes mais je ne savais pas ce que c'était
bon alors j'ai inclu ma fonction et l'ai mise devant mon POST, pour qu'il traite les éventuelles magicquotes. Mais maintenant j'ai un autre problème :
1.- l'ID n'est plus dans le lien reçu par l'email (donc la fonction magicquotes influe sur ma requête sql et renvoie une erreur ??)
2.- le nom de famille n'apparaît pas sur la page de validation... mais où part-il ? mon url est mal encodée ?
J'ai bien cherché, mais je ne vois pas de quoi ça peut provenir... (flûte, au moins la fonction des magicquotes marche bien

)
l'
URL dans le mail :
http://www.entreprise.com/validation.ph ... est%27test
mon code dans
sendmail.php:
function verif_magicquotes ($chain)//Murphy's law: the server config is for older scripts!!
{
if (get_magic_quotes_gpc()) $chain = stripslashes($chain);
return $chain;
}
///We control that the email address doesn't already exist
include "common/connection.inc.php";
$email=htmlentities($_POST['prefix'])."@".htmlentities($_POST['subdomain']).".ac.uk"; //The email we are sending this text to
$sql1="select ID from safereg where email='$email'";
$result=mysql_query($sql1,$id_link);
$number=mysql_num_rows ($result);
if ($number >0){
$auth=1;
include "register.php";
exit;
}
//....
//We control that the fields are not empty
if(!empty($_POST['name']) and !empty($_POST['surname']) and !empty($_POST['mobile'])
and !empty($_POST['prefix']) and !empty($_POST['subdomain']) and !empty($_POST['residence'])
and !empty($_POST['room']) and !empty($_POST['question']) and !empty($_POST['answer'])){
/*****************Here we feed the data into the database*************************/
$name=verif_magicquotes($_POST['name']);
$surname=verif_magicquotes($_POST['surname']);
$mobile=$_POST['mobile'];
$residence=$_POST['residence'];
$room=$_POST['room'];
$question=$_POST['question'];
$answer=verif_magicquotes($_POST['answer']);
$date=date(Ymd);
$sql2="INSERT INTO safereg (name, surname, mobile, email, residence, room, question, answer, date) VALUES ('$name', '$surname', '$mobile', '$email', '$residence', '$room', '$question', '$answer', '$date')";
mysql_query($sql2,$id_link);
/*****************I get the user's ID*************************/
$sql3="select ID from safereg WHERE email='$email'";
$res = mysql_query($sql3,$id_link);
if ($row = mysql_fetch_assoc($res) ) {//If the resource contents some results, I feed the first result to $row
$ID=$row['ID'];
}
/*****************The email that is going to be sent*********************/
$encode_name = rawurlencode($name);//We encode the name,so that - and ' inside are OK
$encode_surname= rawurlencode($surname);
//...
$emailcontent = "Hello $name $surname,\n\n
<a href=\"http://www.entreprise.com/validation.php?ID=$ID&name=$encode_name&surname=$encode_surname\">I validate my email!</a>\n";
et mon code dans
validation.php, à nouveau la fonction sur tout, au cas où :
$name = verif_magicquotes($_GET['name']);
$surname = verif_magicquotes($_POST['surname']);
//$name = isset($_GET['name']) ? rawurldecode($_GET['name']) : '';
//$surname = isset($_GET['surname']) ? rawurldecode($_GET['surname']) : '';
$name = rawurldecode($name);
$surname = rawurldecode($surname);
$sql="UPDATE safereg SET validation='1' WHERE ID='".$_GET[ID]."' AND name=$name AND surname=$surname";
mysql_query($sql,$id_link);
merci pour le coup de main !

tiens j'avais toujours entendu parler de ces magic quotes mais je ne savais pas ce que c'était :P
bon alors j'ai inclu ma fonction et l'ai mise devant mon POST, pour qu'il traite les éventuelles magicquotes. Mais maintenant j'ai un autre problème :
1.- l'ID n'est plus dans le lien reçu par l'email (donc la fonction magicquotes influe sur ma requête sql et renvoie une erreur ??)
2.- le nom de famille n'apparaît pas sur la page de validation... mais où part-il ? mon url est mal encodée ?
J'ai bien cherché, mais je ne vois pas de quoi ça peut provenir... (flûte, au moins la fonction des magicquotes marche bien :lol: )
l'[b]URL[/b] dans le mail :
http://www.entreprise.com/validation.php?ID=&name=test-test&surname=test%27test
mon code dans [b]sendmail.php[/b]:
[php]function verif_magicquotes ($chain)//Murphy's law: the server config is for older scripts!!
{
if (get_magic_quotes_gpc()) $chain = stripslashes($chain);
return $chain;
}
///We control that the email address doesn't already exist
include "common/connection.inc.php";
$email=htmlentities($_POST['prefix'])."@".htmlentities($_POST['subdomain']).".ac.uk"; //The email we are sending this text to
$sql1="select ID from safereg where email='$email'";
$result=mysql_query($sql1,$id_link);
$number=mysql_num_rows ($result);
if ($number >0){
$auth=1;
include "register.php";
exit;
}
//....
//We control that the fields are not empty
if(!empty($_POST['name']) and !empty($_POST['surname']) and !empty($_POST['mobile'])
and !empty($_POST['prefix']) and !empty($_POST['subdomain']) and !empty($_POST['residence'])
and !empty($_POST['room']) and !empty($_POST['question']) and !empty($_POST['answer'])){
/*****************Here we feed the data into the database*************************/
$name=verif_magicquotes($_POST['name']);
$surname=verif_magicquotes($_POST['surname']);
$mobile=$_POST['mobile'];
$residence=$_POST['residence'];
$room=$_POST['room'];
$question=$_POST['question'];
$answer=verif_magicquotes($_POST['answer']);
$date=date(Ymd);
$sql2="INSERT INTO safereg (name, surname, mobile, email, residence, room, question, answer, date) VALUES ('$name', '$surname', '$mobile', '$email', '$residence', '$room', '$question', '$answer', '$date')";
mysql_query($sql2,$id_link);
/*****************I get the user's ID*************************/
$sql3="select ID from safereg WHERE email='$email'";
$res = mysql_query($sql3,$id_link);
if ($row = mysql_fetch_assoc($res) ) {//If the resource contents some results, I feed the first result to $row
$ID=$row['ID'];
}
/*****************The email that is going to be sent*********************/
$encode_name = rawurlencode($name);//We encode the name,so that - and ' inside are OK
$encode_surname= rawurlencode($surname);
//...
$emailcontent = "Hello $name $surname,\n\n
<a href=\"http://www.entreprise.com/validation.php?ID=$ID&name=$encode_name&surname=$encode_surname\">I validate my email!</a>\n";[/php]
et mon code dans [b]validation.php[/b], à nouveau la fonction sur tout, au cas où :
[php]$name = verif_magicquotes($_GET['name']);
$surname = verif_magicquotes($_POST['surname']);
//$name = isset($_GET['name']) ? rawurldecode($_GET['name']) : '';
//$surname = isset($_GET['surname']) ? rawurldecode($_GET['surname']) : '';
$name = rawurldecode($name);
$surname = rawurldecode($surname);
$sql="UPDATE safereg SET validation='1' WHERE ID='".$_GET[ID]."' AND name=$name AND surname=$surname";
mysql_query($sql,$id_link);[/php]
merci pour le coup de main ! :wink: