Probléme php Mysql
Fermé
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
-
8 janv. 2010 à 19:05
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 8 janv. 2010 à 21:45
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 8 janv. 2010 à 21:45
A voir également:
- Probléme php Mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Mysql gratuit ou payant - Forum MySQL
4 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
8 janv. 2010 à 19:13
8 janv. 2010 à 19:13
Remplace "<?" par "<?php".
Et précises nous l'erreur.
Et précises nous l'erreur.
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
8 janv. 2010 à 19:22
8 janv. 2010 à 19:22
Y'a pas d'erreur car sa renvoie directement a la page d'erreur se qui veux dire normalement que le code donné au scripte est éronné alors qu'il est correcte donc il dois avoir un problème a se niveau la :
La seul partie du scripte qui renvoie vers la page d'erreur et en gras ci-dessus j'ai fait cela pour mieux voir le problème.
Voilà monscripte corrigé et revu
Code revu et donne l'erreur suivante
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 'id_rest="3" where passe="test"' at line 1
Le probléme c'est que sur la bdd id_rest et a 2
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd); if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;} $requete=mysql_db_query($sql_bdd,"select passe from membre where passe=\"$passe_membre\"",$db_link) or die(mysql_error()); if(mysql_num_rows($requete)==0) { // REDIRECTION VERS LA PAGE ERREUR erreur.htm header("Location:$url_erreur"); }
La seul partie du scripte qui renvoie vers la page d'erreur et en gras ci-dessus j'ai fait cela pour mieux voir le problème.
Voilà monscripte corrigé et revu
<?php require("conf.php"); // CONNEXION A LA BASE DE DONNEE $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd); if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;} $requete=mysql_db_query($sql_bdd,"select passe from membre where passe=\"$passe_membre\"",$db_link) or die(mysql_error()); if(mysql_num_rows($requete)==0) { // REDIRECTION VERS LA PAGE ERREUR erreur.htm header("Location:$url_erreur"); } // SI LE le passe est correcte else { $id_rest=mysql_db_query($sql_bdd,"SELECT id_rest from membre WHERE passe=\"$passe_membre\"",$db_link) or die(mysql_error()); // pour les membre ayant -1 on leur donne accés au site sans plus if ($id_rest == -1) { // CREATION D'UN IDENTIFIANT ALEATOIRE $taille = 20; $lettres = "abcdefghijklmnopqrstuvwxyz0123456789"; srand(time()); for ($i=0;$i<$taille;$i++) { $id.=substr($lettres,(rand()%(strlen($lettres))),1); } // MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE $requete=mysql_db_query($sql_bdd,"update membre set id=\"$id\" where passe=\"$passe_membre\"",$db_link) or die(mysql_error()); // REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE header("Location:zonemembre.php?id=$id"); } //₥embre elseif ($id_rest > 0) // SINON SI les utilisateur on un nombre superieur a 0 on leur soustrait -1 a id_rest { $id_restp = $id_rest - 1; // CREATION D'UN IDENTIFIANT ALEATOIRE $taille = 20; $lettres = "abcdefghijklmnopqrstuvwxyz0123456789"; srand(time()); for ($i=0;$i<$taille;$i++) { $id.=substr($lettres,(rand()%(strlen($lettres))),1); } // MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE $requete=mysql_db_query($sql_bdd,"update membre set id=\"$id\" id_rest=\"$id_restp\" where passe=\"$passe_membre\"",$db_link) or die(mysql_error()); // REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE header("Location:zonemembre.php?id=$id"); } else // SINON le code n'est plus valable... { // REDIRECTION VERS index pour new identification header("Location:index.html"); } } // DECONNEXION MYSQL mysql_close($db_link); ?>
Code revu et donne l'erreur suivante
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 'id_rest="3" where passe="test"' at line 1
Le probléme c'est que sur la bdd id_rest et a 2
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
8 janv. 2010 à 20:08
8 janv. 2010 à 20:08
La fonction header() ne peut être appelée après l'envoie des entêtes au navigateur, c'est-à-dire quand un caractère (espace compris). Donc il ne doit y avoir aucun caractère avant "<?php" et aucun echo/print avant la fonction header()
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
8 janv. 2010 à 21:45
8 janv. 2010 à 21:45
Le hearder a pourtant l'aire de fonctionner...