Tengo instalado Windows NT, PHP y MySQL pero solo me funciona toco cuando estoy conectado a internet

Estoy empezando en esto del PHP, tengo instalado Windows NT, PHP y MySQL, y tengo varios problemas:
1.- Me funciona todo, pero solo cuando estoy conectado a Internet. Si no estoy conectado a internet y llamo a un fichero de PHP, me indica que necesito conectarme. Sabrías a que es debido esto.
2.- No soy capaz de pasar variables:
Este es el formulario
<html>
<body>
<form action="http://localhost/buscador.php" METHOD="POST">
<strong>Palabra clave:</strong>
<input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="Buscar">
<input type="reset" value="Borrar" >
</form>
</body>
</html>
Este es el que tiene PHP
<html>
<body>
<?php
if (!isset($buscar)){
echo "<p>Debe especificar una cadena a buscar</p> \n";
echo "Buscar= "."$buscar";
echo "<p><a href=formulario.htm>Volver</p> \n";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "nobody");
mysql_select_db("mydb", $link);
$sql = "SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
echo "<td><b>$field->name</b></td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["id"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "<p><a href=buscador_bd.htm>Volver</p> \n";
echo "</table> \n";
} else {
echo "<p>¡No se ha encontrado ningún registro!</p>\n";
echo "<p><a href=buscador_bd.htm>Volver</p> \n";
}
?>
</body>
</html>
Respuesta
1
El primer punto de tu pregunta que desconectado tu php no funciona, esto se puede deber a el servidor web que tengas instalado
yo te recomiendo el Xitami, no se que servidor web uses necesitaría saber ese dato para ayudarte más,
Ahora en cuanto que no pasa variables es difícil diagnosticar que sucede
Prueba con este código
<html>
<body>
<?php
if (!isset($buscar)){ ?>
<p>Debe especificar una cadena a buscar</p>
<script>alert("Tenias razon, no pasas variables")</script>
<p><a href=./formulariopirata.php>Volver</p>
</body></html>
<?
exit;
} else{ ?>
<script>alert("si pasas variables la variable buscar = <? echo $buscar ?>")</script>
<?
}
mysql_connect("localhost","nobody","");
$sql = "SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre";
$result=mysql_db_query("mydb", $sql);
if ($result){ ?>
<script>alert("he recorrido tu codigo y todo va bien hasta aqui es decir que le preguntaste a mysql <? print $sql ?> y si encontro resultados")</script>
<?
echo "<table border = '1'> \n";
echo "<tr> \n";
while ($field = mysql_fetch_array($result)){
echo "<td colspan=5 align=\"left\">".$field['name']."</b></td> \n";
echo "</tr> \n";
echo "<tr> \n";
echo "<td>".$field["id"]."</td> \n";
echo "<td>".$field["nombre"]."</td> \n";
echo "<td>".$field["direccion"]."</td> \n";
echo "<td>".$field["telefono"]."</td> \n";
echo "<td><a href='mailto:".$field["email"]."'>".$field["email"]."</a></td> \n";
echo "</tr> \n";
}
echo "<tr><td colspan=\"5\"><p><ahref=formulariopirata.php>Volver</p></td> </tr>\n";
echo "</table> \n";
} else {
print "si existe un error de mysql debe de aparecer descrito aqui :";
print "<br>";
print mysql_error();
print "<br>";
print "este error paso cuando preguntaste a mysql :";
print "<br>";
echo $sql;
echo "<p>¡No se ha encontrado ningún registro!</p>\n";
echo "<p><a href=formulariopirata.php>Volver</p> \n";
}
?>
Como te darás cuenta tiene código de debugeo que nos indicara en donde se encuentra el error, trata de que todos los códigos que hagas tengan código de debugeo para localizar el error lo más rapido posible.
Si ejecutas el código y no entiendes el error avisame he intentare otro método
para poderte ayudar

2 respuestas más de otros expertos

Respuesta
1
Haber, he visto que para saber si has rellenado el campo de búsqueda, utilizas isset($buscar). Esto no es correcto del todo, ya que iiset se utiliza para comprobar si una variable existe o no, y en tu caso la variable existe siempre, solo que unas veces estará vacía y otras no. Lo que debes hacer es if ($buscar == "")
Para pasar variables en php no se tiene que hacer nada en especial, cualquier campo de un formulario al enviarlo a una página PHP se crea automáticamente una variable php del mismo nombre del formulario.
Respecto a lo de que no te funciona si no te conectas a internet, una vez me paso algo parecido, A mi me preguntaba cuando quería ver mi página si quería conectarme a internet o intentarlo de nuevo. Solo con pulsar en Intentar de nuevo ya funcionaba perfectamente, no se si sera tu caso.
Bueno, espero haberte ayudado. Si tienes cualquier problema no dudes en decírmelo.
En cuanto a lo referente al punto 2, he realizado la modificacion que me comentas if ($buscar == "") y sigue igual.
En cuanto a la numero 1, me pregunta cuando quiero ver mi página si quiero conectarme a internet, pero las opciones que tengo son 'Conectar' o 'Trabajar sin conexión' y o me conecto o se me queda la pantalla del navegador en blanco.
Muchas gracias.
Ok, ha eso me refería. Las opciones que te salen son CONECTAR o TRABAJAR SIN CONEXIÓN, y si pulsas en CONECTAR funciona, ¿verdad?
A mi también me pasaba, pero cuando yo pulsaba CONECTAR salia la página que yo quería pero en realidad no se estaba conectando a internet. Mira a ver si te pasa lo mismo a ti, no te puedo dar la explicación a eso porque no la se, pero el caso es que si yo le daba a conectar todo funcionaba y no se conectaba a internet.
En cuando a lo de la variable $buscar no hay otra forma. Si el campo del formulario se llama "buscar", en la página que pongas en el "action" del form debes preguntar por ella a ver si la han rellenado o no, y es como has puesto: if ($buscar == ""). Esto te tiene que funcionar, si no funciona lo único que puedo decirte es que tienes PHP mal instalado o configurado. Prueba a hacer una página que tenga <? ¿Echo phpinfo()?> Para mostrarte la información de configuración, porque no encuentro otra explicación.
Siento que no te haya podido ayudar mucho.
Respuesta
prueba en el formulario action = buscador.php o sea con dirección url
corta, porque es posible que por un problema de configuración cunado le dices
http://localhost/buscador.php el piensa que necesita internet
Bueno y la 2 no se que me preguntas porque al inicio dices que todo funciona bien así que sin con esto no te trabaja lo segundo explicame bien que es lo que pasa y cual es el error que te da el php.
Chao espero te ayude en algo mi respuesta
Raidell

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas