Page 1 sur 4
inserer une date
Posté : 21 janv. 2012, 10:11
par Remi1995
bonjour j'ai poster sur se forum pour que vous m'aidiez alors si vous y répondez je vous remercie d'avance
<?php
$sql = 'INSERT INTO membre(login, date) VALUES('Mateo','NOW()')'
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
et esayphp m'affiiche
Parse error: syntax error, unexpected T_STRING in C:\Program Files\EasyPHP-5.3.8.1\www\Espace_Membre\dd.php on line 2
Re: inserer une date
Posté : 21 janv. 2012, 11:23
par Ryle
Dans une chaine délimitée par des apostrophes, il faut protéger les apostrophes qu'elle contient avec un antislash ( \ ) pour que php puisse faire la différence entre la fin de la chaine et le caractère apostrophe
Ah et pis NOW() est une fonction mysql, si tu là mets entre apostrophes quand tu demandes à la base de l'exécuter, ça devient la chaine N O W ( ) et non plus la date courante
Autre problème que tu vas rencontrer juste après, c'est qu'à la fin d'une instruction php, il faut un point-virgule

inserer une date
Posté : 21 janv. 2012, 11:53
par Remi1995
merci sauf que ça ne marche pas c'est bien ça qui faut mettre
<?php
$sql = 'INSERT INTO membre(login,date) VALUES('Mateo',NOW()'/);
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
Re: inserer une date
Posté : 21 janv. 2012, 15:02
par Ryle
Plutôt comme ceci :
$sql = 'INSERT INTO membre(login,date) VALUES(\'Mateo\', NOW())';
Ou encore
$sql = "INSERT INTO membre(login,date) VALUES('Mateo', NOW())";
Re: inserer une date
Posté : 21 janv. 2012, 15:23
par sirakawa
merci sauf que ça ne marche pas c'est bien ça qui faut mettre
<?php
$sql = 'INSERT INTO membre(login,date) VALUES('Mateo',NOW()'/);
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
Si tu vérifiais:
print "$sql";
ça serait instructif.
Et aussi en mettant au début :
error_reporting(E_ALL);
inserer une date
Posté : 21 janv. 2012, 18:29
par Remi1995
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membre', $base);
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("'.mysql_escape_string($_POST['login']).''NOW())'"';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
<form action="date.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
et voici ce que m'affiche easyphp
Parse error: syntax error, unexpected T_STRING in C:\Program Files\EasyPHP-5.3.8.1\www\Espace_Membre\dd.php on line 8
alors si vous pouviez me dire se qui ne va pas je vous serai reconnaissant
Re: inserer une date
Posté : 21 janv. 2012, 18:37
par Ryle
Tu as une erreur de syntaxe ligne 8 (et en l'occurrence, c'est aussi ce qu'indique php

)
Donc regarde la construction de ta requête ligne 8, tu devrais voir des choses qui clochent :
$sql = 'INSERT INTO membre VALUES("'.mysql_escape_string($_POST['login']).''NOW())'"';
Re: inserer une date
Posté : 21 janv. 2012, 20:58
par Remi1995
s'est ou
Re: inserer une date
Posté : 21 janv. 2012, 21:14
par Ryle
C'est là :
$sql = 'INSERT INTO membre VALUES("'.mysql_escape_string($_POST['login']).''NOW())'"';
Re: inserer une date
Posté : 21 janv. 2012, 22:07
par Remi1995
est -ce que s'est la parenthèse ?
Re: inserer une date
Posté : 21 janv. 2012, 22:11
par Remi1995
je n'arrive pas a trouver est ce que s'est le point
Re: inserer une date
Posté : 21 janv. 2012, 22:25
par Remi1995
j'ai essayé ça
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membre', $base);
$sql = 'INSERT INTO membre VALUES("'.mysql_escape_string($_POST['login'])."NOW())";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql ='INSERT INTO membre VALUES("'.mysql_escape_string($_POST['login'])."'NOW())'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
<form action="date.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
mais easyphp m'affiche
Parse error: syntax error, unexpected $end in C:\Program Files\EasyPHP-5.3.8.1\www\Espace_Membre\dd.php on line 22
Re: inserer une date
Posté : 22 janv. 2012, 00:40
par Ryle
$sql = "INSERT INTO membre(login,date) VALUES('Mateo', NOW())";
$sql = "INSERT INTO membre(login,date) VALUES('" . mysql_escape_string($_POST['login']) ."', NOW())";
Re: inserer une date
Posté : 22 janv. 2012, 09:32
par Remi1995
j'ai réussis a enlever Parse error: syntax error, unexpected $end in C:\Program Files\EasyPHP-5.3.8.1\www\Espace_Membre\dd.php on line 22
mais maintenant j'ai Parse error: syntax error, unexpected T_STRING in C:\Program Files\EasyPHP-5.3.8.1\www\Espace_Membre\dd.php on line 7
et voici le code
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membre', $base);
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = "INSERT INTO membre(login,date) VALUES("mysql_escape_string.($_POST['login']" NOW())"
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error())
Re: inserer une date
Posté : 22 janv. 2012, 10:34
par xTG
Il te manque un opération de concaténation avant le mysql_real_escape_string().
