Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1652 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Je débute en PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Je débute en PHP

n°1271171
Heyboy
Posté le 21-12-2005 à 12:31:18  profilanswer
 

J'ai un problème avec un '$' qui apparement n'apparait pas dans mon code.

Citation :


<?
 
 /*---------------  
 DEBUT DU CODE PHP
 ---------------*/
 
 echo("<HTML>" );
 echo("<HEAD>" );
 echo("<TITLE>Plan d adressage IP</TITLE>" );
 echo("<LINK REL='stylesheet' HREF='feuille_de_style.css'>" );
 echo("</HEAD>" );
 echo("<BODY>" );
 echo("<A HREF='index.html'>Aller au formulaire</A>" );
 echo("<BR />" );
 
 /*---------------------------------------------------------------------------------
 Différentes en-têtes comme des feuilles de style ou des script php sont insérés ICI.
 ---------------------------------------------------------------------------------*/
 include("connexion_mysql.php" );
 
   
 /*--------------------------------  
 Requêtes à effectuer dans la base
 --------------------------------*/
 
 $affichage_table=mysql_query("SELECT * FROM adressage" );
 $affichage_champs=mysql_query("SHOW COLUMNS FROM adressage" );
 
 /*--------------------
 Requêtes de supression
 --------------------*/
 if(isset($_GET["enregistrement"])) {
  $enregistrement=$_GET['enregistrement'];
  $del_occ="DELETE FROM adressage WHERE id='$enregistrement'";
  mysql_query($del_occ); }
   
 /*--------------
 Requêtes d'ajout
 --------------*/
 if(isset($_GET["type"]) || isset($_GET["role"]) || isset($_GET["description"]) || isset($_GET["netbios"]) || isset($_GET["user"]) || isset($_GET["systeme"]) || isset($_GET["av"]) || isset($_GET["cd"]) || isset($_GET["domaine"]) || isset($_GET["notes"])) {
  $type=$_GET['type'];
  $role=$_GET['role'];
  $description=$_GET['description'];
  $netbios=$_GET['netbios'];
  $user=$_GET['user'];
  $systeme=$_GET['systeme'];
  $av=$_GET['av'];
  $cd=$_GET['cd'];
  $domaine=$_GET['domaine'];
  $notes=$_GET['notes'];
  $add_occ="INSERT INTO adressage VALUES ('$ip','$type','$role','$description','$netbios','$user','$systeme','$av','$cd','$domaine','$notes')";
  mysql_query($add_occ); //ajoute une occurence. }
 
 
 /*---------------------------------------  
 AFFICHAGE DE LA BASE DANS UN TABLEAU HTML  
 ---------------------------------------*/
  echo("<TABLE BORDER='1' CLASS='tableau' WIDTH='100%'>" );
  echo("<TR>" );
  while($champs_tableau=mysql_fetch_assoc($affichage_champs)) {
  echo("<TD>".$champs_tableau['Field']."</TD>" ); }
  echo("</TR>" );
  while($lignes_tableau=mysql_fetch-array($affichage_table)) {
  echo("<TR>" );
  for($i=0;$i<12;$i++) {
  echo("<TD>".$ligne[$i]."</TD>" ); }
  echo("<TD><A HREF='bdd.php?enregistrement='".$ligne["id"].">Supprimer</A></TD>" );
  echo("</TR>" );
  echo("</TABLE>" );
  echo("<BR />" );
   
 /*------------------
 Fermeture de la base
 ------------------*/
 
 
 /*----------------------
 DEBUT DU CODE JAVASCRIPT
 ----------------------*/
 /*  
 echo("<SCRIPT LANGUAGE='JavaScript'>" );
 echo("var longueur_tableau=document.links.length;" );
 echo("</SCRIPT>" );
 */
   
 echo("</BODY>" );
 echo("</HTML>" );
 
?>


Merci de bien vouloir y jeté un coup d'oeil et de me proposer des conseils.
 
PS: voila le message du d'erreur:
Parse error: parse error, unexpected $ in /home/e-smith/files/ibays/testphp/html/bdd.php on line 89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mood
Publicité
Posté le 21-12-2005 à 12:31:18  profilanswer
 

n°1271172
Berceker U​nited
PSN : berceker_united
Posté le 21-12-2005 à 12:33:48  profilanswer
 

oui mais la ligne 89 correspond à quelle ligne ici :/

n°1271173
Heyboy
Posté le 21-12-2005 à 12:36:45  profilanswer
 

Excusez mes lacunes je ne maitrise pas encore les forums
Pour information la ligne 89 est la dernière ligne soit "?>".
L'erreur doit surement apparaitre avant cette ligne j'imagine.

n°1271174
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-12-2005 à 12:40:21  profilanswer
 

bin t'as plein de trucs qui ch#ent dans ton code :o

Code :
  1. mysql_query($add_occ); //ajoute une occurence. }


La du coup tu fermes pas ton while, vu que l'accolade est commentée
 
et là:

Code :
  1. while($lignes_tableau=mysql_fetch-array($affichage_table)) {
  2.   echo("<TR>" );
  3.   for($i=0;$i<12;$i++) {
  4.   echo("<TD>".$ligne[$i]."</TD>" ); }
  5. ...


tu as carrement oublié l'accolade fermante de ton while.
 
Petit conseil pour finir: je sais pas sur quel livre/site tu apprends le php, mais change... je te conseille php debutant plutôt!

n°1271178
Profil sup​primé
Posté le 21-12-2005 à 12:44:18  answer
 

Il a pas oublié l'accolade, elle est sur la dernière ligne de la boucle. :/
 
Moralité : style à la con, changer de style : indentation visible et cohérente, et accolade fermante seule sur une ligne. :o

n°1271194
Heyboy
Posté le 21-12-2005 à 13:04:00  profilanswer
 

Bon merci pour les remarques sur mon code mais par contre vos commentaires d'ados prépubert vous auriez pu vous les gardez.
En vous remerçiant.

n°1271201
Berceker U​nited
PSN : berceker_united
Posté le 21-12-2005 à 13:10:19  profilanswer
 

Dans la plupart des cas quand lorsque l'erreur se trouve à la dernière ligne de code, c'est à dire ?> c'est qu'il y a une boucle qui n'est pas fermé.
Avec le temps tu repèreras vites les erreurs, c'est pas tous de suite mais ça viendra :)
Ce que Alerim à voulu dire mais avec un manque de finesse car il a surement oublié ses premiers codes ;).  
Il y a une maniere de presenter son code pour des raisons de lisibilité, pour toi et pour les autres. Elle est importante pour repérer les erreurs, alors au début c'est normal parce que tu n'as pas encore t'es repere et une erreur ne te sautera pas au yeux mais avec la pratique tu vas pouvoir coder en commetant un minimum d'erreur de synthaxe.


Message édité par Berceker United le 21-12-2005 à 13:13:11
n°1271202
Heyboy
Posté le 21-12-2005 à 13:12:41  profilanswer
 

En tout cas je suis content avec seulement j'ai appris pas mal de choses du genre l'accolade dans un com. Bon je ferais appel à vous surement dans le futur. A la prochaine :)

n°1271256
Heyboy
Posté le 21-12-2005 à 14:05:24  profilanswer
 

Une autre partie de mon code devrait avoir subir quelques modifications du fait de sa syntaxe trés mauvaise, de plus la requête ne marche pas. Merci de m'apporter votre savoir.

Citation :


 if((isset($_GET['ip'])) /*$_GET["type"]))*/ || (isset($_GET["role"])) || (isset($_GET["description"])) || (isset($_GET["netbios"])) || (isset($_GET["user"])) || (isset($_GET["systeme"])) || (isset($_GET["av"])) || (isset($_GET["cd"])) || (isset($_GET["domaine"])) || (isset($_GET["notes"]))) {
  $add_occ="INSERT INTO adressage VALUES ('$ip','$type','$role','$description','$netbios','$user','$systeme','$av','$cd','$domaine','$notes')";
  mysql_query($add_occ); //ajoute une occurence.
  printf("L'enregistrement s'est déroulé correctement." ); }
  else printf("Aucune variable n'a été enregistrée dans le formulaire" );


Explication du code, je souhaite si les variables en question sont définies au préalable, ajouter une occurence dans ma base de donnée.

n°1271257
Heyboy
Posté le 21-12-2005 à 14:06:40  profilanswer
 

et voila le code plus lisible. :)

Code :
  1. if((isset($_GET['ip'])) /*$_GET["type"]))*/ || (isset($_GET["role"])) || (isset($_GET["description"])) || (isset($_GET["netbios"])) || (isset($_GET["user"])) || (isset($_GET["systeme"])) || (isset($_GET["av"])) || (isset($_GET["cd"])) || (isset($_GET["domaine"])) || (isset($_GET["notes"]))) {
  2.  $add_occ="INSERT INTO adressage VALUES ('$ip','$type','$role','$description','$netbios','$user','$systeme','$av','$cd','$domaine','$notes')";
  3.  mysql_query($add_occ); //ajoute une occurence.
  4.  printf("L'enregistrement s'est déroulé correctement." ); }
  5.  else printf("Aucune variable n'a été enregistrée dans le formulaire" );

mood
Publicité
Posté le 21-12-2005 à 14:06:40  profilanswer
 

n°1271264
Berceker U​nited
PSN : berceker_united
Posté le 21-12-2005 à 14:15:10  profilanswer
 

[:ciler] couuaacc!.... Je dis rien tu débute :o

n°1271270
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-12-2005 à 14:18:18  profilanswer
 

Heyboy a écrit :

et voila le code plus lisible. :)
...


 :love:  :lol:  :love:  
 
euh sinon je pense que c'est des "&&" et non des "||" que tu voulais mettre dans ton if!

n°1271277
Heyboy
Posté le 21-12-2005 à 14:25:47  profilanswer
 

si vous avez mieux à proposer je suis prêt à voir. :)

Citation :


euh sinon je pense que c'est des "&&" et non des "||" que tu voulais mettre dans ton if!  


non c'est bien des OU logiques il ya besoin qu'une variable soit défini pour valider la condition.

n°1271282
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-12-2005 à 14:30:41  profilanswer
 

Heyboy a écrit :

...
non c'est bien des OU logiques il ya besoin qu'une variable soit défini pour valider la condition.


 
Donc il suffit qu'une seule des valeurs soit "settée" pour que tu fasses ton insert?
En d'autres termes j'ai uniquement $_GET["ip"] je fais quand même l'insert avec tous les autres champs à vide?
 
Par ailleurs tu dois egalement utilisé $_GET pour tes variables dans ta requête...

n°1271296
Heyboy
Posté le 21-12-2005 à 14:39:50  profilanswer
 

Oui c'est bien ca. Biensûr ce ne sera pteut être pas l'algo finale mais bon... En tout cas ca ne marchait pas je vais voir avec ce que tu m'a dis...

n°1271297
Heyboy
Posté le 21-12-2005 à 14:40:57  profilanswer
 

En fait je les aies initialisé avec des variables PHP du type $ip=$_GET['ip']

n°1271356
cinocks
Posté le 21-12-2005 à 15:50:01  profilanswer
 

en plus des autres remarques y'a ca qui ne fonctionnera pas
 

Code :
  1. while($lignes_tableau=mysql_fetch-array($affichage_table)) {


 
C'est plutot
 

Code :
  1. while($lignes_tableau=mysql_fetch_array($affichage_table)) {


---------------
MZP est de retour
n°1271357
cinocks
Posté le 21-12-2005 à 15:50:36  profilanswer
 

Heyboy a écrit :

En fait je les aies initialisé avec des variables PHP du type $ip=$_GET['ip']


 
Par la suite, n'oublie de les tester avant de t'en servir. Injection de code tres facile.


---------------
MZP est de retour
n°1271375
Berceker U​nited
PSN : berceker_united
Posté le 21-12-2005 à 16:15:58  profilanswer
 

cinocks a écrit :

Par la suite, n'oublie de les tester avant de t'en servir. Injection de code tres facile.


Quand il parle d'injection de code il veut dire par là qu'il est facile de taper un morceau de synthaxe SQL dans ton champs de formulaire et lorsque tu le postes ben ta requete a une autre forme.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Je débute en PHP

 

Sujets relatifs
problème jeu du pendu en PHP[PHP] Matrice
[Heeelp] PHP en ligne de commandePtite question PHP // Facile pour les pros
[PHP] Probleme droit écriture[PHP] enretgistrer une page PHP au format word ? HTML ?
Php, je débute et ...[Php] Je debute, mais j'ai des erreurs partout :/
Je débute en PHP !!![PHP] Script facile , mais je debute , Aidez-moi !
Plus de sujets relatifs à : Je débute en PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR