PHP - Mysql

01/03-2005 à 18:54Bon voila j ai commancé l apprentissage du PHP aujourd hui.
J ai donc débuté en partie avec les variables, les chaines de caractères "echo", "print"

Je ne sais pas si j ai fait le bon choix pour commancer l apprentissage ...
D après-vous est-ce un bon début ? Faut il avant tout voir des choses élémentaires ?


01/03-2005 à 20:35Salut Diskjokey [;)]

Pour moi, c'est un excellent début. C'est exactement ce par quoi il faut commencer. Essaies aussi de connaître les boucles for et while, quelques fonctions utiles.

Entraines toi aussi avec les formulaires :
echo "
<FORM method=post action='page_cible.php'>
<TABLE BORDER=0>
<TR>
<TD>Nom</TD>
<TD>
<INPUT type=text name='id'>
</TD>
</TR>
</TABLE>
</FORM>
"
et dans la page cible, tu pourras utiliser directement la variable $id qui correspond a la valeur rentrée.


Après, il faut que tu comprennes bien l'utilité de ce langage : le PHP s'exécute côté serveur. Le javascript, lui, s'exécute côté client. C'est pas forcément évident à comprendre.

Disons que t'aies un mot de passe qui protege ton site avec un formulaire qui demande un mot de passe.

Si tu le traite en JavaScript, le mot de passe attendu est écrit à l'intérieur de ta page web et donc visible par tout le monde (Affichage -> Code Source).
if (mdp == "truc") {
document.href="http://page_membre.html" //redirection
}
else alert("Veuilez recommencer")

Ca te rappelle peut-être quelque chose [:D] [;)]

Tandis qu'en PHP, c'est traité côté serveur.

$bon_mdp = "toto"
if(empty($identifiant) || empty($mot_de_passe)){
echo "Veuillez remplir les champs !"
echo "non identifie";
return -1;
}
else if($mdp == $bon_mdp)
...
}

Ce code n'est visible par personne

Mais c'est qu'un exemple.
Tu peux aussi générer une page web en fonction de la personne qui la consulte. Comme par exemple

if($mdp == "truc"){
echo "<html>"
echo "<body>"
...
echo "</body>"
echo "</html>"
}

Tu peux aussi générer du javascript comme ceci
echo "alert('Veuilez recommencer')"
Parce que le javascript est exécuté côté client (par le navigateur).

Après avoir appris les bases, tu pourras essayer de consulter une base de données mySQL http://fr.php.net/manual/fr/ref.mysql.php
Il faudra que tu apprennes un peu le SQL pour consulter la base. Mais ça vient vite.

Tu peux te connecter à un serveur FTP, créer des sessions, manipuler des fichiers sur le serveur, etc ...

Tu trouveras tout sur ce site, c'est une bible !
http://fr.php.net/manual/fr/index.php

Bon courage !


----------
image


PHP - Mysql
02/03-2005 à 09:25

Pour moi, c'est un excellent début. C'est exactement ce par quoi il faut commencer. Essaies aussi de connaître les boucles for et while, quelques fonctions utiles.



Je veins de regarder à l instant sur php.net et précise que les boucles for sont les plus complexes en PHP http://fr.php.net/manual/fr/control-structures.for.php

Donc pr le moment je vais reste limité à echo
Aujour dhui je vais plancher sur l exploitation des formulaires (en fait je suis les cours du livre "PHP pour Débutant" et je traite actuellement le 5 eme leçon.

02/03-2005 à 09:46Plus de précisions sur ce manuel : http://www.competencemicro.com/initiation.php?ID=72

10/03-2005 à 00:43Hi

Un peu de lecture les jeunes :
www.phpbuilder.com/columns/weerning20021209.php3?page=1


----------
Yo..rkshire


PHP - Mysql
10/03-2005 à 10:21Arg in English [:o]

19/10-2005 à 19:15Donc je viens de créer mon formulaire :

<em>Accès Extranet</em>
<br>
<form name="extranet" method="post" action="">
<input name="id" type="text" value="Identifiant" size="15">
<br>
<input name="passwd" type="text" value="Mot de passe" size="15">
<br><br>
<input name="valider" type="submit" value="Valider">
</form>

22/10-2005 à 21:03Salut,

Voilà comment tu peux faire :

Le formulaire :

<em>Accès Extranet</em>
<br>
<form name="extranet" method="post" action="verifie_pass.php">
<input name="identifiant" type="text" size="15">
<br>
<input name="mot_de_passe" type="text" size="15">
<br><br>
<input name="valider" type="submit" value="Valider">
</form>



verifie_pass.php

[QUOTE]<html>
<head>
<title>Identifiez-vous !</title>
</head>
<body>
<?
$identifiant = $_POST['identifiant'];
$mot_de_passe = $_POST['mot_de_passe'];

if(empty($identifiant) || empty($mot_de_passe)){
//mettre le code d'action si une des deux zones n'est pas rempli
echo "non identifie";
return -1;
}

$base = mysql_connect ("localhost", "root", "");
mysql_select_db ("BDD") ;

$sql= "SELECT * FROM id WHERE id='$identifiant' AND passwd='$mot_de_passe'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


$resp = mysql_fetch_array($req);

$id=$resp['id'];
$passwd=$resp['passwd'];

$resp = mysql_num_rows($req);

if($resp > 0){
//rediriger
echo "identifié";
}
else{
echo "Utilisateur non identifié";
return -1;
}

?>
</body>
</html>[/QUOTE]

Pour que ce code fonctionne, tu dois créer (avec easyPHP 1.8 par exple) une base de donnée nommée BDD.

Tu crées une table nommée "id" contenant deux champs
id de type VARCHAR et de longueur 20 par exple
passwd de type VARCHAR et longueur 20.

T'insères tes identifiants et mots de passe dans la table et ça devrait rouler [:)(]

Si t'as pas tout compris, demandes moi.

A+


----------
image


PHP - Mysql
25/10-2005 à 23:07OK - donc j ai fais ce qui était indiqué
Pour l insertion de mot de passe je ne sais ou aller.

image

25/10-2005 à 23:23au choix, tu vas dans l'onglet "afficher", et là tu dois pouvoir insérer, ou l'onglet "insérer" je sais pas, j'utilise que phpmyadmin et ça a pas l'air d'etre ça ton interface...

Ou bien dans le champs d'exécution tu éxécute la requete :
INSERT INTO passwd VALUES('un_mot_de_passe','un_autre','encore_un')

ou bien encore tu crées un fichier php du genre :
<?
mysql_query("INSERT INTO passwd VALUES('un_mot_de_passe','un_autre','encore_un')")
?>

et tu l'éxécutes.


----------
image


25/10-2005 à 23:39Merci il fallait passer par insérer.

PHP - Mysql
26/10-2005 à 12:10Pour l identification par mot de passe c est OK.
Le problème c est que je suis dirigé sur la page "Utilisateur identifié" et que je souhaiterais tomber sur la page /admin/index.php

J ajoute que si un internaute tape l adresse /admin/index.php ne tombe pas sur la page d admin mais bien sur la page d identification.

26/10-2005 à 13:24

if($resp > 0){ // Redirige vers la page admin
echo "Utilisateur identifié";
}
else{
echo "Utilisateur non identifié";
return -1;
}



Et si j insère une redirection du type : redirect('/admin/index.php'); en dessous d echo "Utilisateur identifié"; , ça ne fonctionne pas.

30/10-2005 à 15:16Salut,

Le problème c est que je suis dirigé sur la page "Utilisateur identifié" et que je souhaiterais tomber sur la page /admin/index.php



Pour rediriger, il faut utiliser cette fonction :
header('Location: /admin/index.php');

Mais attention, elle ne fonctionnera que si tu ne fais aucun echo ou que tu n'insères aucun code html. De toute manière, cette page d'identification n'a rien à afficher.
cf : http://www.toutestfacile.com/php/errormsgs/standard_header.php


J ajoute que si un internaute tape l adresse /admin/index.php ne tombe pas sur la page d admin mais bien sur la page d identification.



Pour ça, tu peux utiliser les sessions http://www.phpfrance.com/tutoriaux/index.php/2005/07/20/34-les-sessions-php

Au lieu de stocker vos informations chez le visiteur, vous les stockez sur le serveur. Techniquement, vous attribuez au visiteur un identifiant. À chaque fois qu'il revient en annonçant cet identifiant, PHP récupérera toutes les informations qu'il avait sauvegardé et qui sont relatives à ce visiteur.


session_start() ;
$_SESSION['identifie'] = "non";
Tu mets non dès le départ et dans la condition d'identification, tu la passes à oui :

if($resp > 0){
//rediriger
//echo "identifié";
$_SESSION['identifie'] = "oui";
header('Location: /admin/index.php');
}
else{
//echo "Utilisateur non identifié";
return -1;
}

Ensuite, dans /admin/index.php, tu vérifies la valeur :
if ( $_SESSION['identifie'] == "oui" ) {
//code pour l'admin
echo $_SESSION['identifie'] ;
} else if ($_SESSION['identifie'] <> "oui" ) {

echo 'pas identifie' ;
}

Je te mets tout.
////////////////////
//verifie_pass.php//
////////////////////


<?

// initialisation
session_start() ;
$_SESSION['identifie'] = "non";

$identifiant = $_POST['identifiant'];
$mot_de_passe = $_POST['mot_de_passe'];

if(empty($identifiant) || empty($mot_de_passe)){
//mettre le code d'action si une des deux zones n'est pas rempli
//echo "non identifie";
return -1;
}

$base = mysql_connect ("localhost", "root", "");
mysql_select_db ("BDD") ;

$sql= "SELECT * FROM id WHERE id='$identifiant' AND passwd='$mot_de_passe'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


$resp = mysql_fetch_array($req);

$id=$resp['id'];
$passwd=$resp['passwd'];

$resp = mysql_num_rows($req);

if($resp > 0){
//rediriger
//echo "identifié";
$_SESSION['identifie'] = "oui";
header('Location: /admin/index.php');
}
else{
//echo "Utilisateur non identifié";
return -1;
}

?>


///////////////////
//admin/index.php//
///////////////////

<?php
// initialisation
session_start() ;

// tester la présence de la variable 'langage' dans la session
if ( $_SESSION['identifie'] == "oui" ) {
//code pour l'admin
echo $_SESSION['identifie'] ;
} else if ($_SESSION['identifie'] <> "oui" ) {

echo 'pas identifie' ;
}
// on détruit la session
session_destroy();
unset($_SESSION);
?>


----------
image


PHP - Mysql
01/11-2005 à 11:28Bonjour Diskjokey,

[url=http://www.siteduzero.com/php/]siteduzero[/url]


----------
image


02/11-2005 à 02:10Hi

Tant que je suis de passage...quelques comments

> <?
vaut mieux utiliser "<?php"
"<?" peut-etre desactive (short_open_tag)

> $_SESSION['identifie'] = "non";
Valeur booleene > true or false est plus correct ;)

> header('Location: xxx');
perso, j'aime bien mettre un "exit;" apres.

> return -1;
renvoie false ;)

> $base = mysql_connect ("localhost", "root", "");
Il vaut mieux avoir un fichier a part (genre mysql.inc.php).
Ca permet d'avoir le username + password dans un seul fichier.

> $sql= "SELECT * FROM id WHERE id='$identifiant' AND passwd='$mot_de_passe'";
attention a injection SQL (voir l'etat de magic_quotes_gpc)
http://www.phpsecure.info/v2/article/InjSql.php

> $resp = mysql_fetch_array($req);
mysql_fetch_assoc est legerement mieux(= mysql_fetch_array($res, MYSQL_ASSOC))

Pour ce qui est de true/false, un truc pas mal qui permet de tester non seulement la valeur mais egalement le type: "===" au lieu de "=="
(et "!==" & "!=").


----------
Têtu comme une mule image


02/11-2005 à 02:12[QUOTE]if ( $_SESSION['identifie'] == "oui" ) {
[...]
} else if ($_SESSION['identifie'] <> "oui" ) {
[...]
} [/QUOTE]utilise un if..else


----------
Têtu comme une mule image


PHP - Mysql
02/11-2005 à 03:03Tiens, je viens de faire une découverte (suite en MP pour les/l'intéressé(s)). (lol, arf et hi)
En tout cas, voilà un topic qui (pour tout un tas de raisons) me rajeunit.
Mais je ressors vite pour ne pas polluer le débat technique et laisser de nouveau régner la paix chez HP).

02/11-2005 à 09:56Merci pour vos réponses :-) je suis en train de suivre les cours sur http://www.siteduzero.com/php/index.php#part1

Merci de vous identifier

« Forum technique (liste des messages)19 enregistrements / page 1/1