aider un débutant en html/php

Nouveau WRInaute
Bonjour,

Je débute la programmation web et je cherche qui peut m'aider à corriger les erreurs dans ce code:

<html>
<head>
<title>Recherche dans le repertoire téléphonique</title>
</head>
<body>
<form method="post" action="repertoire.php">
Tapez le nom du client que vous cherchez :
<input type="text" maxlengh=40 name="assure">
<input type="submit" value="Rechercher" name="rechercher2">
<a href=Afficher le Répertoire" name="repertoire">
<?php
echo"Le numéro du téléphone de Mr.".$_post["assure"];
echo"est:";
include 'connection.php';
include 'repertoire.php';
echo($table);
</form>
</body>
</html>

Merci
 
Nouveau WRInaute
merci amph37

voilà le fichier "repertoire.php"
//sélectionner les tel et leur propriétaire
<?php
$requete = "SELECT tel,assure FROM production WHERE client=$_post["assure"];
$result = mysql_query ($requete,$base);
$table =mysql_fetch_object($result);
mysql_free_result($result);
?>

"connexion.php"
<?php
$serveur=msql_connect("serveur","utilisateur","password");
if(!$serveur)
{
die('Non connecté :'.msql_error());
}
$base=msql_select_db('gestionnaire',$serveur);
if(!$base)
{
'Impossible d\'utiliser la base :'.msql_error();
}
msql_close();
?>

et ces deux là ?
 
WRInaute accro
C'est pas non plus la peine de upper son message toutes les cinq minutes. On est le dernier dimanche d'avant Noel, et il n'y a pas obligatoirement foule.

Sinon je ne comprends pas la question, c'est quoi des fichiers homogènes ?
 
WRInaute accro
imanephp a dit:
merci amph37

voilà le fichier "repertoire.php"
//sélectionner les tel et leur propriétaire

Code:
<html> 
<head> 
<title>Recherche dans le repertoire téléphonique</title> 
</head> 
<body> 
<form method="post" action="repertoire.php"> 
Tapez le nom du client que vous cherchez : 
<input type="text" maxlengh=40 name="assure"> 
<input type="submit" value="Rechercher" name="rechercher2"> 
<a href=Afficher le Répertoire" name="repertoire"> 
<?php 
echo"Le numéro du téléphone de Mr.".$_post["assure"]; 
echo"est:"; 
include 'connection.php'; 
include 'repertoire.php'; 
echo($table); 
</form> 
</body> 
</html> 

<?php
$requete = "SELECT tel,assure FROM production WHERE client=$_post["assure"];
$result = mysql_query ($requete,$base);
$table =mysql_fetch_object($result);
mysql_free_result($result);
?>

"connexion.php"
<?php
$serveur=msql_connect("serveur","utilisateur","password");
if(!$serveur)
{
die('Non connecté :'.msql_error());
}
$base=mysql_select_db('gestionnaire',$serveur);
if(!$base)
{
'Impossible d\'utiliser la base :'.msql_error();
}
mysql_close();
?>

et ces deux là ?

M'a bien fallu trois fois pour comprendre ce que tu veux. On reprend avec un formulaire auto invocant. Pour débuter, tu peux passer par là, ce sopnt les notes de cours que j'utilise dans les formations que je donne -http://www.ybet.be/internet14/php-1.php ca devrait déjà te faire avancer un peu plus vite que tes essais à fait dans les lectures de 30 sites.
Formulaire auto invocant, le principe
// on met la recherche uniquement en cas de méthode POST //(éventuellement GET)
if (ISSET($_POST['formulaire']))
{
//recherche dans la table suivant le critère sélectionné dans le formulaire
}

<form method="post">
Tapez le nom du client que vous cherchez :
<input type="text" maxlengh=40 name="assure">
<input type="submit" value="Rechercher" name="rechercher2">

</form>

Remarque déjà que je n'appelle aucun fichier dans mon formulaire, il revient automatiquement au fichier en cours.

Maintenant le script.
Code:
<html> 
<head> 
<title>Recherche dans le repertoire téléphonique</title> 
</head> 
<body> 

<?php
if (ISSET($_POST['formulaire']))
{

$serveur=mysql_connect("serveur","utilisateur","password");
if(!$serveur)
{
die('Non connecté :'.mysql_error());
}
$base=msql_select_db('gestionnaire',$serveur);
if(!$base)
{
'Impossible d\'utiliser la base :'.mysql_error();
}
$requete = "SELECT tel,assure FROM production WHERE client=$_post['abonne'];
$result = mysql_query ($requete,$base);
// boucle tant qu'il y a des résultats
while ($tableau=mysql_fetch_array($result)){ 
    echo "Le téléphone de Monsieur ".$_POST['assure']." est ".$tableau['tel']."<br>; 
} 
// on ferme la base de donnée
mysql_close();

}
// formulaire
?>
<form method="post"> 
Tapez le nom du client que vous cherchez : 
<input type="text" maxlengh=40 name="assure"> 
<input type="submit" value="formulaire" name="rechercher"> 
</form> 
</body> 
</html>
deux secondes que je revérifie des petites fautes de syntaxe ... :wink:

Ca devrait être bon. Je te conseille déjà de travailler proprement. Pour ouvrir la table utilise un fichier reprenant les paramètres de connexion et appelle le en include ... ca te permettra de ne changer qu'un seul fichier si tu change d'hébergement... en plus les messages d'erreurs de connexions, on essaye de ne lmes afficher que en développements, pas sur des sites en production, ca évite des problèmes possibles ..

PS: pour le remerciement, c'est une bière dans le café de WRI :lol:
 
WRInaute occasionnel
Idem pour msql_error() -> mysql_error() :wink:

Au passage, si tu es encore là, tu conseilles de choisir la base à chaque requête? mysql_query($table,$base)

Car j'utilise mysql_query($table) après avoir choisi la base dans mon fichier de connexion:
Code:
if( !mysql_select_db($base,$link) )
	mysql_error();
 
WRInaute accro
Jaunalgi a dit:
Idem pour msql_error() -> mysql_error() :wink:

Au passage, si tu es encore là, tu conseilles de choisir la base à chaque requête? mysql_query($table,$base)

Car j'utilise mysql_query($table) après avoir choisi la base dans mon fichier de connexion:
Code:
if( !mysql_select_db($base,$link) )
	mysql_error();
Bonne idée mais dans mon cas, dois bien avoir 10 bases différentes pour mon WWW. Je vais quand même l'appliquer pour d'autres sites.

Tiens pour imanephp ca vaut la peine de vérifier un programme pendant une dizaine de minutes plus les UP (que j'apprécie Guère). Je sais c'est les fêtes de fin d'année: pressé, fatigué, ... puis tout tou de suite :roll:
 
WRInaute occasionnel
ybet a dit:
Bonne idée mais dans mon cas, dois bien avoir 10 bases différentes pour mon WWW. Je vais quand même l'appliquer pour d'autres sites.

Effectivement :lol:
Enfin 10 bases, tu fais quand même très fort!
Il faudrait aussi que je me mette à bosser sur du multi-bases, cela pourrait résoudre certains problèmes. (enfin plutôt simplifier certaines solutions)
 
WRInaute accro
Jaunalgi a dit:
ybet a dit:
Bonne idée mais dans mon cas, dois bien avoir 10 bases différentes pour mon WWW. Je vais quand même l'appliquer pour d'autres sites.

Effectivement :lol:
Enfin 10 bases, tu fais quand même très fort!
Il faudrait aussi que je me mette à bosser sur du multi-bases, cela pourrait résoudre certains problèmes. (enfin plutôt simplifier certaines solutions)

Une base par application ... une base relationnelle pour la même application. Avec un petit serveur dédié tu fait ce que tu veux. En plus ca facilite souvent la gestion , la sauvegarde et le transfert éventuel vers un autre serveur.
 
WRInaute occasionnel
Je suis également sur dédié mais je suis tout de même resté sur le principe d'une base par appli (site, forum et éventuellement blog)
Maintenant que tu le soulèves, c'est vrai que je fais ça aussi... à la différence que je n'ai qu'une et une seule base pour le site lui même.
C'est ça qui m'a toujours épaté avec la progra, c'est que tu as énormément de façon de faire la même chose. C'est très instructif. :)
 
WRInaute impliqué
Je n'ai pas bien étudié ton script mais ça, ça ne va pas :
imanephp a dit:
$requete = "SELECT tel,assure FROM production WHERE client=$_post["assure"];

non seulement la syntaxe est erronée - ça devrait etre "SELECT tel,assure FROM production WHERE client=".$_post["assure"]; - mais c'est super dangereux !

tu devrais d'abord vérifier et traiter ta variable $_post["assure"] sinon n'importe qui injecte n'importe quoi dans ta requête SQL...
par exemple avec if(is_int($_post["assure"]))

voir également du côté de mysql_real_escape_string
 
Discussions similaires
Haut