créer un fichier .php, pb de mise en forme

VaN
Mammouth du PHP | 1107 Messages

22 sept. 2005, 16:22

j'essaie de créer un fichier .php, avec les infos qui permettent de se connecter à une base de données.

mon script :
<?php
if (!file_exists("connexion.php"))
			{
				$infos = 	'<?php\n\r'.
							'$user="'.$login.'";\n\r'.
							'$host="'.$host.'";\n\r'.
							'$passwd="'.$pass.'";\n\r'.
							'$nomBase="'.$db.'";\n\r\n\r'.

							'$connexion=mysql_connect($host,$user,$passwd);\n\r'.
							'mysql_select_db($nomBase,$connexion);'.
							'?>';
				
				$file = fopen("connexion.php", "w");
				fwrite($file, $infos);
				fclose($file);
		}?>
hélas en ouvrant mon fichier, je me retrouve avec ça :
<?php\n\r$user="root";\n\r$host="localhost";\n\r$passwd="";\n\r$nomBase="forum_test";\n\r\n\r$connexion=mysql_connect($host,$user,$passwd);\n\rmysql_select_db($nomBase,$connexion);?>
alors que je souhaiterai avoir ça :
<?
$user="root";
$host="localhost";
$passwd="";
$nomBase="extranet";

$connexion=mysql_connect($host,$user,$passwd);
mysql_select_db($nomBase,$connexion);
?>
où est le probleme ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 sept. 2005, 16:38

Salut, s'il s'agit de la création d'un fichier .php essai plustot comme ceci:
<?
$saut='echo "<br>";';
$infos =     '<?php '.$saut.
                            '$user="'.$login.'";'.$saut.
                            '$host="'.$host.'";'.$saut.
                            '$passwd="'.$pass.'";'.$saut.
                            '$nomBase="'.$db.'";'.$saut.

                            '$connexion=mysql_connect($host,$user,$passwd);'.$saut.
                            'mysql_select_db($nomBase,$connexion);'.$saut.
                            '?>'; 

?>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Tho
Eléphant du PHP | 58 Messages

22 sept. 2005, 16:43

Il vaut mieux éviter les echo dans un fichier de connexion.
Van, deux problèmes dans ton code : le saut de ligne sous windows est \r\n.
Pour que ces caractères soient interprétés, il faut les mettre entre guillemets doubles.
$s = "salut\r\ntoto";

VaN
Mammouth du PHP | 1107 Messages

22 sept. 2005, 16:47

résultat :
<?php echo "<br>";$user="root";echo "<br>";$host="localhost";echo "<br>";$passwd="";echo "<br>";$nomBase="forum_test";echo "<br>";$connexion=mysql_connect($host,$user,$passwd);echo "<br>";mysql_select_db($nomBase,$connexion);echo "<br>";?>
dreamweaver reconnait maintenant que c'est du php, car il me le lit en couleur, mais il ne fait toujours pas les sauts de ligne :/

Tho
Eléphant du PHP | 58 Messages

22 sept. 2005, 17:01

t'as raté mon post :(

VaN
Mammouth du PHP | 1107 Messages

22 sept. 2005, 17:20

t'as raté mon post :(
ayé c'est bon merci :)
<?php
$infos = 	'<?php'."\r\n".
							'$user="'.$login.'";'."\r\n".
							'$host="'.$host.'";'."\r\n".
							'$passwd="'.$pass.'";'."\r\n".
							'$nomBase="'.$db.'";'."\r\n".

							'$connexion=mysql_connect($host,$user,$passwd);'."\r\n\r\n".
							'mysql_select_db($nomBase,$connexion);'."\r\n".
							'?>';
				
				$file = fopen("connexion.php", "w");
				fwrite($file, $infos);
				fclose($file);
?>

Mammouth du PHP | 19672 Messages

22 sept. 2005, 17:21

Tiens, voilà, testé et fonctionnel:
<?php
$login = "mon_nom";
$host  = "localhost";
$pass  = "";
$db    = "test";

$config = "./connexion.php";
if (!file_exists($config))
{
    $infos = array(
        "<?php\r\n",
        "\$user    = \"". $login ."\";\r\n",
        "\$host    = \"". $host ."\";\r\n",
        "\$passwd  = \"". $pass ."\";\r\n",
        "\$nomBase = \"". $db ."\";\r\n",
        "\r\n",
        "\$connexion = mysql_connect(\$host,\$user,\$passwd);\r\n",
        "mysql_select_db(\$nomBase,\$connexion);\r\n",
        "?>"
    );
    $fichier = fopen($config, "w");
    foreach($infos as $ligne)
    {
        fwrite($fichier, $ligne);
    }
    fclose($fichier);
}
?>
Résultat obtenu:
<?php
$user    = "mon_nom";
$host    = "localhost";
$passwd  = "";
$nomBase = "test";

$connexion = mysql_connect($host,$user,$passwd);
mysql_select_db($nomBase,$connexion);
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: