Effacer un enregistrement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Effacer un enregistrement

par Zurg » 05 avr. 2005, 15:03

Bon, j'ai trouvé !

c'était bien un erreur de syntaxe à la c** ! Qu'est-ce que ça peut faire perdre comme temps quand même !! enfin, maintenant je le saurai ](*,)

Il ne faut pas mettre
DELETE * blabla
mais
DELETE blablabla
sans *.


Allez, à bientôt,

merci pour votre aide... à la vôtre :boire9: !

par Zurg » 05 avr. 2005, 14:38

Salut,

merci pour l'idée,

effectivement, l'erreur se situe bien au niveau de la requête d'effacement de l'enregistrement. D'après Mr Apache :
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM abonne WHERE mail='[email protected]'' at line 1
pourtant, c'est la même syntaxe que pour la requête de recherche de l'adresse un tout petit peu plus haut,... comprends pas... :roll:

par iclo » 05 avr. 2005, 14:32

ajoute des or die(mysql_error()) pour voir les messages d'erreurs éventuelles.
<?php 
    include("Connections/local/cnn.php"); 
    $mail=$_POST['mail']; 
      
    // test sur le champ mail 
    if (empty ($mail)) { 
        print("Vous n'avez pas saisi d'adresse mail, veuillez en saisir une pour vous désinscrire.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>"); 
        exit; 
        } 
    if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail))) { 
        print("L'adresse saisie n'est pas valide, veuillez vérifier et corriger l'adresse utilisée.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>"); 
        exit; 
        } 
      
    // test de l'adresse dans la base 
    $requete="SELECT * FROM abonne WHERE mail='".$mail."'"; 
    $trouve=mysql_query($requete)or die(mysql_error()); 
    if (mysql_num_rows($trouve) == 0) { 
        print("L'adresse saisie n'existe pas dans la base, assurez vous que l'adresse saisie est la mâme que celle dont vous vous êtes servi(e) pour vous inscrire.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>"); 
        exit; 
    } 
    else if (mysql_num_rows($trouve) != 0) { 
        // retrait de l'adresse dans la base 
        $requete2 = "DELETE * FROM abonne WHERE mail='".$mail."'"; 
        $resultat = mysql_query($requete2) or die(mysql_error()); 
    } 
    ?>

par Zurg » 05 avr. 2005, 14:27

Ca y'est, je suis inscrit !

Bon, j'ai beau chercher, d'après tous les scripts et tutos que j'ai pu lire, ça a l'air super simple, et pourtant, ça marche pas...

Si j'ai bien compris, le principe c'est :

On fait une requête pour vérifier si l'adresse existe,
si oui, un autre requête pour l'effacer, et hop! on l'exécute...

Et hop! ça marche pas... :cry:

Y'a personne qui peut m'expliquer pourquoi ??

par Zurg » 05 avr. 2005, 13:31

Salut !

merci de ta réponse, mais malheureusement ( :cry: ) ça ne marche toujours pas, je n'ai pas de message d'erreur, et les enregistrements "effacés" sont toujours dans la base...

Une autre idée??

La requête n'est pas bonne? ou la manière de l'exécuter ?

par DeNice » 04 avr. 2005, 21:09

Salut!
A mon avis il faut que tu termine ton if en fin de script, comme suit:
<?php 
    include("Connections/local/cnn.php"); 
    $mail=$_POST['mail']; 
     
    // test sur le champ mail 
    if (empty ($mail)) { 
        print("Vous n'avez pas saisi d'adresse mail, veuillez en saisir une pour vous désinscrire.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>"); 
        exit; 
        } 
    if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail))) { 
        print("L'adresse saisie n'est pas valide, veuillez vérifier et corriger l'adresse utilisée.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>"); 
        exit; 
        } 
     
    // test de l'adresse dans la base 
    $requete="SELECT * FROM abonne WHERE mail='".$mail."'"; 
    $trouve=mysql_query($requete); 
    if (mysql_num_rows($trouve) == 0) { 
        print("L'adresse saisie n'existe pas dans la base, assurez vous que l'adresse saisie est la mâme que celle dont vous vous êtes servi(e) pour vous inscrire.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>"); 
        exit; 
    }
    else if (mysql_num_rows($trouve) != 0) {
        // retrait de l'adresse dans la base 
        $requete2 = "DELETE * FROM abonne WHERE mail='".$mail."'"; 
        $resultat = mysql_query($requete2);
    }
    ?>
A tester ... :?
Bon courage ;) ++

Effacer un enregistrement

par Zurg » 04 avr. 2005, 17:21

Re bonjour,

dans la lignée de tout à l'heure, j'essaie maintenant de faire la fonction désinscription à la newsletter, j'ai presque fini, mais la dernière étape, effacer le mail de la base, ne fonctionne pas.

Où est donc mo erreur ??

Voilà le code :
<?php 
	include("Connections/local/cnn.php");
	$mail=$_POST['mail'];
	
	// test sur le champ mail
	if (empty ($mail)) {
		print("Vous n'avez pas saisi d'adresse mail, veuillez en saisir une pour vous désinscrire.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
		exit;
		}
	if (!(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $mail))) {
		print("L'adresse saisie n'est pas valide, veuillez vérifier et corriger l'adresse utilisée.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
		exit;
		}
	
	// test de l'adresse dans la base
	$requete="SELECT * FROM abonne WHERE mail='".$mail."'";
	$trouve=mysql_query($requete);
	if (mysql_num_rows($trouve) == 0) {
		print("L'adresse saisie n'existe pas dans la base, assurez vous que l'adresse saisie est la mâme que celle dont vous vous êtes servi(e) pour vous inscrire.<br><a href=\"javascript:history.go(-1)\">Retour à la page précédente</a><br>");
		exit;
		}
	// retrait de l'adresse dans la base
	$requete2 = "DELETE * FROM abonne WHERE mail='".$mail."'";
	$resultat = mysql_query($requete2);
	?>
Merci de vos conseils Zavizés !