problème avec insert into

Florent
Invité n'ayant pas de compte PHPfrance

28 févr. 2005, 21:34

Bonjour
Je fais un espace membre avec une table et une vingtaine de champs.
Ca fait 2 jours que je lis des manuels, tutoriaux :))) Et j'ai toujours des erreurs a ma ligne insert into. La dernière en date est Parse erreur. La ligne concernée est en gras.

include 'connection_inf.php';
mysql_select_db ('ma_base', $base);

// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0) {
$login=addslashes($_POST['login'])
$pass=md5(addslashes($_POST['pass']))
$village=addslashes($_POST['village'])
$email=addslashes($_POST['email'])
$date = date("Y-m-d H:i:s");

$sql = "INSERT INTO membre (id,login,pass,village,email,date,descriptif)VALUES('','$login','$pass','$village','$email','$date','null')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();

Ca m'embete de demander de l'aide, pour un truc qui est surement tout c**
Mais bon je me lance et je bute déjà.
Merci pour l'aide.[/b]

ViPHP
ViPHP | 2144 Messages

28 févr. 2005, 21:44

il faudrait que tu fasses un print de ta variable $sql après la ligne que tu nous a mis en gras pour voir ce que donne ton query avec toutes les variables. C'est le plus simple pour debugger un query récalcitrant... :D :D

ViPHP
ViPHP | 1024 Messages

28 févr. 2005, 22:01

il manque quelques ";" dans ces lignes:
if ($data[0] == 0) {
$login=addslashes($_POST['login'])
$pass=md5(addslashes($_POST['pass']))
$village=addslashes($_POST['village'])
$email=addslashes($_POST['email'])
$date = date("Y-m-d H:i:s"); 
A+

Pascal

Eléphant du PHP | 114 Messages

01 mars 2005, 19:13

Merci à vous deux. Je savais bien que c'était simple, mais je commençais a avoir le cerveau qui fume :)
Problème de ; !!!

Aussi j'utilise le système de session, que je maitrise très mal.
J'ai ces erreurs après avoir eu accès a la base :

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/florent/monsite-www/test/index.php:12) in /home/florent/monsite-www/test/connection.php on line 19

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/florent/monsite-www/test/index.php:12) in /home/florent/monsite-www/test/connection.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /home/florent/monsite-www/test/index.php:12) in /home/florent/monsite-www/test/connection.php on line 21

cela se produit si celui qui se connecte est bien dans la base et voici les quelques lignes en cause :
(ligne 17 à 22)
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();

Merci d'avance pour l'aide.

ViPHP
fab
ViPHP | 2657 Messages

01 mars 2005, 20:39

quel rapport avec le insert into ? :)
ces erreurs veulent seulement dire que tu as déjà envoyé du HTML ou texte avec tn session_start();
Il faut que le session_start() soit envoyé avant tout le reste le moindre echo fait afficher ces erreurs

Eléphant du PHP | 114 Messages

01 mars 2005, 21:08

> Il faut que le session_start() soit envoyé avant tout le reste le
> moindre echo fait afficher ces erreurs

Ok, merci. Mais j'aimerais comprendre :

Quand dans un espace membre, qu'une personne se connecte.
On regarde dans la base si le pseudo existe et concorde avec le pass.

on fait un test avec if et si c'est ok on a session_start()

Mais alors dans ce cas si il ne doit rien avoir avant, comment fait-on ?

Pas de rapport avec le insert into mais c'est la suite et le code donné dans le premier post peu aider.

ViPHP
fab
ViPHP | 2657 Messages

01 mars 2005, 21:15

tu mets le session_start() au début et apres tu vérifies si c'est un membre ou pas y a rien de difficile a comprendre

Eléphant du PHP | 114 Messages

02 mars 2005, 19:30

tu mets le session_start() au début et apres tu vérifies si c'est un membre ou pas y a rien de difficile a comprendre
Pas difficile, quand on sait. Et effectivement je n'ai plus qu'un message d'erreur sur 3.
Pour la position de session_start(), j'ai copier une partie du code dans un cours trouvé sur un site.
Je ne pensais pas qu'il soit faux.

Bon je te remercie bien quand même.

Exite-ti un site qui répertorie les messages d'erreur ? Avec une "idée" de leur provenance.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 mars 2005, 19:50

oui ici (pour les erreurs PHP)
http://www.nexen.net/erreurs/