Avatar Image
Machacateclados
Machacateclados

Hola de nuevo, uff cuanto tiempo y como ha cambiado esto, felicidades por vuestra nueva adqusición y el aumento de velocidad en la web es imparable.

Estoy haciendo un CMS y tengo un problema a la hora de crear el archivo de configuración para las conexiones a MySQL.
El código es el siguiente:

$text = "<?php $bdservidor='$ipsql'; ?>";

if (file_put_contents("config2.php", $text) == FALSE) {
echo "Error";
}
else{
echo "OK";
}

pero al no encontrar la variable llamad $bdservidor me lo deja así:
<?php ='localhost'; ?>

Y yo quiero así:
<?php $dbservidor= 'localhost'; ?>

Espero que me puedan ayudar.

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por inigoruiz
$text = "<?php $bdservidor='$ipsql'; ?>";
Me explicas esta línea....
Avatar Image
Machacateclados
Machacateclados

Si, la verdad es que no me explico muy bién.

quiero hacer un asistente para que el usuario meta la dirección del servidor de MySQL, la contraseña y el usuario. Entoces el script escribiría un archivo con las variables de configuración.

Entonces esa variable, que es de prueba, que es la ip de MySQL.

Entonces yo quiero que en el archivo config2.php aparezca lo siguiente:

<?php $dbservidor= 'localhost'; ?>

pero php intenta convertir la variable en rojo en su valor correspondiente y al no encontrarlo lo deja así:

<?php ='localhost'; ?>

Lo que necesito es que no intente convertir esa variable.

Avatar Image
@man / @woman
@man / @woman

Que lio tienes...

$variable_que_voy_a_mostrar='$bdservidor=\''.$ipsql.'\';

Avatar Image
Machacateclados
Machacateclados

NoSetup, creo que te has confundido con tu codigo, pues al ejecutarlo no devuelve nada por pantalla, es decir:

$text='$bdservidor=\''.$ipsql .'\';

if (file_put_contents("config2.php", $text) == FALSE) {
echo "Error";
}
else{
echo "OK";
}
?>

Avatar Image
@man / @woman
@man / @woman

echo $texto;


Y ves si devuelve lo que quieres o no.

Avatar Image
Machacateclados
Machacateclados

Parece que no nos entendemos, al ejecutar el script anterior, normalmente me devuelve "OK" y escribía el archivo config2.php.

Pero al ejecutar el mismo script pero con la variable que me diste, no me muestra nada por pantalla y no me escribe nada.

Miraré en el autoinstalador del phpMyAdmin nuevo.

Avatar Image
@man / @woman
@man / @woman

Pero el echo ¿te devuelve lo que quieres que se escriba en el archivo?

Avatar Image
Machacateclados
Machacateclados

<?php
$ipsql="localhost";
$text='$bdservidor=\''.$ipsql .'\';
if (file_put_contents("config2.php", $text) == FALSE) {
echo "Error";
}
else{
echo "OK";
}
echo $text;
echo "<br>";
?>

Eso no me devuelve nada.

He mirado en los logs de apache y dice esto:
[client 127.0.0.1] PHP Parse error:  syntax error, unexpected $end in C:\\servidor\\web\\PA\\install2.php on line 12

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por inigoruiz
Eso no me devuelve nada.

He mirado en los logs de apache y dice esto:
[client 127.0.0.1] PHP Parse error:  syntax error, unexpected $end in C:\\servidor\\web\\PA\\install2.php on line 12
Eso te lo tendría que devovler la propia página, a no ser que hayas tocado el php.ini para que no muestre los errores.

Tiene pinta de mal subido, pero obviamente no puede ser eso. Es como si no llegase a interpretar bien el código...
Avatar Image
Machacateclados
Machacateclados

No, se.
Miraré el phpMyAdmin.
Muchas gracias por todo.

mrtnw2003
Usuario habitual
Usuario habitual

Hola inigoruiz:
Antes que nada quería pedir disculpas por descubrir este tema de facil respuesta tan tarde. Al autor de este tema en especial.

La solución para tu problema sería la siguiente:

$text = "<?php \$bdservidor=\"" . $ipsql . "\";\r\n?>";

if (file_put_contents("config2.php", $text) == false) {
echo "Error";
}
else {
echo "OK";
}

Fijate que lo que sucede es que el PHP para que interprete el signo $ como parte de la cadena que se va a escribir en el archivo "config2.php", hay que ponerlo como \$ , porque sino se lo confunde con que tu quieres incluir el contenido de una variable, que en ese caso sería $bdservidor que, en realidad, no es ninguna variable que quieras que sea transformada o sea traducida por el PHP .

En esta página tienes más información acerca del tema:
http://www.php.net/manual/en/language.types.string.php
o también tienes el mismo contenido de esa página web en su version en español:
http://www.php.net/manual/es/language.types.string.php

En esas páginas vas a ver también que son \" , \r y \n , que he incluido el codigo para que tenga " ( comillas dobles ) en ves de ' ( comillas simples ). Aunque tu puedes modificarlo a tu gusto para que siga teniendo ' ( comillas simples ). Yo utilizo " ( comillas dobles ) por convención, y porque así lo utiliza la mayoría de los que programan en PHP. El \r\n es para insertar una nueva linea en lo que se escribe en "config2.php", lo cual lo puedes quitar y poner de vuelta el espacio si tu quieres, aunque yo te recomendaría que dejes esa nueva linea.

Saludos.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 04/Mar/2014, 23:04
sigitcolombia NoSetup.org12kMar/14
Por: , el 17/Feb/2011, 15:17
elproferomero GestionXls42kFeb/11
Por: , el 23/Ago/2009, 04:07
Zelvant GestionXls NoSetup.org22kAug/09
Por: , el 20/May/2004, 12:53
ClarayJavi03kMay/04
Por: , el 16/Mar/2004, 14:31
jasmineh NoSetup.org22kMar/04