par
spirou » 01 déc. 2005, 00:04
Bonsoir !!
Encore moi
Je suis de nouveau confronté à quelques problèmes.
J'ai fais un formulaire qui fonctionne presque parfaitement avec deux options un envoi par mail, et un affichage comme livre d'or, seuls bémols :
- Lors de l'envoi du formulaire pour le faire afficher en dessous, il m'affiche une page blanche, comment faire pour qu'il revienne à la page actualisée du nouveau message.
- Lors de l'essai de l"envoi par mail, il m'affiche carrément un message d'erreur :
Warning: mysql_close(): no MySQL-Link resource supplied in / .... on line 182
Je ne comprends pas puisque je ferme bien ma connection à la fin de mon code php.
Voici le code :
<?php
if(!empty ($_POST['nom']) and !empty($_POST['mail']) and !empty($_POST['texte']))
{
if (isset($REMOTE_ADDR))
{
$ip = $REMOTE_ADDR;
}
else
{
$ip = "";
}
$date = date("d/m/Y");
$heure = date("H:i");
$mail = htmlentities($_POST['mail']);
$nom = htmlentities($_POST['nom']);
$message = $_POST['texte'];
// vérification de l'e-mail
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
// test de l'adresse e-mail
if (eregi($regex, $mail))
{
$avis = htmlentities($_POST['texte']);
if($_POST['butMessage'] == 'avis')
{
include('../inclusion/loupe.inc');
mysql_connect($base, $user, $passe);
mysql_select_db('base');
mysql_query("INSERT INTO commentaires VALUES('', '$date', '$heure', '$nom', '$ip', '$avis')");
}
else
{
$to = 'mon mail';
$sujet = 'message de'.$nom;
mail($to, $sujet, $mail);
}
}
else
{
echo "<p>L'adresse e-mail $mail n'est pas valide</p>";
}
}
else
{
?>
// affichage du formulaire
<?php
include('../inclusion/loupe.inc');
mysql_connect($base, $user, $passe);
mysql_select_db('ma base');
$listage = mysql_query("SELECT * FROM commentaires");
while($affichage = mysql_fetch_array($listage))
{
echo'
<div class="messageInter">
<div class="hautMessage"><p class="hautMessageD"></p>
<span>Message posté par '.$affichage["nom"].'</span>
<span> Le '.$affichage["date"].' à '.$affichage["heure"].'</span>
</div>
<p class="messageCorps">'
.$affichage["message"].
'</p>
</div>';
}
}
mysql_close();
?>
Ps: j'avais aperçu sur le forum une autre façon de vérifier une adresse mail, mais je ne trouve plus le lien, si vous savez où est ce topic, merci

Bonsoir !!
Encore moi :D
Je suis de nouveau confronté à quelques problèmes.
J'ai fais un formulaire qui fonctionne presque parfaitement avec deux options un envoi par mail, et un affichage comme livre d'or, seuls bémols :
- Lors de l'envoi du formulaire pour le faire afficher en dessous, il m'affiche une page blanche, comment faire pour qu'il revienne à la page actualisée du nouveau message.
- Lors de l'essai de l"envoi par mail, il m'affiche carrément un message d'erreur :
Warning: mysql_close(): no MySQL-Link resource supplied in / .... on line 182
Je ne comprends pas puisque je ferme bien ma connection à la fin de mon code php.
Voici le code :
[php]
<?php
if(!empty ($_POST['nom']) and !empty($_POST['mail']) and !empty($_POST['texte']))
{
if (isset($REMOTE_ADDR))
{
$ip = $REMOTE_ADDR;
}
else
{
$ip = "";
}
$date = date("d/m/Y");
$heure = date("H:i");
$mail = htmlentities($_POST['mail']);
$nom = htmlentities($_POST['nom']);
$message = $_POST['texte'];
// vérification de l'e-mail
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
// test de l'adresse e-mail
if (eregi($regex, $mail))
{
$avis = htmlentities($_POST['texte']);
if($_POST['butMessage'] == 'avis')
{
include('../inclusion/loupe.inc');
mysql_connect($base, $user, $passe);
mysql_select_db('base');
mysql_query("INSERT INTO commentaires VALUES('', '$date', '$heure', '$nom', '$ip', '$avis')");
}
else
{
$to = 'mon mail';
$sujet = 'message de'.$nom;
mail($to, $sujet, $mail);
}
}
else
{
echo "<p>L'adresse e-mail $mail n'est pas valide</p>";
}
}
else
{
?>
// affichage du formulaire
<?php
include('../inclusion/loupe.inc');
mysql_connect($base, $user, $passe);
mysql_select_db('ma base');
$listage = mysql_query("SELECT * FROM commentaires");
while($affichage = mysql_fetch_array($listage))
{
echo'
<div class="messageInter">
<div class="hautMessage"><p class="hautMessageD"></p>
<span>Message posté par '.$affichage["nom"].'</span>
<span> Le '.$affichage["date"].' à '.$affichage["heure"].'</span>
</div>
<p class="messageCorps">'
.$affichage["message"].
'</p>
</div>';
}
}
mysql_close();
?>
[/php]
Ps: j'avais aperçu sur le forum une autre façon de vérifier une adresse mail, mais je ne trouve plus le lien, si vous savez où est ce topic, merci :P