anacolut
Messages postés2Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention27 juin 2010
-
23 juin 2010 à 11:54
Tonio_35
Messages postés567Date d'inscriptionmercredi 4 octobre 2006StatutMembreDernière intervention30 août 2011
-
2 juil. 2010 à 14:41
bonjour
je ne parviens pas à récupérer l'url de ma page courante
sur la page dont je souhaite récupérer l'url j'ai indiqué
[javascript:void(0) ','formulaire','location=no,width=460px,height=560px')" title="Envoyer cette annonce par email">Envoyer]
[javascript:void(0) ','formulaire','location=no,width=460px,height=560px')" title="Envoyer cette annonce par email">
images/email.png" width="24" height="35" alt="" />]
<?php function selfURL(){
$url = empty($_SERVER['HTTPS']) ? ''
: ($_SERVER['HTTP_HOST'] == 'on') ? 's'
: ''; $protocol = strleft(strtolower($_SERVER['SERVER_PROTOCOL']), '/').$url;
$port ($_SERVER['SERVER_PORT'] '80') ? ''
: (':'.$_SERVER['SERVER_PORT']);
return $protocol.'://'.$_SERVER['PHP_SELF'].$port.$_SERVER['REQUEST_URI'];
}
function strleft($s1, $s2){
return substr($s1, 0, strpos($s1, $s2));
}
Puis ça ouvre un formulaire, tout fonctionne sauf que l'url de la page n'est pas récupérée.
voici le code du formulaire
<?php
echo "<?xml version="1.0" encoding="iso-8859-1"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
body {
background:#FEE3AE;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.Style2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #CC6600;
font-weight: bold;
font-size: 14px;
}
.Style3 {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #CC6600;
font-weight: bold;
font-size: 10px;
}
-->
</style>
</head>
<?php
//if(isset($_GET['url']) and !empty($_GET['url']))
//{
// $url=$_GET['url'];
if(isset($_POST['envoi']))
{
$url = isset($_POST['url']) and !empty($_POST['url']);
$nom = isset($_POST['nom']) ? trim(htmlspecialchars($_POST['nom'])) : "";
$dnom = isset($_POST['dnom']) ? trim(htmlspecialchars($_POST['dnom'])) : "";
$email = isset($_POST['email']) ? trim(htmlspecialchars($_POST['email'])) : "";
$objet = isset($_POST['objet']) ? trim(htmlspecialchars($_POST['objet'])) : "";
$message = isset($_POST['message']) ? trim(htmlspecialchars($_POST['message'])) : "";
/**
* Définition des variables servant au traitement de l'adresse électronique et du numéro de
* téléphone: on utilise ici des expressions régulières.
*/
$valid = "#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#";
if ($nom '' || $email '' || !(preg_match($valid, $email)))
{
?>
Informations incomplètes
Un (ou plusieurs) champ(s) obligatoire(s)
n'a(ont) pas été correctement rempli(s).
<?php
if ($nom == '')
{
print "Vous n'avez pas précisé votre nom !
\n";
}
if ($dnom == '')
{
print "Vous n'avez pas précisé le nom de votre destinataire !
\n";
}
if($email == '')
{
print "Vous n'avez pas indiqué le mail de votre destinataire !
\n";
}
if(($email) && !(preg_match($valid, $email)))
{
print "le mail est invalide.
\n";
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<fieldset>
<label>Votre Nom : * " /></label>
<label>Nom du destinataire : * " /></label>
<label>Mail du destinataire : * " /></label>
<label>Objet : " /></label>
<label>Votre Message : <textarea name="message" cols="50" rows="20"><?php echo $message ?></textarea></label>
" />
</fieldset>
</form>
<?php
}
else
{
$to = $email;
$subject = $objet.' de '.$nom.' - www.monsite.com';
$from = "From:moi@remoi.com\n";
$from .= "MIME-version: 1.0\n";
$from .= "Content-type: text/html; charset= iso-8859-1\n";
$message='<style>*{font-family:verdana;font-size:11px;font-weight:bold;}</style>Bonjour '.$dnom.',
'.nl2br(stripslashes($message)).'
['.$url.' '.$url.']Ce message vous a été envoyé depuis www.monsite.com
';
if(mail($to,$subject,$message,$from)){
echo "Votre mail a bien été envoyé !"; }
$href_email = str_replace("@", "%40", $email);
// Affichage du message final des informations reçues
print "Merci ! Voici les informations que vous avez fournies
\n";
print "Votre Nom : ". $nom ."
\n";
print "Nom du destinataire : ". $dnom ."
\n";
print "le mail du destinataire : ".$email."
\n";
if ($objet)
{
print "Objet : ". $objet ."
\n";
}
else
{
print " Pas d'objet.
\n";
}
if ($message) // Si du texte a été saisi dans la boite textarea:
{
print " Votre message : ".nl2br(stripslashes($message))."
\n"; // Affichage du texte saisi dans la boite textarea après traitement de mise en page.
}
else /* Si aucun texte n'a été saisi, alors affichage d'un message alternatif. */
{
print " Pas de message.
\n";
}
print(" Retour vers le formulaire de base, cliquez ICI
");
print ("Fermer la fenêtre");
}
}
//}
else
{
?>
Envoyer cette page
à un contact
les champs avec * sont obligatoires
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<fieldset>
<label>Votre Nom : * </label>
<label>Nom du destinataire : * </label>
<label>Mail du destinataire : * </label>
<label>Objet : </label>
<label>Votre Message : <textarea name="message" cols="50" rows="20"></textarea></label>
" />
</fieldset>
</form>
<?php
}
?>
</html>
anacolut
Messages postés2Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention27 juin 2010 27 juin 2010 à 21:01
bonjour
j'ai une page qui s'appelle "details.php" c'est de celle-ci dont je veux récupérer l'url.
Quand un utilisateur arrive sur cette page (il s'agit d'une page concernant les détails et le descriptif d'un produit) il y a un lien "envoyer cette page à un ami" avec ce code et cette fonction :
[javascript:void(0) ','formulaire','location=no,width=460px,height=560px')" title="Envoyer cette annonce par email">Envoyer]
[javascript:void(0) ','formulaire','location=no,width=460px,height=560px')" title="Envoyer cette annonce par email">
images/email.png" width="24" height="35" alt="" />]
<?php function selfURL(){
$url = empty($_SERVER['HTTPS']) ? ''
: ($_SERVER['HTTP_HOST'] == 'on') ? 's'
: ''; $protocol = strleft(strtolower($_SERVER['SERVER_PROTOCOL']), '/').$url;
$port ($_SERVER['SERVER_PORT'] '80') ? ''
: (':'.$_SERVER['SERVER_PORT']);
return $protocol.'://'.$_SERVER['PHP_SELF'].$port.$_SERVER['REQUEST_URI'];
}
function strleft($s1, $s2){
return substr($s1, 0, strpos($s1, $s2));
}
Ensuite ça ouvre un formulaire qui s'intitule form2.php avec le code que j'ai indiqué. Tout fonctionne au niveau du formulaire, les sécu, les vérif, les récaps, ça envoie le mail mais pas l'url de la page détails.php
J'ai l'impression que ça vient de la fonction ou du code de la page détails.
Je ne sais pas si je suis clair
d'avance merci
Cherche un peut dans ton code, si tu ne trouve pas :
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
<?php echo selfURL(); ?>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^