[RESOLU] Problème dans ma bbd à cause de bigint

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 : [RESOLU] Problème dans ma bbd à cause de bigint

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 14 sept. 2012, 19:34

Ca fonctionne, merci beaucoup :)

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 14 sept. 2012, 13:09

Ok, donc je mettrais lastquerytime en dernière ligne de ma table :)
Je vais essayer.

Merci beaucoup

Re: Problème dans ma bbd à cause de bigint

par xTG » 14 sept. 2012, 08:43

$sql("INSERT INTO wa_communaute VALUES ('','$pseudo', '$mdp', '$mail', '$nom', '$prenom', '$sexe', '$jour', '$mois', '$annee', 0)");
En supposant que c'est le dernier champs de ta table.

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 13 sept. 2012, 23:20

Comment on le mets à zéro dans la requête d'inscription (voir le code de la page : register.php) ? :?

Merci

Re: Problème dans ma bbd à cause de bigint

par xTG » 13 sept. 2012, 09:06

Tu le mets à zéro au sein de ta requête d'inscription, ou bien tu le mets comme NULL par défaut dans ton schéma de table. ;)

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 13 sept. 2012, 01:26

Donc, j'ai copier collé, ton code de ton post d'avant. et j'ai eu une erreur :

Fatal error: Erreur SQL : INSERT INTO wa_communaute VALUES ('','nicolas', '181290', '[email protected]', 'tual', 'nicolas', '1', '18', 'Décembre', '1990')
Column count doesn't match value count at row 1 in /public_html/members/register.php on line 60

Ca veut bien dire que y'a pas le même nombre de champs dans ma requête par rapport à ma bdd, il manque 'lastquerytime' qui n'a pas de valeur vu que c'est un bigint, et que à l'inscription il ne peut pas avoir de valeur, il n'y que quand on se connecte au site qu'il prend une valeur (time)

Re: Problème dans ma bbd à cause de bigint

par moogli » 13 sept. 2012, 00:38

tu ne sais pas définir une variable.

ce code

$sql("INSERT INTO wa_communaute VALUES ('','$pseudo', '$mdp', '$mail', '$nom', '$prenom', '$sexe', '$jour', '$mois', '$annee')");

est la source du problème

celui que je t'ai fournis plus toto est correct !


@+

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 12 sept. 2012, 21:35

Il y a une erreur sur la page register.php

Fatal error: Function name must be a string in /public_html/members/register.php on line 56

Voici le code de la page :
<?php
session_start();
require($_SERVER["DOCUMENT_ROOT"].'/include/connect.php');

	$mail = htmlentities($_POST['mail']);
	$pseudo = htmlentities($_POST['pseudo']);
	$mdp = htmlentities($_POST['mdp']);
	$verif_mdp = htmlentities($_POST['verif_mdp']);
	$nom = htmlentities($_POST['nom']);
	$prenom = htmlentities($_POST['prenom']);
	$sexe = htmlentities($_POST['sexe']);
	$jour = htmlentities($_POST['jour']);
	$mois = htmlentities($_POST['mois']);
	$annee = htmlentities($_POST['annee']);

    if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail))
    {
		
		$message1 = '<html><body><div style="font-size: 14px">Cher(e) <span style="text-transform: capitalize;">'.$prenom.' '.$nom.',</span><br />'; 
		$message1 .= '</br>';
		$message1 .= 'Vous faites désormais partie de la communauté Web Astronomie !<br /><br />'; 
		$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement : <br /><br />';
		$message1 .= 'Votre pseudo : <b>'.$pseudo.'</b><br />';
		$message1 .= 'Votre Mot de passe : <b>'.$mdp.'</b><br /><br />';
		$message1 .= 'Vous pouvez d\'ores et déjà : <br /><br />
					  √  Renseigner ou compléter votre compte<br />
					  √  Partager des articles, photos ou liens<br />
					  √  Rechercher et devenir ami(e) avec des membres du réseau<br />
					  √  Tchater en direct avec vos amis<br />
					  √  Participer au forum<br /><br />
					  Et bien plus encore !<br /><br />
					 ';
		$message1 .= 'Cordialement<br />L\'équipe de <a href="'.$url_site.'">'.$nom_site.'</a></div></body></html>';

		$sql = connect_sql();
		
		$verification = mysql_query("SELECT COUNT(*) FROM wa_communaute WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
		$donnees = mysql_fetch_array($verification)or die (mysql_error());

		if($donnees['COUNT(*)'] >= 1)
		{ 
			$reponse1 = '<div id="reponse02" align="center">L\'adresse email est déjà utilisée, merci d\'en choisir une autre</div>';
		}
		else
		{	
			if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($sexe) || empty($jour) || empty($mois) || empty($annee))
			{
				$reponse1 = '<div id="reponse03" align="center">Un ou plusieurs champs ne sont pas remplis</div>';
			}
			elseif( $mdp != $verif_mdp)
			{
				$reponse1 = '<div id="reponse04" align="center">Les mots de passe ne sont pas identiques</div>';
			}
			else
			{
				$sql("INSERT INTO wa_communaute VALUES ('','$pseudo', '$mdp', '$mail', '$nom', '$prenom', '$sexe', '$jour', '$mois', '$annee')");
				$ret = mysql_query($sql);
				if ($ret === false){
					 trigger_error('Erreur SQL : '.$sql.'<br />'.mysql_error(), E_USER_ERROR);
				}
				$reponse = mysql_query ("SELECT * FROM wa_communaute WHERE pseudo='$pseudo'");
				$donnees = mysql_fetch_array ($reponse);
				$pseudo_sql = $donnees['pseudo'];
				setcookie("pseudo", $_POST["pseudo"], time() + 90 * 24 * 60 * 60, "/");
				$_SESSION['pseudo'] = $pseudo_sql;
				header('location: index.php');
				$entete = "MIME-Version: 1.0\r\n";
				$entete .= "Content-type: text/html; charset=utf-8\r\n";
				$entete .= "From: \"Web Astronomie\" <$email_admin>\r\n";
				$entete .= "Reply-To: $email_admin\r\n";
				mail($mail,'Bienvenue sur '.$nom_site.'' , $message1, $entete);
			}
		}
		mysql_close($sql);
	}
	else {
		$reponse1 = '<div id="reponse05" align="center">Veuillez remplir tous les champs et vérifiez que l\'adresse email est correctement écrite et valide<br />
		<br />En cliquant sur Inscription, vous acceptez nos conditions d\'utilisation.</div>';
	}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<title>Inscription | Web Astronomie</title>
	<meta name="revisit-after" content="15 days">
	<meta name="description" content="Web Astronomie vous permet de publier vos photos, vos actualités, vos articles avec vos amis et les internautes du site. Inscrivez-vous dès maintenant !" />
	<meta name="keywords" content="Web Astronomie, Astronomie, Web, Astro, Communauté, Partagez" />
	<?php include($_SERVER["DOCUMENT_ROOT"].'/include/head.inc.php'); ?>
	
</head>
<body>

	<?php include($_SERVER["DOCUMENT_ROOT"].'/include/header.inc.php'); ?>
	
	<div id="globalContainer">
		<div id="content">
			<div id="main">
				<div id="leftCol">
					<?php include($_SERVER["DOCUMENT_ROOT"].'/include/bloc_left.inc.php'); ?>
				
				</div>
				<div id="contentCol">
					<div id="rightCol">
						<?php include($_SERVER["DOCUMENT_ROOT"].'/include/bloc_right.inc.php'); ?>
					
					</div>
					<div id="contentArea">
						<div class="bloc_center">
							<h1>Inscription</h1>
							<form action="<?php echo $url_site; ?>/members/register.php" method="post" class="form_register"><br />
								<h4><u>Vos identifiants :</u></h4><br />
								<table>
									<tr>
										<td><label for="pseudo">Pseudo : </label></td>
										<td><label for="mdp">Mot de passe : </label></td>
									</tr>
									<tr>
										<td><input type="text" class="input_pseudo_mdp" id="pseudo" name="pseudo" maxlength="20" value="<?php echo $_POST['pseudo']; ?>" /></td>
										<td><input type="password" class="input_pseudo_mdp" id="mdp" name="mdp" maxlength="20" /></td>
									</tr>
									<tr>
										<td><label for="verif_mdp">Confirmer le mot de passe : </label></td>
									</tr>
									<tr>
										<td><input type="password" class="input_pseudo_mdp" id="verif_mdp" name="verif_mdp" maxlength="20" /></td>
									</tr>
								</table>
								<h4><u>Informations personnelles :</u></h4><br />
								<table>
									<tr>
										<td><label for="nom">Nom de famille : </label></td>
										<td><label for="prenom">Prénom : </label></td>
									</tr>
									<tr>
										<td><input type="text" class="input_nom_prenom" id="nom" name="nom" maxlength="20" value="<?php echo $_POST['nom']; ?>" /></td>
										<td><input type="text" class="input_nom_prenom" id="prenom" name="prenom" maxlength="20" value="<?php echo $_POST['prenom']; ?>" /></td>
									</tr>
								</table>
								<table>
									<tr>
										<td><label for="mail">Adresse email : </label></td>
									</tr>
									<tr>
										<td><input type="text" class="input_email" id="mail" name="mail" maxlength="150" value="<?php echo $_POST['mail']; ?>" /></td>
									</tr>
									<tr>
										<td><label>Date de naissance : </label></td>
									</tr>
									<tr>
										<td><select class="jour" name="jour">
												<optgroup label="Jour : ">
													<option value="<?php echo $_POST['jour']; ?>"></option>
													<option value="1">1</option>
													<option value="2">2</option>
													<option value="3">3</option>
													<option value="4">4</option>
													<option value="5">5</option>
													<option value="6">6</option>
													<option value="7">7</option>
													<option value="8">8</option>
													<option value="9">9</option>
													<option value="10">10</option>
													<option value="11">11</option>
													<option value="12">12</option>
													<option value="13">13</option>
													<option value="14">14</option>
													<option value="15">15</option>
													<option value="16">16</option>
													<option value="17">17</option>
													<option value="18">18</option>
													<option value="19">19</option>
													<option value="20">20</option>
													<option value="21">21</option>
													<option value="22">22</option>
													<option value="23">23</option>
													<option value="24">24</option>
													<option value="25">25</option>
													<option value="26">26</option>
													<option value="27">27</option>
													<option value="28">28</option>
													<option value="29">29</option>
													<option value="30">30</option>
													<option value="31">31</option>
												</optgroup>
											</select>
											<select class="mois" name="mois">
												<optgroup label="Mois : ">
													<option value="<?php echo $_POST['mois']; ?>"></option>
													<option value="Janvier">Janvier</option>
													<option value="Février">Février</option>
													<option value="Mars">Mars</option>
													<option value="Avril">Avril</option>
													<option value="Mai">Mai</option>
													<option value="Juin">Juin</option>
													<option value="Juillet">Juillet</option>
													<option value="Août">Août</option>
													<option value="Septembre">Septembre</option>
													<option value="Octobre">Octobre</option>
													<option value="Novembre">Novembre</option>
													<option value="Décembre">Décembre</option>
												</optgroup>
											</select>
											<select class="annee" name="annee">
												<optgroup label="Année : ">
													<option value="<?php echo $_POST['annee']; ?>"></option>
													<option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option>
													<option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option>
													<option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option>
													<option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option>
													<option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option>
													<option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option>
													<option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option>
													<option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option>
													<option value="1980">1980</option><option value="1979">1979</option><option value="1978">1978</option><option value="1977">1977</option>
													<option value="1976">1976</option><option value="1975">1975</option><option value="1974">1974</option><option value="1973">1973</option>
													<option value="1972">1972</option><option value="1971">1971</option><option value="1970">1970</option><option value="1969">1969</option>
													<option value="1968">1968</option><option value="1967">1967</option><option value="1966">1966</option><option value="1965">1965</option>
													<option value="1964">1964</option><option value="1963">1963</option><option value="1962">1962</option><option value="1961">1961</option>
													<option value="1960">1960</option><option value="1959">1959</option><option value="1958">1958</option><option value="1957">1957</option>
													<option value="1956">1956</option><option value="1955">1955</option><option value="1954">1954</option><option value="1953">1953</option>
													<option value="1952">1952</option><option value="1951">1951</option><option value="1950">1950</option><option value="1949">1949</option>
													<option value="1948">1948</option><option value="1947">1947</option><option value="1946">1946</option><option value="1945">1945</option>
													<option value="1944">1944</option><option value="1943">1943</option><option value="1942">1942</option><option value="1941">1941</option>
													<option value="1940">1940</option><option value="1939">1939</option><option value="1938">1938</option><option value="1937">1937</option>
													<option value="1936">1936</option><option value="1935">1935</option><option value="1934">1934</option><option value="1933">1933</option>
													<option value="1932">1932</option><option value="1931">1931</option><option value="1930">1930</option><option value="1929">1929</option>
													<option value="1928">1928</option><option value="1927">1927</option><option value="1926">1926</option><option value="1925">1925</option>
													<option value="1924">1924</option><option value="1923">1923</option><option value="1922">1922</option><option value="1921">1921</option>
													<option value="1920">1920</option><option value="1919">1919</option><option value="1918">1918</option><option value="1917">1917</option>
													<option value="1916">1916</option><option value="1915">1915</option><option value="1914">1914</option><option value="1913">1913</option>
													<option value="1912">1912</option><option value="1911">1911</option><option value="1910">1910</option><option value="1909">1909</option>
													<option value="1908">1908</option><option value="1907">1907</option><option value="1906">1906</option><option value="1905">1905</option>
												</optgroup>
											</select>
										</td>
									</tr>
									<tr>
										<td><label>Vous êtes :</label></td>
									</tr>
									<tr>
										<td>
											<select class="sexe" name="sexe" value="<?php echo $_POST['sexe']; ?>">
												<optgroup label="Sexe : ">
													<option value=""></option>
													<option value="2">Une femme</option>
													<option value="1">Un homme</option>
												</optgroup>
											</select>
										</td>
									</tr>
								</table>
								<?php echo $reponse1; ?>
								<div class="bloc_bouton_form">
									<ul class="bouton_form">
										<li>
											<a href="#" class="tooltip">
												<input type="image" name="Submit" src="<?php echo $url_site; ?>/images/accept_item.png" class="input_submit" alt="" onmouseover="this.src='<?php echo $url_site; ?>/images/accept_item_green.png'" onmouseout="this.src='<?php echo $url_site; ?>/images/accept_item.png'" />
												<span><span class="fleche"></span>S'inscrire</span>
											</a>
										</li>
									</ul>
								</div>
							</form>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
	
	<?php include($_SERVER["DOCUMENT_ROOT"].'/include/footer.inc.php'); ?>

</body>
</html>

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 12 sept. 2012, 21:01

Donc, j'ai mis le mysql_error();
Mais il faut aussi que remet le champ lastquerytime dans ma base de donnée avec bigint(20)

Re: Problème dans ma bbd à cause de bigint

par moogli » 12 sept. 2012, 20:45

met le en commentaire

le header ne peu fonctionner s'il y a affichage avant.

sinon c'est que ton niveau de report d'erreur n'est pas bon

@+

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 12 sept. 2012, 20:41

Le problème c'est que mon formulaire est en bas du script d'envoi du formulaire.
Donc enfait, je ne verrai pas l'erreur, parce qu'il y a un header qui redirige vers la page membre

Re: Problème dans ma bbd à cause de bigint

par moogli » 12 sept. 2012, 20:38

A enlever après avoir réglé le souci, le mysql_error() ne doit pas apparaître sur un environnement de production car il donne des informations plus qu'utiles aux visiteurs mal intentionnés.
j'aurais plutôt dit de gérer correctement le erreurs, mais bon c'est p'tet trop la pour le coup :)
parce que l'on peux simplement lever une erreur avec un bon niveau d'erreur de façon a ce que cela ne soit pas afficher en prod ;)
<?php
$sql = "INSERT INTO wa_communaute VALUES ('','$pseudo', '$mdp', '$mail', '$nom', '$prenom', '$sexe', '$jour', '$mois', '$annee')";
$ret = mysql_query($sql);
if ($ret === false){
     trigger_error('Erreur SQL : '.$sql.'<br />'.mysql_error(), E_USER_ERROR);
}

?>

@+

Re: Problème dans ma bbd à cause de bigint

par xTG » 12 sept. 2012, 19:57

mysql_query("INSERT INTO wa_communaute VALUES ('','$pseudo', '$mdp', '$mail', '$nom', '$prenom', '$sexe', '$jour', '$mois', '$annee')") or die(mysql_error());
A enlever après avoir réglé le souci, le mysql_error() ne doit pas apparaître sur un environnement de production car il donne des informations plus qu'utiles aux visiteurs mal intentionnés.

Re: Problème dans ma bbd à cause de bigint

par nico44530 » 12 sept. 2012, 17:14

comment on dois faire ?

Re: Problème dans ma bbd à cause de bigint

par xTG » 12 sept. 2012, 16:52

Bah bizarrement je ne vois pas de mysql_error() sur la ligne incriminée. ;)