Probléme programmation PHP pour enregistremetn dasn deux tables MySQL

Probléme programmation PHP pour enregistremetn dasn deux tables MySQL - PHP - Programmation

Marsh Posté le 25-04-2004 à 11:40:02    

Bonjour :hello: , j'éssaie de faire fonctionnenr le script PHP d'enregistrements des utilisateurs de mon espace mambres qui fonctione. Ce que je voudrait c'est que le mot de passe et l'identifiant de l'utilisateru soit enregistrer en mêm temps dasn la table du forum PHP installé sur le même site et par conséquent hébergeur.
 
En fait là l'inscription ce fait uniquement dans la table d'enregistrement "membres" de l'espace membres, mais je voudrait savoir qu'ell commande je dois rajouter ou suprimmer, ou modifier pour que l'enregistremetn se fasse dans la table de l'espace membres + la table du forum ? :ange:  
 
Dois-je utiliser une commande avec "SELECT" et faire une jointure ? Si oui pourriez vous me dire comment l'ont fait sa car 'jai du mal à comprendre les jointure ? :??:  
 
Pour vous aidez je joins une copie tell quel du script php d'enregistremetn de l'espace membres pour que vous puissiez voir comment il ce présente actuellement.
 
Copie du script :
==================
<?php
include('member/config.php');
 
if ( empty($usernom) || empty($userprenom)|| empty($useradresse)|| empty($usercp)|| empty($userville) || empty($userlogin) || empty($password) || empty($email) )
{
 viewheader();
 echo"<h2>$champsrequis</h2>";
 viewfooter();
 exit;
}
 
if (strlen($userlogin) > 30)
{
 viewheader();
 echo"<h2>$usermaxcar</h2>";
 viewfooter();
 exit;
}
 
if (strlen($userlogin) < 3)
{
 viewheader();
 echo"<h2>$usermincar</h2>";
 viewfooter();
 exit;
}
 
if (strspn($userlogin,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789" ) == 0)  
{
 viewheader();
 echo"<h2>$usercar</h2>";
 viewfooter();
 exit;
}
 
if (strrpos($userlogin,' ') > 0)
{
 viewheader();
 echo"<h2>$userspc</h2>";
 viewfooter();
 exit;
}
 
if (strlen($password) > 30)  
{
 viewheader();
 echo"<h2>$passmaxcar</h2>";
 viewfooter();
 exit;
}
 
if (strlen($password) < 5)
{
 viewheader();
 echo"<h2>$passmincar</h2>";
 viewfooter();
 exit;
}
 
if (strrpos($password,' ') > 0)
{
 viewheader();
 echo"<h2>$passspc</h2>";
 viewfooter();
 exit;
}
 
if ($password != $password_conf)
{
 viewheader();
 echo"<h2>$pass_not_equal</h2>";
 viewfooter();
 exit;
}
 
if (empty($url))  
{  
 
}  
 
if ($url != "" )
{
 $url_ok = "ok";
}
 
if(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
        '@'.
        '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
        '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',
        $email))
    {
  viewheader();
  echo "Email non valide...<br>";
  viewfooter();
  exit;
    }
 
 db_connect();
 $requete=mysql_query("SELECT * FROM membres WHERE login='$userlogin' " );
 $num=mysql_num_rows($requete);
 
 if($num <> 0)
 {
  viewheader();
  echo"<h2>$usernamepris<a href=\"javascript:history.back()\">retour</a></h2>";
  viewfooter();
  exit;
 }
 
 $requetem=mysql_query("SELECT * FROM membres WHERE email='$email' " );
 $numm=mysql_num_rows($requetem);
 
 if($numm <> 0)
 {
  viewheader();
  echo"<h2>$emailpris<a href=\"javascript:history.back()\">retour</a></h2>";
  viewfooter();
  exit;
 }
 
 $flag_enreg = 0;
 if ( ($num == 0) && ($numm == 0) )
 {
  $date = time();  
  $taille = 20;
  $lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
  srand(time());
  for ($i = 0 ; $i < $taille ; $i++)
  {
   $id.=substr($lettres,(rand()%(strlen($lettres))),1);
  }
 
  $sql = "INSERT INTO membres (id, nom, prenom, adresse, cp, ville, email, url, login, password, avatar, blocon, bloc, active, date_reg, clicks, droits) VALUES  
   ('$id',
    '$usernom',
    '$userprenom',
    '$useradresse',
    '$usercp',
    '$userville',
    '$email',  
    '$url',
    '$userlogin',  
    '$password',
    '$photo_name',
    '',
    '',
    '1',
    '$date',
    '0',
    '0'
    )
   ";
 
  $insert = mysql_query ($sql);
  mysql_close();
 
  }
 
 if ($insert)
 {
  viewheader();
?>
  Enregistrement en cours... Merci de patienter.
  <META HTTP-EQUIV="refresh" CONTENT="2; URL=index.php?valider_enreg=1">
<?
  viewfooter();
 }
 
?>
 
Voila d'avance je vous remercie tous pour votre aide. :D  
Chriamast22

Reply

Marsh Posté le 25-04-2004 à 11:40:02   

Reply

Marsh Posté le 25-04-2004 à 13:37:14    

Actuellement voila le code qui ajoute les informations dans la table de l'espace membres :  
 
$sql = "INSERT INTO membres (id, nom, prenom, adresse, cp, ville, email, url, login, password, avatar, blocon, bloc, active, date_reg, clicks, droits) VALUES  
   ('$id',  
    '$usernom',  
    '$userprenom',  
    '$useradresse',  
    '$usercp',  
    '$userville',  
    '$email',  
    '$url',  
    '$userlogin',  
    '$password',  
    '$photo_name',  
    '',  
    '',  
    '1',  
    '$date',  
    '0',  
    '0'  
    )  
   ";  
 
  $insert = mysql_query ($sql);  
  mysql_close();  
 
En ajoutant un autre code de ce genre là mais pour la table du forum PHPBB, ça ne marche pas, l'enregistrement ce fait uniquement dans celle de l'espace membres.
 
Aidez moi SVP ce truc commence à m'énervé je voudrait bien qu'il soit fonctionnel.
 
HELP ME PLEASE || HELP ME PLEASE || HELP ME PLEASE || HELP ME PLEASE.
 
Chrismast22

Reply

Marsh Posté le 25-04-2004 à 15:02:30    

$sql2 ="INSERT into $table ( tes champs)"
$insert = mysql_query($sql2) il a rien de plus simple  
 
jv te donner un exemple a moi j ecrit dans 5table d'un coup
 
dans un 1er temps je definie mes action ..... puis je fait ca : $create1=mysql_query($table1);
  $create2=mysql_query($table2);
  $create3=mysql_query($table3);
  $create4=mysql_query($table4);
  $create5=mysql_query($table5);
et ca marche nickel ;) rien de plus dur  

Reply

Marsh Posté le 25-04-2004 à 17:22:31    

CHRISTMAS,je t'en prie fais gaffe, vraiment, écris en français...
 
Sinon dans l'état, c'est illisible.
 
Faire l'effort d'etre compris c'est déjà un grand pas :)

Reply

Marsh Posté le 26-04-2004 à 13:20:09    

+1 avec yoannletroll
à priori, tu refais l'insert dans la table utilisateur de ton forum [:proy]

Reply

Marsh Posté le 26-04-2004 à 13:23:42    

deja vu que toute ces donnée proviennet suremement d'un forumaire, oublie pas d'ecrire tes donnée de la forme $_POST... :)

Reply

Marsh Posté le 26-04-2004 à 16:26:00    

Aidez moi SVP sa ne marche pas comme agentbombe me dit de faire, avez vous une idée pour faire ça (enregistrement dans 2 tables différente en même temps) SVP.

Reply

Marsh Posté le 26-04-2004 à 16:32:20    

Si tu sais le faire dans une table, tu sais le faire dans x tables, il suffit de repèter x fois la syntaxe, en changeant le insert à chaque étape...

Reply

Marsh Posté le 26-04-2004 à 16:36:33    

Je sais mais sa ne marche pas pourtant j'ai fait ça comme code :
 
$sql2 = "INSERT INTO phpbb_users (user_id, user_active, username, user_password, user_session_time, user_lang, user_email) VALUES
             ('$id',
              '1',
              '$userlogin',
              '$password',
              '$date',
              'french',
              '$email',
              )
              ";
 
         $insert = mysql_query ($sql2);
          mysql_close();
 
Et sa continut à enregistrer dans la seul table de l'espace membres mais pas l'autre. Pourquoi ? Ais-je fait une érreur dans ma seconde requéte que j'ai tapé ?
 
Si oui corigé la moi SVP et renvoyé là moi corectement.
Merci d'avance à tous.

Reply

Marsh Posté le 26-04-2004 à 16:37:41    

essaye

$insert = mysql_query ($sql2) or die(mysql_error());

 :)

Reply

Marsh Posté le 26-04-2004 à 16:37:41   

Reply

Marsh Posté le 26-04-2004 à 16:40:09    

tu aurais pas laissé le mysql_close(); de ta première requête des fois?

Reply

Marsh Posté le 26-04-2004 à 16:40:29    

$insert = mysql_query ($sql2) or die(mysql_error());
 
Merci chacal_one333, pour ça mais je le mes où cette ligne ?
 
Merci pour ta réponse

Reply

Marsh Posté le 26-04-2004 à 16:42:38    

ben tu la remplace.
 
la ou tu as  
$insert = mysql_query ($sql2);
tu met
$insert = mysql_query ($sql2) or die(mysql_error());
 
et tu verra bien s'il te retourne des erreur au moment de l'insertion :)

Reply

Marsh Posté le 26-04-2004 à 16:43:35    

anapajari a écrit :

tu aurais pas laissé le mysql_close(); de ta première requête des fois?


 
non non je l'est retiré voila la premiére requete et la seconde voila comment c'est entré :
 
$sql1 = "INSERT INTO membres (id, nom, prenom, adresse, cp, ville, email, url, login, password, avatar, blocon, bloc, active, date_reg, clicks, droits) VALUES
   ('$id',
    '$usernom',
    '$userprenom',
    '$useradresse',
    '$usercp',
    '$userville',
    '$email',
    '$url',
    '$userlogin',
    '$password',
    '$photo_name',
    '',
    '',
    '1',
    '$date',
    '0',
    '0'
    )
   ";
 
  $insert = mysql_query ($sql);
 
        $sql2 = "INSERT INTO phpbb_users (user_id, user_active, username, user_password, user_session_time, user_lang, user_email) VALUES
             ('$id',
              '1',
              '$userlogin',
              '$password',
              '$date',
              'french',
              '$email',
              )
              ";
 
         $insert = mysql_query ($sql2);
          mysql_close();
 

Reply

Marsh Posté le 26-04-2004 à 16:44:14    

t'es sur que c'est sur la meme base de données?

Reply

Marsh Posté le 26-04-2004 à 16:44:47    

chacal_one333 a écrit :

ben tu la remplace.
 
la ou tu as  
$insert = mysql_query ($sql2);
tu met
$insert = mysql_query ($sql2) or die(mysql_error());
 
et tu verra bien s'il te retourne des erreur au moment de l'insertion :)


 
je et je vous dit

Reply

Marsh Posté le 26-04-2004 à 16:45:36    

okay [:dawa]

Reply

Marsh Posté le 26-04-2004 à 16:45:50    

chacal_one333 a écrit :

t'es sur que c'est sur la meme base de données?


 
Oui j'en est qu'une sur mon hébergement free

Reply

Marsh Posté le 26-04-2004 à 16:46:41    


 
pardon je test là tou de suite et je vous dit

Reply

Marsh Posté le 26-04-2004 à 16:50:12    

Sa ne marche pas  
si vous vouler je vous donne les infos pour y alait et vous verait bien pourquoi sa ne marche pas  

Reply

Marsh Posté le 26-04-2004 à 16:50:56    

mysql_error() te retourne rien :??:

Reply

Marsh Posté le 26-04-2004 à 16:51:57    

chrismast22 a écrit :

pardon je test là tou de suite et je vous dit


 
Sa ne marche pas  
 voila le code complet :  
 
<?php
include('member/config.php');
 
if ( empty($usernom) || empty($userprenom)|| empty($useradresse)|| empty($usercp)|| empty($userville) || empty($userlogin) || empty($password) || empty($email) )
{
 viewheader();
 echo"<h2>$champsrequis</h2>";
 viewfooter();
 exit;
}
 
if (strlen($userlogin) > 30)
{
 viewheader();
 echo"<h2>$usermaxcar</h2>";
 viewfooter();
 exit;
}
 
if (strlen($userlogin) < 3)
{
 viewheader();
 echo"<h2>$usermincar</h2>";
 viewfooter();
 exit;
}
 
if (strspn($userlogin,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789" ) == 0)  
{
 viewheader();
 echo"<h2>$usercar</h2>";
 viewfooter();
 exit;
}
 
if (strrpos($userlogin,' ') > 0)
{
 viewheader();
 echo"<h2>$userspc</h2>";
 viewfooter();
 exit;
}
 
if (strlen($password) > 30)  
{
 viewheader();
 echo"<h2>$passmaxcar</h2>";
 viewfooter();
 exit;
}
 
if (strlen($password) < 5)
{
 viewheader();
 echo"<h2>$passmincar</h2>";
 viewfooter();
 exit;
}
 
if (strrpos($password,' ') > 0)
{
 viewheader();
 echo"<h2>$passspc</h2>";
 viewfooter();
 exit;
}
 
if ($password != $password_conf)
{
 viewheader();
 echo"<h2>$pass_not_equal</h2>";
 viewfooter();
 exit;
}
 
if (empty($url))  
{  
 
}  
 
if ($url != "" )
{
 $url_ok = "ok";
}
 
if(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
        '@'.
        '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
        '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',
        $email))
    {
  viewheader();
  echo "Email non valide...<br>";
  viewfooter();
  exit;
    }
 
 db_connect();
 $requete=mysql_query("SELECT * FROM membres WHERE login='$userlogin' " );
 $num=mysql_num_rows($requete);
 
 if($num <> 0)
 {
  viewheader();
  echo"<h2>$usernamepris<a href=\"javascript:history.back()\">retour</a></h2>";
  viewfooter();
  exit;
 }
 
 $requetem=mysql_query("SELECT * FROM membres WHERE email='$email' " );
 $numm=mysql_num_rows($requetem);
 
 if($numm <> 0)
 {
  viewheader();
  echo"<h2>$emailpris<a href=\"javascript:history.back()\">retour</a></h2>";
  viewfooter();
  exit;
 }
 
 $flag_enreg = 0;
 if ( ($num == 0) && ($numm == 0) )
 {
  $date = time();  
  $taille = 20;
  $lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
  srand(time());
  for ($i = 0 ; $i < $taille ; $i++)
  {
   $id.=substr($lettres,(rand()%(strlen($lettres))),1);
  }
 
  $sql1 = "INSERT INTO membres (id, nom, prenom, adresse, cp, ville, email, url, login, password, avatar, blocon, bloc, active, date_reg, clicks, droits) VALUES
   ('$id',
    '$usernom',
    '$userprenom',
    '$useradresse',
    '$usercp',
    '$userville',
    '$email',
    '$url',
    '$userlogin',
    '$password',
    '$photo_name',
    '',
    '',
    '1',
    '$date',
    '0',
    '0'
    )
   ";
 
  $insert = mysql_query ($sql);
 
        $sql2 = "INSERT INTO phpbb_users (user_id, user_active, username, user_password, user_session_time, user_lang, user_email) VALUES
             ('$id',
              '1',
              '$userlogin',
              '$password',
              '$date',
              'french',
              '$email',
              )
              ";
 
         $insert = mysql_query ($sql2) or die(mysql_error());
          mysql_close();
  }
 
 if ($insert)
 {
  viewheader();
?>
  Enregistrement en cours... Merci de patienter.
  <META HTTP-EQUIV="refresh" CONTENT="2; URL=index.php?valider_enreg=1">
<?
  viewfooter();
 }
 
?>
 
ma base de donnée : http://sql.free.fr/phpMyAdmin/
 

Reply

Marsh Posté le 26-04-2004 à 16:52:59    

chacal_one333 a écrit :

mysql_error() te retourne rien :??:


 
j'ai aucune érreur et j'ai pas le méssage qui me dit votre enregistremetn sera activer dans quelques jours.
 
Voila le code du prog :
http://sql.free.fr/phpMyAdmin/

Reply

Marsh Posté le 26-04-2004 à 16:54:04    

chacal_one333 a écrit :

mysql_error() te retourne rien :??:


 
 
dsl c'est sa le code de mon programme en PHP :
 
<?php  
include('member/config.php');  
 
if ( empty($usernom) || empty($userprenom)|| empty($useradresse)|| empty($usercp)|| empty($userville) || empty($userlogin) || empty($password) || empty($email) )  
{  
 viewheader();  
 echo"<h2>$champsrequis</h2>";  
 viewfooter();  
 exit;  
}  
 
if (strlen($userlogin) > 30)  
{  
 viewheader();  
 echo"<h2>$usermaxcar</h2>";  
 viewfooter();  
 exit;  
}  
 
if (strlen($userlogin) < 3)  
{  
 viewheader();  
 echo"<h2>$usermincar</h2>";  
 viewfooter();  
 exit;  
}  
 
if (strspn($userlogin,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789" ) == 0)  
{  
 viewheader();  
 echo"<h2>$usercar</h2>";  
 viewfooter();  
 exit;  
}  
 
if (strrpos($userlogin,' ') > 0)  
{  
 viewheader();  
 echo"<h2>$userspc</h2>";  
 viewfooter();  
 exit;  
}  
   
if (strlen($password) > 30)  
{  
 viewheader();  
 echo"<h2>$passmaxcar</h2>";  
 viewfooter();  
 exit;  
}  
 
if (strlen($password) < 5)  
{  
 viewheader();  
 echo"<h2>$passmincar</h2>";  
 viewfooter();  
 exit;  
}  
 
if (strrpos($password,' ') > 0)  
{  
 viewheader();  
 echo"<h2>$passspc</h2>";  
 viewfooter();  
 exit;  
}  
 
if ($password != $password_conf)  
{  
 viewheader();  
 echo"<h2>$pass_not_equal</h2>";  
 viewfooter();  
 exit;  
}  
 
if (empty($url))  
{  
 
}  
 
if ($url != "" )  
{  
 $url_ok = "ok";  
}  
   
if(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.  
        '@'.  
        '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.  
        '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',  
        $email))  
    {  
  viewheader();  
  echo "Email non valide...<br>";  
  viewfooter();  
  exit;  
    }  
 
 db_connect();  
 $requete=mysql_query("SELECT * FROM membres WHERE login='$userlogin' " );  
 $num=mysql_num_rows($requete);  
 
 if($num <> 0)  
 {  
  viewheader();  
  echo"<h2>$usernamepris<a href=\"javascript:history.back()\">retour</a></h2>";  
  viewfooter();  
  exit;  
 }  
   
 $requetem=mysql_query("SELECT * FROM membres WHERE email='$email' " );  
 $numm=mysql_num_rows($requetem);  
 
 if($numm <> 0)  
 {  
  viewheader();  
  echo"<h2>$emailpris<a href=\"javascript:history.back()\">retour</a></h2>";  
  viewfooter();  
  exit;  
 }  
 
 $flag_enreg = 0;  
 if ( ($num == 0) && ($numm == 0) )  
 {  
  $date = time();  
  $taille = 20;  
  $lettres = "abcdefghijklmnopqrstuvwxyz0123456789";  
  srand(time());  
  for ($i = 0 ; $i < $taille ; $i++)  
  {  
   $id.=substr($lettres,(rand()%(strlen($lettres))),1);  
  }  
 
  $sql1 = "INSERT INTO membres (id, nom, prenom, adresse, cp, ville, email, url, login, password, avatar, blocon, bloc, active, date_reg, clicks, droits) VALUES  
   ('$id',  
    '$usernom',  
    '$userprenom',  
    '$useradresse',  
    '$usercp',  
    '$userville',  
    '$email',  
    '$url',  
    '$userlogin',  
    '$password',  
    '$photo_name',  
    '',  
    '',  
    '1',  
    '$date',  
    '0',  
    '0'  
    )  
   ";  
 
  $insert = mysql_query ($sql);  
 
        $sql2 = "INSERT INTO phpbb_users (user_id, user_active, username, user_password, user_session_time, user_lang, user_email) VALUES  
             ('$id',  
              '1',  
              '$userlogin',  
              '$password',  
              '$date',  
              'french',  
              '$email',  
              )  
              ";  
 
         $insert = mysql_query ($sql2) or die(mysql_error());  
          mysql_close();  
  }  
 
 if ($insert)  
 {  
  viewheader();  
?>  
  Enregistrement en cours... Merci de patienter.  
  <META HTTP-EQUIV="refresh" CONTENT="2; URL=index.php?valider_enreg=1">  
<?  
  viewfooter();  
 }  
 
?>  
 
voila encore désolé

Reply

Marsh Posté le 26-04-2004 à 16:57:47    

ça ne sert à rien de balancer tout ton code comme ça....
déjà, "ça ne marche pas" ça sert à rien de le dire si tu précise pas pourquoi ça ne marche pas... et notament si il y a ou non des messages d'erreur :/
 
edit: plus précisément, il faut préciser ce qui te fait dire que ça ne marche pas, parce que si tu savais pourquoi ça ne marchait pas tu poserais pas la question :pt1cable:  
enfin je me comprends :o


Message édité par dropsy le 26-04-2004 à 16:59:19
Reply

Marsh Posté le 26-04-2004 à 17:11:46    

dropsy a écrit :

ça ne sert à rien de balancer tout ton code comme ça....
déjà, "ça ne marche pas" ça sert à rien de le dire si tu précise pas pourquoi ça ne marche pas... et notament si il y a ou non des messages d'erreur :/
 
edit: plus précisément, il faut préciser ce qui te fait dire que ça ne marche pas, parce que si tu savais pourquoi ça ne marchait pas tu poserais pas la question :pt1cable:  
enfin je me comprends :o


 
en faite voila j'ai rien du tout alors que j'avais avant le méssage qui m'indiquer que le compte sera activer dans quelques jours n'aparait même plus, et je met mon code pour les deux autre personnes qui m'ont répondut voila pourquoi le code s'affiche, sinon il n'y a pas de méssage d'érreur non plus. pourrais tu me le taper pour moi si je te donne la structure de la table, et l'original du code ?
 
Sinon je peut te donne l'adresse du site pour voir commetn sa fait là : http://dumont.quentin.free.fr/em/register.php
 
voila merci d'avance.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed