Bonjour,
Mon code fonctionne avec Chrome Safari et Opera mais impossible d'inserer dans la base de donnée avec Firefox et IE quand je click sur ajouter ou supprimer.
Alors je sais bien que cela s'execute cote serveur et non browser mais ca ne m'avance pas...
if (isset($_SESSION['pseudo']) && isset($_SESSION['pass'])){ // Si l'internaute est connecté
if(mysql_result($res,0)==0 ) {// Si la clé n'apparait pas alors on affiche le bouton ajouter
?>
<form method="post" action="">
<input type="image" src="../../images/favoris.png" name="ajouter" class="ajouter" value="ajouter" >
</form> <?php
}else{ ?>
<form method="post" action="">
<input type="image" src="../../images/favoris-moins.png" name="supprimer" class="ajouter" value="ajouter" >
</form> <?php
}
}
if (isset($_POST['ajouter']) ) // Si on appuie sur le bouton ajouter, on insert toute les données dans la database
{
$sql = "INSERT INTO favoris (id, client, profil, photo, prenom, reference, age, lien) VALUES('','$pseudo' ,'$pseudo$referenceBase','$photoBase','$prenomBase', '$referenceBase', '$ageBase','$lienBase')";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo '<p style= "position: absolute; color: #b9121b; margin-left: 170px; margin-top: 366px"> Profils ajouté a vos favoris!</p> <script type="text/javascript"> window.setTimeout("location=(\'\');",1000) </script>';
}else{
'<SCRIPT LANGUAGE="JavaScript">document.location.href="../../index.php"</SCRIPT>';
}
if (isset($_POST['supprimer']) ) // Si on appuie sur le bouton supprimé, on supprime la ligne de la base de donnée
{
$sql = "DELETE FROM favoris WHERE profil = '$pseudo$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo ' <p style= "color: #b9121b; position: absolute; margin-left: 178px; margin-top: 366px"> Le profils à été supprimé!</p> <script type="text/javascript"> window.setTimeout("location=(\'\');",2000) </script>';
}
Un peu d'aide serait grandement apprécié.
Merci!
Ton formulaire est submit via javascript, c'est ça ?
tu as vérifié dans ta console si les données dont bien envoyées ?
Bonsoir Huggy,
Oui mon formulaire est submit et si la personne click sur "ajouter" j'utilise javascript pour recharger la page afin de faire apparaitre le bouton "supprimer" en lieu et place du bouton "ajouter" sinon ca rediriger la personne sur la page d'accueil afin de se connecté ou de s'inscrire.
Ca marche nickel sauf avec firefox et IE... Les données ne sont pas envoyées avec ses deux browser et je ne comprends pas pourquoi.
Et cela ne renvoie pas non plus sur la page d'accueil si la personne n'est pas connectée.
J'ai juste la page qui se recharge sans plus.
Il faut voir comment tu captes le submit en js
as-tu mis un 'alert' pour voir si le 'on submit' se fait bien ?
Je viens de mettre un 'alert' et j'ai bien une box qui s'affiche quand je click sur le bouton.
Je ne pense pas que cela vienne de js car quand je supprime ma redirection en js, cela ne fonctionne pas non plus, aucun enregistrement dans la base de donnée
"L'élément <input type="image">
est un bouton graphique pour envoyer des données."
Donc l'évènement post fonctionne comme avec un input submit? Donc ton post ne se fait pas en js?
<form method="post" action="">
: renseigne l'url de l'action
Je m'excuse si je suis un peu une quiche en php
Ce qui se fait en JS c'est seulement le rechargement de la page ou la redirection vers la page d'accueil pour s'indentifier
Comme j'ai deux choix, je ne peux pas renseigner l'url de l'action puisque l'url est sujet à une condition.
Me fais je bien comprendre?
De plus pourquoi ca marche avec les autres browser mais pas avec IE et Firefox, c'est vraiment bizarre...
Ben tes conditions sont déja renseignées non? Suivant si la clé est renseignée ou pas? Et t'expliquer pourquoi, je ne saurais pas, mais je sais que j'ai eu le meme probleme une paire de fois, ne serait-ce qu'en renseignant un lien de type /folder/ au lieu de /folder/index.php.
Merci pour ton aide, je vais encore faire quelque modif sur mon code et tester apres je laisserai ca pour demain car j'ai les yeux qui commence à piquer ^^
La première chose à faire pour débuguer ce genre de chose, c'est de regarder les données postées avec la console du navigateur (ou firebug)
ensuite tu sais si tu dois examiner côté serveur ou côté navigateur.
tes données partent bien vers le serveur ?
Je rejoins Huggy, fais également un
var_dump($_POST);
dans ton code php pour vérifier que le post est passé
La console javascript c'est ton navigateur qui la propose, et le
<?php var_dump($_POST);?>
place le tout en haut de ta page et fais un test d'envoi, si le var dump te retourne un tableau vide c'est que l'envoi ne s'effectue pas.
La console c'est dans le cas ou l'envoi se passe par javascript (ce qui ne semble pas etre le cas), le var_dump c'est pour un envoi via le formulaire
Merci
Il me marque ca:
array(2) { ["ajouter_x"]=> string(2) "86" ["ajouter_y"]=> string(2) "14" }
// Si l'internaute est connecté
if (isset($_SESSION['pseudo']) && isset($_SESSION['pass']))
{
// Si la clé n'apparait pas alors on affiche le bouton ajouter
if(mysql_result($res,0)==0 )
{
?>
<form method="post" action=" /* URL_DE_LA_PAGE */" enctype="multipart/form-data">
<input type="image" src="../../images/favoris.png" name="ajouter" class="ajouter" value="ajouter" >
</form>
<?php
}
else
{ ?>
<form method="post" action=" /* URL_DE_LA_PAGE */" enctype="multipart/form-data">
<input type="image" src="../../images/favoris-moins.png" name="supprimer" class="ajouter" value="ajouter" >
</form> <?php
}
}
if (isset($_POST['ajouter']) ) // Si on appuie sur le bouton ajouter, on insert toute les données dans la database
{
$sql = "INSERT INTO favoris (id, client, profil, photo, prenom, reference, age, lien) VALUES('','$pseudo' ,'$pseudo$referenceBase','$photoBase','$prenomBase', '$referenceBase', '$ageBase','$lienBase')";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo '<p style= "position: absolute; color: #b9121b; margin-left: 170px; margin-top: 366px"> Profils ajouté a vos favoris!</p>
<script type="text/javascript"> window.setTimeout("location=(\'\');",1000) </script>';
}
elseif (isset($_POST['supprimer']) ) // Si on appuie sur le bouton supprimé, on supprime la ligne de la base de donnée
{
$sql = "DELETE FROM favoris WHERE profil = '$pseudo$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo ' <p style= "color: #b9121b; position: absolute; margin-left: 178px; margin-top: 366px"> Le profils à été supprimé!</p> <script type="text/javascript"> window.setTimeout("location=(\'\');",2000) </script>';
}
else
{
header('location:../../index.php');
exit;
}
"array(2) { ["ajouter_x"]=> string(2) "86" ["ajouter_y"]=> string(2) "14" }" => Sous firefox? C'est donc que ton post fonctionne.
Mais d'où sortent les variables que tu enregistre? Les $pseudo, $reference et compagnie?
Et ajouter_x, ajouter_y également?
C'est vrai que Chrome envoie le 'Value' en plus des coordonnées du clic de la souris
mais Firefox ne transmet que les coordonnées (idem IE)
Tu peux rajouter un input de type hidden avec le name = "ajouter" dans un cas et name="supprimer" de l'autre
et tu vires les 'name' de tes input image
J'ai pas mis tout le code c'est pour ça ^^
par contre ajouter-x et ajouter-y je ne sais pas d'où ca sort.
De m on coté j'ai avancé un peu
j'ai rajouté un onclik sur mes boutons avec le code php pour inserer:
Y'a du mieux mais quand j'actualise ma page, le bouton "ajouter " se change en "supprimer" tout seul sans que je clique dessus
Bon là je suis tout embrouillé et tout naze, inutile de continuer aujourd'hui je vais finir par faire n'importe nawak
Huggy, je vais suivre tes conseils demain.
Merci et bonne nuit les amis
<?php
if(isset($_SESSION['pseudo']) && isset($_SESSION['pass'])){
include("../../membre/auth-data_bd.php");
connexion_bd();
//on va chercher tout ce qui correspond à l'utilisateur
$affiche = mysql_query("SELECT * FROM LOGIN WHERE pseudo='".mysql_real_escape_string(stripcslashes($_SESSION['pseudo']))."' AND pass='".mysql_real_escape_string($_SESSION['pass'])."' AND valide='".mysql_real_escape_string(1)."' AND admin='".mysql_real_escape_string(1)."'");
$result = mysql_fetch_assoc($affiche);
}
//si le statut ne retourne pas 1, ce n'est pas un admin..on éjecte l'utilisateur
if(mysql_num_rows($affiche) == 1){
?>
<form method="post" action="">
<input type="image" src="../../images/supprimer.png" name="delete" class="delete" value="delete" onClick="return(confirm('Etes-vous sûr de vouloir supprimer ce profil?'));" >
</form>
<?php
}
$villeBase = $donnees['ville'];
$paysBase = $donnees['Pays'];
$ageBase = $donnees['age'];
$prenomBase = $donnees['prenom'];
$lienBase = $donnees['lien'];
$photoBase = $donnees['photo'];
$referenceBase = $donnees['reference'];
$pseudo = ($_SESSION['pseudo']);
$test = "$pseudo$referenceBase";
if (isset($_POST['delete']) ) // Si on appuie sur le bouton supprimé le profil, on supprime le profil de la base de données
{
$sql = "DELETE FROM favoris WHERE reference = '$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
$sql = "DELETE FROM profils WHERE reference = '$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo ' <p style= "color: #b9121b; position: absolute; margin-left: 178px; margin-top: 366px"> Le profils à été supprimé!</p> <script type="text/javascript"> window.setTimeout("location=(\'../../catalogue-photos-belles-femmes-russes-ukrainiennes-pour-mariage.php\');",2000) </script>';
}
if (isset($_SESSION['pseudo']) && isset($_SESSION['pass'])){ // Si l'internaute est connecté:
echo '<a href="../../favoris.php"><img src="../../images/afficher.png" class="afficher2"</img> </a>';
}else{ //Sinon on le dirige vers la page d'inscription
echo '<a href="../../index-auth-creer-compte.php"><img src="../../images/afficher.png" class="afficher2"</img> </a>';
echo '<a href="../../index-auth-creer-compte.php"><img src="../../images/favoris.png" class="afficher"</img> </a>';
}
$req="SELECT count(*) FROM favoris WHERE profil='".$test."'"; // on vérifie si la clé pseudo+référence existe dans la database
$res=mysql_query($req);
if (isset($_SESSION['pseudo']) && isset($_SESSION['pass'])){ // Si l'internaute est connecté
if(mysql_result($res,0)==0 ) {// Si la clé n'apparait pas alors on affiche le bouton ajouter
?>
<form method="post" action="">
<input type="image" src="../../images/favoris.png" name="ajouter" class="ajouter" value="ajouter" onclick=" <?php $sql = "INSERT INTO favoris (id, client, profil, photo, prenom, reference, age, lien) VALUES('','$pseudo' ,'$pseudo$referenceBase','$photoBase','$prenomBase', '$referenceBase', '$ageBase','$lienBase')";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo '<p style= "position: absolute; color: #b9121b; margin-left: 170px; margin-top: 366px"> Profils ajouté a vos favoris!</p> ';?> ">
</form> <?php
}else{ ?>
<form method="post" action="">
<input type="image" src="../../images/favoris-moins.png" name="supprimer" class="ajouter" value="supprimer" onclick="<?php $sql = "DELETE FROM favoris WHERE profil = '$pseudo$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo ' <p style= "color: #b9121b; position: absolute; margin-left: 178px; margin-top: 366px"> Le profils à été supprimé!</p> ';
?>">
</form> <?php
}
}
if (isset($_POST['ajouter']) ) // Si on appuie sur le bouton ajouter, on insert toutes les données dans la database
{
$sql = "INSERT INTO favoris (id, client, profil, photo, prenom, reference, age, lien) VALUES('','$pseudo' ,'$pseudo$referenceBase','$photoBase','$prenomBase', '$referenceBase', '$ageBase','$lienBase')";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo '<p style= "position: absolute; color: #b9121b; margin-left: 170px; margin-top: 366px"> Profils ajouté a vos favoris!</p> <script type="text/javascript"> window.setTimeout("location=(\'\');",1000) </script>';
}else{
'<SCRIPT LANGUAGE="JavaScript">document.location.href="../../index.php"</SCRIPT>';
}
if (isset($_POST['supprimer']) ) // Si on appuie sur le bouton supprimé, on supprime la ligne de la base de donnée
{
$sql = "DELETE FROM favoris WHERE profil = '$pseudo$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
echo ' <p style= "color: #b9121b; position: absolute; margin-left: 178px; margin-top: 366px"> Le profils à été supprimé!</p> <script type="text/javascript"> window.setTimeout("location=(\'\');",2000) </script>';
}
if (isset($_SESSION['pseudo']) && isset($_SESSION['pass'])){ // Si l'internaute est connecté
?>
<form method="post" action="../../offrez.php?photo=<?php echo $photoBase;?>&prenom=<?php echo $prenomBase;?>&pays=<?php echo $paysBase;?>&ville=<?php echo $villeBase;?>&reference=<?php echo $referenceBase;?>&age=<?php echo ageCalculator($donnees['age']);?>">
<input type="image" src="../../images/bouton-fleurs.png" name="ajouter" class="cadeaux" value="ajouter" >
</form> <?php
}else{ ?>
<form method="post" action="../../index-auth-creer-compte.php">
<input type="image" src="../../images/bouton-fleurs.png" name="supprimer" class="cadeaux" value="ajouter" >
</form> <?php
}
?>
<style type="text/css">
.ajouter{position: absolute; margin-left: 25px; margin-top: 390px;}
.afficher{position: absolute; margin-left: 25px; margin-top: 390px;}
.afficher2{position: absolute; margin-left: 185px; margin-top: 390px;}
.delete{position: absolute; margin-left: 505px; margin-top: 390px;}
.cadeaux{position: absolute; margin-left: 345px; margin-top: 390px;}
</style>