Avatar billede kthiesen Novice
05. marts 2006 - 11:46 Der er 12 kommentarer og
1 løsning

Søgning efter brugere i mysql virker ikke efter opdatering

Hej - jeg har flyttet en hjemmeside til en ny server hos min udbyder, og har nu problemer med den kode, der sætter mine brugere i stand til at finde hinandens e-mail.Se udskrift af phpinfo()-> http://www.dpf.info/stu2/phpsetup.php
Jeg har sat hele koden ind herunder:

<?php include "login.php"; ?>
<link rel="stylesheet" href="../dpf.css" type="text/css">
<HTML>
<HEAD>
<TITLE></TITLE>
<meta name="Generator" content="Stone's WebWriter 4">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<body>
&nbsp;<p>
<center>
<table width="85%" border="0">
<tr>
<td align="center" colspan="3">
&nbsp;<p>
<form action="<?=basename($PHP_SELF)?>" method="get">
<h3>Personsøgeren</h3>
Søg på fornavn eller efternavn:
<input type="text" value="" size="25" name="find">
<input type="submit" value="Søg" name="btnG">
</form>
<p>
</td>
</tr>
<tr>
<td>
<table border="0">
<?
include "http://www.dpf.info/include/variabler.inc.php"; // Fælles lokale variabler
if ($find) {
// Opret forbindelse til MySQL server
    mysql_connect($host, $user, $password) or die ('Kunne ikke komme i kontakt med serveren.');

    // Vælg database på MySQL server
    mysql_select_db( 'db' ) or die ( 'Kunne ikke vælge database.' );

        // Find ud af om der er et felt eller flere der matcher søgekriteriet
        $foresp=mysql_query("SELECT username, name, surname, email FROM forums_auth WHERE username LIKE '%$find%' OR name LIKE '%$find%' OR surname LIKE '%$find%' OR email LIKE '%$find%' ORDER BY surname, name ASC") or die( mysql_error() );

        // Find antallet af hits
        $antal = mysql_num_rows($foresp);
        $medlem = mysql_num_rows($foresp);

        // Formatér besked til bruger om antallet af brugere bestemt af antal hits
        if ($medlem>1)
            {
                $medlem="medlemmer";
            }
        else
            {
                $medlem="medlem";
            }

        if ($antal==0)
            {
                print "<tr><td colspan=3>Du har valgt at lede efter <b>$find</b>, et øjeblik!<p></td></tr>";
                print "<tr><td colspan=3>Desværre gav søgningen intet resultat, check stavningen og prøv igen!<p></td></tr>";
                exit;
            }

        else
            {
                print "<tr><td colspan=3>Du har valgt at lede efter <b>$find</b>, et øjeblik!<p></td></tr>";
                print "<tr><td colspan=3>Der blev fundet $antal $medlem der opfyldte dit kriterie<br>du kan sende en e-mail ved at trykke på linket:<p></td></tr>";
                print "<tr><td align=right width=14%>P-nr: &nbsp;</td><td>Navn:&nbsp;</td><td>E-mail:&nbsp;</td></tr>";
                while($data=mysql_fetch_array($foresp))
                print "<tr><td align=right>$data[username] &nbsp;</td><td>$data[name]&nbsp;</td><td><a href=mailto:$data[email]>$data[email]</a></td></tr>";
                exit;
            }

        if (!$find)
            {
                print "Du skrev ikke noget søgeord!!";
            }
        else
            {
            }
            }
?>
</table>
</td>
</tr>
</table>
</center>
</BODY>
</HTML>
Avatar billede dennism Nybegynder
05. marts 2006 - 11:47 #1
Hvilken fejl får du?
Avatar billede kthiesen Novice
05. marts 2006 - 12:17 #2
Den kører forespørgslen og jeg kan se at den bliver indført i adresselinien som f.eks. http://www.dpf.info/stu2/seek.php?find=Kristen+Thiesen når jeg leder efter mig selv.
Efter en kort tid stopper browseren uden resultat overhovedet.
Det virker som om den ikke kan præsentere resultatet fra databasen.
Der kommer dog ikke nogen fejlmeddelelse fra databasen. Jeg har også lige for en sikkerheds skyld lavet et miniscript, hvor jeg checker adgangen til databasen - den afviklede uden problemer...
Avatar billede kthiesen Novice
05. marts 2006 - 12:18 #3
Ups, lige til orientering så kan man ikke anvende ovenstående link, da jeg har passwordbeskyttet hele sitet...
Avatar billede plx Nybegynder
05. marts 2006 - 12:32 #4
register_globals er sat til off

http://dk2.php.net/register_globals
Avatar billede kthiesen Novice
05. marts 2006 - 13:00 #5
Hvordan kommer jeg uden om den begrænsning?

Jeg har ændret linjen for form action uden resultat...

<form action="<?=basename($_SERVER['PHP_SELF'])?>" method="get">

Er der andre steder den er gal med register_globals???
Avatar billede plx Nybegynder
05. marts 2006 - 16:44 #6
input fra din form skal du hente via $_GET

$_GET['find']
Avatar billede kthiesen Novice
05. marts 2006 - 17:26 #7
OK, det virker med en parameter, men jeg har behov for at kunne bruge mindst to da man kan angive f.eks. fornavn og efternavn som parametre i input boksen. Hvordan kan jeg gøre det?
Avatar billede kthiesen Novice
05. marts 2006 - 19:03 #8
Nu har jeg checket min array og der ligger de data der skal, men når jeg så afvikler denne sql kommer samtlige listede medlemmer med hver gang. Det er som om den læser mine input som *.

Her er sql efter tilretning.

$foresp=@mysql_query("SELECT * FROM forums_auth
WHERE username LIKE '%$u%'
OR name LIKE '%$n%'
OR surname LIKE '%$s%'
ORDER BY surname, name ASC") or die( mysql_error() );

Jeg har delt linjen her, det er i koden en linje.
Variablerne er sat med $__GET[].
Avatar billede kthiesen Novice
09. marts 2006 - 20:20 #9
Efter mange forsøg har jeg delvist løst problemet. Jeg har anvendt $_POST[] til løsning af opgaven.
Avatar billede kthiesen Novice
09. marts 2006 - 20:21 #10
Jeg kan ikke komme til at give plx point - vil du ikke lige oprette et svar?
Avatar billede kthiesen Novice
31. oktober 2008 - 07:15 #11
Venter stadig på svar fra plx
Avatar billede dennism Nybegynder
31. oktober 2008 - 08:14 #12
Så må du vist hellere selv snuppe dine point - du har han haft over 2 år, det er vist rimelig nok at lukke den nu ;)
God dag.
Avatar billede kthiesen Novice
29. september 2009 - 15:34 #13
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester