i M@N

  • Signature
    One Love, One Heart, One Unity.
  • Site web
  • Nombre de sujets
    92
  • Nombre de messages
    1 681
  • Nombre de commentaires
    35
  • Nombre de news
    Aucune
  • Niveau en PHP
    Bon

Ses derniers messages sur les forums

i M@N
le 24/08/2006 à 12:55
Aucun Update/insert de ma BDD
Hello !

session_id() = nom du cookie de session.

Une session est active tant que tu ne fermes pas ton navigateur ou que le temps alloué à une session configuré dans le php.ini n'est pas dépassé.
Tout ça est dans la doc : Manuel. smiley

Le truc c'est de détruire la session lors d'un log-out de ton visiteur : session_unset et session_destroy mais aussi de mettre à jour le pseudo lors de l'update.

@+...
One Love, One Heart, One Unity.
i M@N
le 23/08/2006 à 20:51
Aucun Update/insert de ma BDD
Reuh ...

Je vois pas l'intérêt de prendre un chiffre aléatoire (uniquid) pour identifier ton visiteur, un identifiant de session me paraît plus approprié : garde ton session_id().

@+...
One Love, One Heart, One Unity.
i M@N
le 23/08/2006 à 20:47
Nouveau ici je suis !
Hello !

Déjà t'es pas dans la bonne section ... spa grave tu feras gaffe la prochaine fois. smiley

Sinon un simple .htaccess dans le répertoire à protéger fait l'affaire pour ça :
AuthType Basic
AuthName "Access for /repertoire"
AuthUserFile /access/htpass.txt
require user krugoss

Ensuite tu crées le fichier htpass.txt :
krugoss:krugosspass
user2:pass2

Enfin tu empêches tout le monde d'avoir accès à ce fichier en mettant un second .htaccess dans le répertoire /access/ :
deny from all

ça fonctionne comme ça pour free.fr, d'autres hébergeurs peuvent nécessiter le cryptage md5 du pass ou stocker le fichier avec les pass ailleurs.

@+...
One Love, One Heart, One Unity.
i M@N
le 23/08/2006 à 12:19
Aucun Update/insert de ma BDD
Reuh ...
Bah voilà, la requête sql d'insertion n'avait pas le bon ordre et il manquait le champ "id" ... essaye comme ça :
/*on crée un enregistrement dans la table*/
$sql = "INSERT INTO tbl_statistique VALUES ('','$session_id','$pseudo','$date','$time','$parcours')";


@+...
One Love, One Heart, One Unity.
i M@N
le 23/08/2006 à 09:58
Aucun Update/insert de ma BDD
Hello !

Donne tous les champs de ta tale tbl_statistique dans l'ordre stp.

Quand un visiteur arrive sur ton site, la première chose qu'il fait c'est se connecter ou il peut surfer sans être connecté ?

@+...
One Love, One Heart, One Unity.
i M@N
le 22/08/2006 à 20:38
Aucun Update/insert de ma BDD
Reuh ...

lis le code que je te donne :
<?php
/*on ouvre la session*/
session_start();
$session_id = session_id();
/*...*/
?>
je prends la fonction session_id() et j'en fait une variable $session_id ... t'as pas à modifier ça. smiley

Lis aussi les erreurs :
Erreur SQL !
INSERT INTO tbl_statistique VALUES ('david','2006-08-22','1156263288','/famille2/nous_test.php','')
Column count doesn't match value count at row 1
si tu parles anglais ça coule de source, sinon ça veut dire que le nombre de colonnes mentionné dans la requête ne correspond pas au nombre de colonne de la table.
Essaye en insérant toutes les valeurs pour tous les champs de la table.

aha trouvé une astuce... .session_id() avec la parenthèze :-) mais là j'ai un truc sur session start heuu
session_start(): Cannot send session cache limiter - headers already sent ...
là je capte rien...
No comment ... smiley

@+...
One Love, One Heart, One Unity.
i M@N
le 22/08/2006 à 16:22
Aucun Update/insert de ma BDD
Hello !

Et c'est quoi l'erreur ? y'en a une ou rien ne s'affiche ??

Sinon essaye comme ça pour voir :
<?php 
/*on ouvre la session*/
session_start();
$session_id = session_id();
/*connexion*/
$base = mysql_connect ('Server', 'user', 'pass') or die('Erreur de connexion');
mysql_select_db ('bases', $base) or die('Base inexistante');
if(!isset($_SESSION['parcours']))
{
/*il s'agit d'un nouveau visiteur*/
/*on crée $_SESSION['parcours'] et $_SESSION['date']*/
$_SESSION['date'] = date('Y-m-d');
$_SESSION['time'] = time('H:i:s');
$_SESSION['parcours']= $_SERVER['REQUEST_URI'];
$parcours=$_SESSION['parcours'];
$time=$_SESSION['time'];
$date=$_SESSION['date'];
$pseudo=$_SESSION['pseudo'];
/*on crée un enregistrement dans la table*/
$sql = "INSERT INTO tbl_statistique VALUES ('$pseudo','$date','$time','$parcours','$session_id')";
}
else
{
/*on ajoute la nouvelle page vue, séparée par un point virgule, à la variable de session*/
$_SESSION['parcours'].= ';'.$_SERVER['REQUEST_URI'];
/*on ajoute à la variable de session l'heure à laquelle la page a été vue*/
$_SESSION['time'].= ';'.time('H:i:s');
$parcours=$_SESSION['parcours'];
$time=$_SESSION['time'];
/*on met la table à jour*/
$sql = "UPDATE tbl_statistique SET parcours='$parcours' WHERE sessid='.$session_id.'";
}
mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
?>

Les concaténations sont souvent chiantes avec les UPDATES, mais tu devrais aussi éviter de compliquer l'écriture de tes requêtes :
$sql = "UPDATE tbl_statistique SET parcours='$parcours'";
$sql .= "WHERE sessid='".session_id()."'";

mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
mouarf !

Enfin j'ai fermé le } avant de lancer la requête, sinon ta première requête ne se fait pas.

@+...
One Love, One Heart, One Unity.
i M@N
le 21/08/2006 à 20:43
Envoyer variable dansune autre page
Hello !

Ton lien c'est http://monsite.com/page.php?extension=exe

Dans page.php tu auras quelque chose comme :
<?php
/*on récupère la variable issue de $_GET et on l'initialise*/
if (isset($_GET['extension'])) $extension = $_GET['extension']; else $extension = "";
/*on prépare notre requête SQL*/
$sql = 'SELECT id,nom,extension,adresse FROM ta_table WHERE extension = "'.$extension.'" ORDER BY nom';
/*on exécute la requête*/
$result = mysql_query($sql);
/*si on a des résultats*/
if ($tuple) {
/*on affiche l'entête du tableau*/
echo '<table><td width="50%">Nom</td>';

echo '<td width="50%">Adresse</td>';
while ($data = mysql_fetch_array($result)) {

$nom = $data['nom'];

$adresse = $data['adresse'];
/*affiche les résultats dans la suite du tableau*/
echo '<td width="50%">'.$nom.'</td>';

echo '<td width="50%">'.$adresse.'</td>';
}
echo '</table>';
/*sinon on affiche rien*/
else {

echo 'Aucun article.';

}
mysql_free_result($result);

}
?>

@+...
One Love, One Heart, One Unity.
LoadingChargement en cours