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 14/10/2003 à 02:19
Afficchage page par page
Reuh ...

fallait juste ajouter :

if (isset($_GET['debut'])) $debut = $_GET['debut']; else $debut = 0;

dans le script où on se sert de ton affichage page par page.

smiley Thnx,

@+...
One Love, One Heart, One Unity.
i M@N
le 13/10/2003 à 23:03
Comment on fait une requète SQL avec date > ou = ?
Hello !

Bon ... Méa Culpa ...

La version 1.7 de EasyPHP c'est vrai, quand on a pas codé ses scripts avec la méthode appropriée, c'est vrai c'est la misère !

Alors oki ... je veux bien sur ce coup là que vous me traîtiez de boulet (si, si je mérite ... attendez la suite smiley) parce que le problème sur ce coup c'était pas mon code ... non, non ... c'était juste qu'en local dans ma base de données, y'avait aucune date supérieure ou égale à la date du jour !!

C'est pour ça que ça fonctionnait chez free et pas chez moi. smiley

Halala ... bouletude quand tu nous tiens ...

smiley

@+...
One Love, One Heart, One Unity.
i M@N
le 13/10/2003 à 22:56
Afficchage page par page
Hello !

La_Globule, t'es au courant que ton script pour l'affichage page par page fonctionne pas avec les register_global à off ?

Apparemment ça vient de la variable $début mais j'en suis pas sûr, voici mon log Apache :

127.0.0.1 - - [13/Oct/2003:21:28:14 +0200] "GET /iMANWEB/catalogue_recherche_label.php?Mot=Jackpot&debut=10 HTTP/1.1" 200 31984
127.0.0.1 - - [13/Oct/2003:21:28:18 +0200] "GET /iMANWEB/catalogue_recherche_label.php?Mot=Jackpot&debut=10 HTTP/1.1" 200 31984

Ce qui veut dire que j'ai beau cliquer sur n'importe quel numéro de page ça renvoie toujours sur la première page : ça cherche toujours la variable $debut=10 même si je clic 2, 3 ou 4...

Est-ce parce qu'il faut initialiser la variable $début ... ou une autre peut-être ?

Comment on fait stp ??

@+...
One Love, One Heart, One Unity.
i M@N
le 13/10/2003 à 22:40
Au secours ... dernier avis avant suicide
Hello !

Bon ça commence à s'éclaircir cette affaire ...

<?

if (isset($_POST['cPrenom'])) $cPrenom = $_POST['cPrenom']; else $cPrenom = "";
if (isset($_POST['cEmail'])) $cEmail = $_POST['cEmail']; else $cEmail = "";

function email_OK ($email) {
$test_mail=eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$',$email);

if ($test_mail) {
return TRUE;
}


else {
return FALSE;
}
}


// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}


// on teste le contenu de la variable $cPrenom
if ($cPrenom=="") {
echo '<body onLoad="alert(\'Aucun prénom de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}

// on teste le contenu de la variable $cEmail
if ($cEmail=="") {
echo '<body onLoad="alert(\'Aucun email de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}

else {

// récupération de l'heure courante
$date = date("Y-m-d H:i:s");

// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// récupération du domaine du client
$host = gethostbyaddr($ip);

// récupération du navigateur et de l'OS du client
$navigateur = $_SERVER['HTTP_USER_AGENT'];

// récupération du REFERER

$nom_domaine = $_SERVER['HTTP_HOST'];
if ($nom_domaine != "imanweb.free.fr") {
$referer = $_SERVER['HTTP_REFERER'];
}
else {
$referer ="";
}

if (email_OK ($cEmail)) {

session_start();

$prenom = $_POST['cPrenom'];
$email = $_POST['cEmail'];

$_SESSION['prenom'] = $prenom;
$_SESSION['email'] = $email;
$_SESSION['date'] = $date;
$_SESSION['ip'] = $ip;
$_SESSION['host'] = $host;
$_SESSION['navigateur'] = $navigateur;
$_SESSION['referer'] = $referer;

echo '<head><SCRIPT LANGUAGE="JavaScript">if (parent.frames.length = 1 ){ parent.document.location.href = "http://imanweb.free.fr"; }</SCRIPT></head>';

}

else {
echo '<body onLoad="alert(\'Email invalide...\')">';
redirection('./iframe.php?page=30');
exit;
}
}

?>

Vala comment il fallait coder cette page pour qu'elle fonctionne aussi bien en register_global à on et à off. Alors c'était p'tet évident pour certains, mais pas pour moi.

Un grand merci à LA_GLOBULE, à Zebden et à ma pitite Google qui s'inquiète ... t'inquiète pas Google, je parlais du suicide de ma version 1.7 de EasyPHP. smiley

@+...
One Love, One Heart, One Unity.
i M@N
le 13/10/2003 à 22:14
Fonction qui remplace une donnée par une autre
Hello !

Scart >> tu l'utilises comme ça string_replace si tu veux changer les <b> par des <i> :

$variable_qui_contient_ta_chaine = str_replace ('<b>','<i>', $variable_qui_contient_ta_chaine);

@+...
One Love, One Heart, One Unity.
i M@N
le 12/10/2003 à 17:21
Au secours ... dernier avis avant suicide
reuh ...

Bon LA_GLOBULE chui super déçu ... personne est foutu de me MONTRER comment faire.

Je sais encore récupérer les variables d'un formulaire avec $_POST ... chui pas boulet à ce point.

Pour enregistrer les sessions j'ai pas réussi.

Moi tout ce que je voulais c'était que quelqu'un me MONTRE ... c'est pas dur ... il prends 10 minutes, copie/colle mon code et il me fais voir comment on code pour que le script fonctionne aussi bien en register global à on et à off.

Mais bon ... p'tet j'en demande trop.

@+...
One Love, One Heart, One Unity.
i M@N
le 12/10/2003 à 15:14
Au secours ... dernier avis avant suicide
Hello !

J'ai un script qui utilise les sessions pour le login.

Le script fonctionnait nickel avant que j'installe la version 1.7 de EasyPHP, et depuis il n'enregistre plus les variables de sessions dans le fichier de session, et il n'affiche plus l'alerte lorsque un des champs du formulaire n'a pas été rempli.

Note importante : dans mon php.ini, les register global sont à off (par défaut dans la 1.7) et je souhaite rester à off et coder mes scripts de façon à ce qu'ils fonctionnent aussi bien en on qu'en off.

Voici mon formulaire :

<html>
<body>
<center>
<b>Pour profiter de l'intégralité du site (sélections, riddims, galleries et images de sounds),<br>merci d'entrez votre prénom et votre email.</b>
<table>
<form method="post" action="./login.php">
<table border="0">
<tr>
<td><font face="tahoma" size="1"><u>Prénom :</u></td>
<td>
<input type="text" name="cPrenom" size="30" value="<? echo $_SESSION['prenom']; ?>">
</td>
</tr>
<tr>
<td><font face="tahoma" size="1"><u>Email :</u></td>
<td>
<input type="text" name="cEmail" size="30" value="<? echo $_SESSION['email']; ?>">
</td>
</tr>
<tr>
<td> </td>
<td>
<center><INPUT TYPE=submit value="login"></center>
</td>
</tr>
</table>
</form>
</body>
</html>

Voici mon fichier login.php :

<?

function email_OK ($email) {
$test_mail=eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$',$email);

if ($test_mail) {
return TRUE;
}


else {
return FALSE;
}
}


// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}


// on teste le contenu de la variable $cPrenom
if ($cPrenom=="") {
echo '<body onLoad="alert(\'Aucun prénom de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}

// on teste le contenu de la variable $cEmail
if ($cEmail=="") {
echo '<body onLoad="alert(\'Aucun email de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}

else {

// récupération de l'heure courante
$date = date("Y-m-d H:i:s");

// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// récupération du domaine du client
$host = gethostbyaddr($ip);

// récupération du navigateur et de l'OS du client
$navigateur = $_SERVER['HTTP_USER_AGENT'];

// récupération du REFERER
$nom_domaine = $_SERVER['HTTP_HOST'];
if ($nom_domaine != "imanweb.free.fr") {
$referer = $_SERVER['HTTP_REFERER'];
}
else {
$referer ="";
}

if (email_OK ($cEmail)) {

session_start();

$prenom = $cPrenom;
$email = $cEmail;

session_register("prenom");
session_register("email");
session_register("date");
session_register("ip");
session_register("host");
session_register("navigateur");
session_register("referer");

echo '<head><SCRIPT LANGUAGE="JavaScript">if (parent.frames.length = 1 ){ parent.document.location.href = "http://imanweb.free.fr"; }</SCRIPT></head>';

}

else {
echo '<body onLoad="alert(\'Email invalide...\')">';
redirection('./iframe.php?page=30');
exit;
}
}

?>

Voici mon php.ini :

http://www.lephpfacile.com/wall/lire_wall.php?wall=873

Merci de m'aider parce que là ça fait 3 jours que je galère ...

@+...
One Love, One Heart, One Unity.
i M@N
le 12/10/2003 à 13:57
Comment on fait une requète SQL avec date > ou = ?
Reuh ..

En effet, mon code est correct, y compris la balise <font> qui est refermée dans mes 2 if en fait ...

J'ai mis le script sur le server de free.fr et ça fonctionne nickel.

C'est donc encore EasyPHP 1.7 qui me fout la merde.

Je crois que je vais remettre la 1.6 parce que là c'était même pas une histoire de register global à on ou off ... à moins que quelqu'un m'explique ce que je dois configurer parce que là je craque ...

J'ai aussi un script de login avec des sessions qui fonctionne plus en local : au moment de tester les variables $prenom et $email (y compris en les déclarant avec !isset) il m'écrit dans le fichier de session : prenom : 0 email : 0.

Bref, la 1.7 c'est trop la misère !!

@+...
One Love, One Heart, One Unity.
i M@N
le 12/10/2003 à 12:18
Comment on fait une requète SQL avec date > ou = ?
Hello !

J'essaye de faire afficher les dates des concerts dont la date est supérieure ou égale à la date du jour, mais j'arrive pô, ça m'affiche rien !

Je suis sous EasyPHP 1.7, avec register global = off, mais même si le changement on/off entre la 1.6 et la 1.7 m'a causé plein de misères je ne crois pas que mon souci vienne de là cette fois ...

<?

// on recupere la date de l'instant présent
$date_today = date("Y-m-d H:i:s");

// on décompose la date du jour
sscanf($date_today, "%4s-%2s-%2s %2s:%2s:%2s", &$an_today, &$mois_today, &$jour_today, &$heure_today, &$min_today, &$sec_today);

// on se connecte à notre base
include("./base_connexion.php");

// lancement de la requête.
$sql = 'SELECT date, artiste, texte_events FROM events WHERE date >= "'.$date_today.'" ORDER BY date ASC';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

// on récupère les valeurs qui nous intéressent
$date = $data['date'];
$artiste = $data['artiste'];
$texte_events = $data['texte_events'];

// on décompose la date
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", &$an, &$mois, &$jour, &$heure, &$min, &$sec);

// on insère des retours à la ligne HTML à chaque retour chariot
$texte_events = nl2br ($texte_events);

// on affiche les résultats

if (($an == $an_today)&& ($mois == $mois_today)&& ($jour == $jour_today)) { echo '<font face="Courrier"; color="#008000"><b>Aujourd\'hui</b>'; }
else { echo '<font face="Courrier"; color="#008000"><b>'.$jour.'/'.$mois.'/'.$an.'</b>'; }
echo '<br><b>'.$artiste.' : </b></font>';
echo '<br>'.$texte_events.'<br><br>';
}

// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);

// on ferme la connexion à la base de données
mysql_close ();

?>

Merci pour le coup de main,

@+...
One Love, One Heart, One Unity.
i M@N
le 12/10/2003 à 11:41
base mysql sur multimania
Hello !

Voici les infos que j'ai pu récupérer sur http://www.google.fr[lien] :

[lien]http://www.01net.com/article/211482.html[/lien]

1 - Ouvrez votre navigateur et connectez-vous au site de Multimania : www.multimania.lycos.fr . Cliquez sur le bouton S'inscrire , situé en haut et à gauche de la page, juste sous le logo de Lycos. Lisez les conditions d'adhésion et cliquez sur Accepter .

2 - Remplissez le formulaire en choisissant un identifiant et un mot de passe et en indiquant vos coordonnées personnelles (attention, à l'étape 4 , il s'agit simplement de recopier dans la zone de saisie le code de sécurité affiché à l'écran). Cliquez ensuite sur S'inscrire ! .

3 - Quelques secondes plus tard, vous recevrez un courriel de confirmation. Cliquez sur le lien contenu dans ce courriel (ou recopiez l'adresse dans votre navigateur) pour valider votre compte. Conservez précieusement cet e-mail.

4 - Une fois votre compte validé, retournez sur la page d'accueil de Multimania et identifiez-vous en cliquant sur le bouton S'identifier . Cliquez ensuite sur PHP4U/MySQL , dans l'encadré Construire son site de la colonne de gauche, puis sur le lien Activez votre compte PHP4U et paramétrez votre base de données SQL. Cochez les deux cases Je désire activer le service PHP et Je désire activer ma base de données MySQL , puis cliquez sur Valider les modifications .

[lien]http://webmaster.lycos.fr/topics/technic/php/php-workshop4/1/[/lien]

Connexion à la base de données

Comme son nom l'indique, MySQL supporte le langage de requête standard SQL (Structured Query Language) qui va permettre de lire les enregistrements de notre base de données, et surtout de les choisir et de les trier sur des critères précis. Grâce à PHP4, nous allons pouvoir envoyer ces requêtes à la base de données depuis notre page Web.

Remplissez votre base. Cet atelier suppose qu'il existe dans votre base MySQL personnelle une table article contenant au minimum un article dont le champ ID est égal à 1.

Une première étape s'impose : la connexion à la base de données.

1: <html>
2: <head>
3: <title> Atelier PHP N°4 - testDb.php </title>
4:
5: <?php
6: $db = mysql_connect("localhost","user","password");
7: mysql_select_db("user_db",$db);

[...]

13: ?>
14:
15: </head>

Deux lignes suffisent pour opérer la connexion à votre base MySQL. La première est utilisée pour se connecter au serveur MySQL (ligne 6). On utilise pour cela la fonction mysql_connect() accompagnée de votre identifiant de connexion (user) et de votre mot de passe (password). Après cette connexion, la variable entière $db contient soit un identifiant de connexion, soit zéro.

Noms de variables. Attention ! En PHP, les noms de variables commencent toujours par un $.

Cet identifiant de connexion va nous être utile pour nous connecter à la base de données proprement dite (ligne 7). Etant donné que nous allons utiliser une seule base de données tout le long de la page, c'est à la fonction mysql_select_db() que nous allons faire appel. En effet, celle-ci permet de se connecter une fois pour toutes à la base de données. On utilise avec cette fonction l'identifiant créé plus haut et le nom de la base, composé de l'identifiant et du suffixe _db (user_db).

On vous a simplifié la tâche. Une seule ligne $db = mysql_connect() suffit pour se connecter à la fois au serveur et à la base de données !

[lien]http://www.mines.u-nancy.fr/~tisseran/cours/php/php3.html[/lien]

Vous pouvez aussi choisir de créer un compte chez un hébergeur gratuit acceptant php et MySql. Par exemple chez www.multimania.lycos.fr les paramètres de connexion pour une base "tsie" seraient :
<?php // fichier login.phtml : connexion à la BD
$mysql = "localhost"; // nom du serveur
$login = "tsie_fr"; // identifiant de l'utilisateur
$pwd = ""; // mot de passe de l'utilisateur
$base = "tsie_db"; // nom de la base
...

[lien]http://www.breakobus.net/article_view.php?faq=2&fldAuto=33[/lien]

$dbhost = "localhost"; (c'est l'hôte)
$dbuname = "indentifiant_fr"; (c'est votre identifiant. Sur Multimania il faut ajouter _fr)
$dbpass = ""; (Ici, mettez le mot de passe de votre base de données. Sur Multimania pas besoin)
$dbname = "identifiant_db"; (Ici, le nom de votre base. Sur Multimania c'est l'identifiant suivi de _db
$prefix = "nuke";
$user_prefix = "nuke";
$dbtype = "MySQL";

Cet exemple est valable uniquement pour Multimania sachant que chez eux le nom de votre base est le même que votre identifiant.

Avant, il fallait mettre $dbhost = "sql.multimania.com"; depuis la fusion avec Lycos il suffit de mettre $dbhost = "localhost";.
Avant il fallait aussi mettre $dbpass = "votre_mot_de_passe"; maintenant il faut mettre $dbpass = ""; (aucun mot de passe) ce qui permet de ne pas risquer que quelqu'un ne puisse le découvrir et vous faire des misères.

J'espère que ça t'aide,

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