creation de fichier de connexion

Eléphant du PHP | 406 Messages

29 juil. 2005, 08:39

salut,

J ai creer un formulaire pour pouvoir directement creer le fichier de connexion à la base dans l hypothese ou on changerai de serveur,de nom de base de donnée..
voila ce que j ai fait
<form name="fichier" method="post" action="<? $_SERVER['PHP_SELF'] ?>">
<table>
<tr>
	<td><i>Nom de la base</i></td>
	<td><input type="text" name="$nameb" value=""></td>
</tr>
<tr>
	<td><i>Utilisateur</i></td>
	<td><input type="text" name="$nameu" value=""></td>
</tr>
<tr>
	<td><i>Mot de passe</i></td>
	<td><input type="text" name="$passu" value=""></td>
</tr>
<tr>
	<td><i>IP serveur</i></td>
	<td><input type="text" name="$ipb" value=""></td>
</tr>
<tr>
	<td><i>Port</i></td>
	<td><input type="text" name="$pb" value=""></td>
</tr>
</table>
<input type="submit" name="Valider" value="Valider">
<input type="submit" name="reset" value="reset" >

</form>
</body>
</html>
<?
if(isset($_POST['Valider']))
{
$fp = fopen("cot.txt","w+"); 
fseek($fp,0);  

$p0="$dbname='".$_POST['nameb']."';\r\n";
fputs($fp,$p0); 
 $p1="$user='".$_POST['nameu']."';\r\n";
fputs($fp,$p1); 
 $p2="$password='".$_POST['passu']."';\r\n";
fputs($fp,$p2); 
 $p3="$host='".$_POST['ipd']."';\r\n";
fputs($fp,$p3); 
 $p4="$port='".$_POST['pb']."';\r\n";
fputs($fp,$p4); 
$p5="$connection = pg_pconnect(\"host=$host port=$port dbname=$dbname user=$user password=$password\");\r\n";
fputs($fp,$p5); 
fclose($fp);       
}
?>
mais se ne fonctionne,quand j ouvre le fichier j ai cela
='';
='';
='';
='';
='';
= pg_pconnect("host= port= dbname= user= password=");
si j ai bien compris mes $dbname,$password...,meme si ils sont entre cote il les considere comme des variables et donc ne me met rien.
Comment pourrai je contourner cela ?
Et les variables que je recupere dans les champs je ne comprends pas pourquoi elle ne s affiche pas ?

Merci

ViPHP
pjl
ViPHP | 2119 Messages

29 juil. 2005, 08:45

dans ton forumaire, tu appelles tes variables ainsi :
$nameb

et dans ton traitement des données, elles deviennent :
nameb

Il faut utiliser les mêmes noms de chaque coté si tu veux pouvoir récupérer les valeurs.

Eléphant du PHP | 406 Messages

29 juil. 2005, 09:36

:oops:
j aurai du me relire
j ai été bete sur ce coup la
on va mettre sa sur la fatigue
mais
pourquoi il considere "$dbname='"
comme une variable,je l ai mi entre cote pourtant

Mammouth du PHP | 19672 Messages

29 juil. 2005, 09:38

Parce que pour le traiter en chaine de caractères, il aurait fallu utiliser des apostrophes : '$dbname' et non "$dbname"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juil. 2005, 09:38

PHP est prévu pour que une chaine entourée de " permette l'interprétation des variable. si tu veut éviter ça, entoure tes chaines avec des '
$p1='"$user="'.$_POST['nameu'].'";\r\n'; 
EDIT ---
Tu le fait expres la Cyrano :evil: 2 fois de suite ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 406 Messages

29 juil. 2005, 09:49

ouai c est vrai j avais oublier
donc j ai modifier et fait cela
<?
if(isset($_POST['Valider']))
{
$fp = fopen("cot.txt","w+"); 
fseek($fp,0);  

$p0='$dbname="'.$_POST['nameb'].'";\r\n';
fputs($fp,$p0); 
 $p1='$user="'.$_POST['nameu'].'";\r\n';
fputs($fp,$p1); 
 $p2='$password="'.$_POST['passu'].'";\r\n';
fputs($fp,$p2); 
 $p3='$host="'.$_POST['ipb'].'";\r\n';
fputs($fp,$p3); 
 $p4='$port="'.$_POST['pb'].'";\r\n';
fputs($fp,$p4); 
$p5='$connection = pg_pconnect("host=$host port=$port dbname=$dbname user=$user password=$password");\r\n';
fputs($fp,$p5); 
fclose($fp);       
}
?>
mais au final j ai sa
j ai bien le bonne affichage
mais il ne prend pas en compte les retour à la ligne ,il les considere comme du texte
$dbname="ee";\r\n$user="ee";\r\n$password="ee";\r\n$host="ee";\r\n$port="ee";\r\n$connection = pg_pconnect("host=$host port=$port dbname=$dbname user=$user password=$password");\r\n

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juil. 2005, 09:52

avec fputs, je crois que \n suffit

tente le coup ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 406 Messages

29 juil. 2005, 09:59

:roll:
sa suffi pas
j ai cela a l affichage
$dbname="fg";\n$user="fg";\n$password="fg";\n$host="fg";\n$port="fg";\n$connection = pg_pconnect("host=$host port=$port dbname=$dbname user=$user password=$password");\n

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juil. 2005, 10:11

si le \n est pas entre ", il l'interprete pas .... 8-[

Donc, il faut que tu mettes des \ devant toutes tes variables et tous les "
code corrigé
<?
if(isset($_POST['Valider']))
{
$fp = fopen("cot.txt","w+");

$p0="\$dbname=\"".$_POST['nameb']."\";\r\n";
fputs($fp,$p0);
$p1="\$user=\"".$_POST['nameu']."\";\r\n";
fputs($fp,$p1);
$p2="\$password=\"".$_POST['passu']."\";\r\n";
fputs($fp,$p2);
$p3="\$host=\"".$_POST['ipb']."\";\r\n";
fputs($fp,$p3);
$p4="\$port=\"".$_POST['pb']."\";\r\n";
fputs($fp,$p4);
$p5="\$connection = pg_pconnect(\"host=\$host port=\$port dbname=\$dbname user=\$user password=\$password\");\r\n";
fputs($fp,$p5);
fclose($fp);
}
?>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 406 Messages

29 juil. 2005, 10:49

merci
exact c etait sa il faut les mettre entre " sinon il ne les prends pas en compte donc au final j ai ce code
<?
if(isset($_POST['Valider']))
{
$fp = fopen("connexion.inc.php","w+"); 
fseek($fp,0);  
$p6="<? \r\n";
fputs($fp,$p6); 
$p0="\$dbname=\"".$_POST['nameb']."\";\r\n";
fputs($fp,$p0); 
 $p1="\$user=\"".$_POST['nameu']."\";\r\n";
fputs($fp,$p1); 
 $p2="\$password=\"".$_POST['passu']."\";\r\n";
fputs($fp,$p2); 
 $p3="\$host=\"".$_POST['ipb']."\";\r\n";
fputs($fp,$p3); 
 $p4="\$port=\"".$_POST['pb']."\";\r\n";
fputs($fp,$p4); 
$p5='$connection = pg_pconnect("host=$host port=$port dbname=$dbname user=$user password=$password");';
fputs($fp,$p5); 
$p7="\r\n";
fputs($fp,$p7); 
$p8="?>\r\n";
fputs($fp,$p8); 
fclose($fp);       
}
?>