Melding bij geen zoekresultaat!!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tnecniv

tnecniv

02/09/2006 13:52:00
Quote Anchor link
Ik heb een scriptje gemaakt die zoekt in de MYSQL database. Ik wil nu alleen nog iets waardoor de (be)zoeker ook een meldingkje krijgt als het zoeken niks opgeleverd heeft.

Ik heb het onderstaande gePHP-t, maar ik krijg steeds foutmeldingen.

WAT IS HIER FOUT AAN? en HOE KAN IK HET GOED DOEN??




//om een bericht te geven als er geen onderwerp gevonden is oftewel het onderwerp leeg is

$onderwerp="$row['onderwerp']";


if (empty($onderwerp))

{

echo"Jouw zoekopdracht heeft geen resultaten opgeleverd";
}






Bij voorbat bedankt
 
PHP hulp

PHP hulp

24/11/2024 22:30:28
 
Mark D

Mark D

02/09/2006 13:53:00
Quote Anchor link
Heb je errors??


Sowieso kun je van dit:

$onderwerp="$row['onderwerp']";

beter dit:

$onderwerp=$row['onderwerp'];

maken.
Gewijzigd op 01/01/1970 01:00:00 door Mark D
 
Terence Hersbach

Terence Hersbach

02/09/2006 13:56:00
Quote Anchor link
je kan misschien beter dit gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(mysql_num_rows($query) == 0)
echo 'Jouw zoekopdracht heeft geen resultaten opgeleverd.';
else
{
//rest van je code
}
?>
 
Tnecniv

tnecniv

02/09/2006 13:59:00
Quote Anchor link
Met deze code:

//om een bericht te geven als er geen onderwerp gevonden is oftewel het onderwerp leeg is

$onderwerp=$row['onderwerp'];


if (empty($onderwerp))

{

echo"Jouw zoekopdracht heeft geen resultaten opgeleverd";
}


Krijg ik als ik een onderwerp zoek wat wél in de database staat oo de text "Jouw zoekopdracht heeft geen resultaten opgeleverd" te zien.

Die text moet natuurlijk alleen getoon worden als er daadwerkelijk niks gevonden is.

(snelle reactie! tnx)
 
Terence Hersbach

Terence Hersbach

02/09/2006 14:01:00
Quote Anchor link
het kan ook aan jouw query liggen en niet aan dit stukje code ;) post de query eens..

edit:
ik bedoel de mysql code.. niet je hele database ;)
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Tnecniv

tnecniv

02/09/2006 14:05:00
Quote Anchor link
K post het hele script wel ff, de (be)zoeker komt dus van search.php en heeft daar $search ingetypt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

// Connect and select

if ($dbc = @mysql_connect ('localhost', 'GEHEIM', 'GEHEIM')) {
    
    if (!@mysql_select_db ('ZELFSDITISGEHEIM')) {
        die ('<p>Kon geen contact maken met de database omdat: <b>' . mysql_error() . '</b></p>');
    }

}
else {
    die ('<p>kon geen contact maken met MySQL omdat: <b>' . mysql_error() . '</b></p>');
}




?>


<b> Je zoekopdracht (<i>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo"$search"; ?>
</i>) heeft de volgende resultaten opgeleverd:
<br><br>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

// Define the query.
$query = "SELECT * FROM `dierenbase` WHERE `onderwerp` LIKE  '$search' LIMIT 0, 30";
    



if ($r = mysql_query ($query)) { // Run the query.

    // Retrieve and print every record.

    while ($row = mysql_fetch_array ($r)){

?>



<table border="0">
<tr>
<td colspan="2">
<b>
<a href="./page.php?title=onderwerp.php&id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($row['id'])?>
">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($row['onderwerp'])?>
</a>
</b>
</td>
<tr>
<td>
<img src="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($row['foto'])?>
" width="70">
</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo(substr($row['inleiding'],0,80));?>

</td>
</tr>
</table>
<br><hr><br>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php







}


//om een bericht te geven als er geen onderwerp gevonden is oftewel het onderwerp leeg is

$onderwerp=$row['onderwerp'];


if (empty($onderwerp))

{


echo"Jouw zoekopdracht heeft geen resultaten opgeleverd";
}

 




    

}
else {


// Query didn't run.




die ('<p>luknie because: <b>' . mysql_error() . "</b>. The query was $query.</p>");
}
// End of query IF.







mysql_close(); // Close the database connection.
?>




(dit is het zegmaar: http://www.vincent.opweb.nl/dierenweb/page.php?title=search.php)
 
Tnecniv

tnecniv

02/09/2006 15:11:00
Quote Anchor link
ziet het er goed uit? of niet? .... wat bedoel je?
Gewijzigd op 01/01/1970 01:00:00 door tnecniv
 
Terence Hersbach

Terence Hersbach

02/09/2006 15:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// Define the query.
$query = "SELECT * FROM `dierenbase` WHERE `onderwerp` LIKE  '$search' LIMIT 0, 30";
 ?>

moet zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// Define the query.
$query = "SELECT * FROM dierenbase WHERE onderwerp LIKE  '%".$search."%' LIMIT 0, 30";
 ?>


edit:
je moet proberen $variablen buiten de "quotes" te houden;)
dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo"$search"; ?>

zou je van moeten maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $search; ?>


probeer verder ook met echo enkele 'quotes' te gebruiken. Dan kan je daar makkelijk je <html> code in houden en hoef je niet alles te \"escapen\"

edit2: typo
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
- -

- -

02/09/2006 16:46:00
Quote Anchor link
security, jongen!!!
check dit: http://vincent.opweb.nl/dierenweb/page.php?title=http://www.phphulp.nl/
 
Tnecniv

tnecniv

02/09/2006 19:50:00
Quote Anchor link
ja, k weet het, maar kan het kwaad? hoe zou ik dat kunnen beveiligen afgezien dan met POST werken.

Het script werk nogsteeds niet zoals ik wil trouwens (melding als er geen resultaat is).
 
Arend a

Arend a

02/09/2006 20:04:00
Quote Anchor link
Dat zeg je daar wel, maar je geeft wel toegang weg tot je server, doordat IEDEREEN php code op je server kan uitvoeren.

Zie:
http://vincent.opweb.nl/dierenweb/page.php?title=http://zsv.onleefbaar-nederland.nl/poc.txt

Wat je vervolgens kan gaan doen is bijvoorbeeld bestanden bekijken die er staan. Je mysql wachtwoord opzoeken, een php gebaseerde file explorer installeren.. ik roep maar wat.

Wat je moet checken is: gebruik je php in je bestanden: zo ja: geef in een array aan welke bestanden geinclude mogen worden, en als ze er niet in staan deze niet gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

$toegestaan
[] = "test.php";
$toegestaan[] = "shit.php";
$toegestaan[] = "blaat.php";

// Als de titel niet in de array staat wordt hij niet weergegeven
if (in_array($_GET['title'], $toegestaan)) {
   include($_GET['title']);
}
else {
   echo "Pagina bestaat niet";
}


?>


Een andere oplossing is de wrappers voor http, ftp etc uit te zetten. Zet bovenaan je script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
ini_set('allow_url_fopen',0)
?>
Gewijzigd op 01/01/1970 01:00:00 door Arend a
 
Arend a

Arend a

02/09/2006 20:15:00
Quote Anchor link
heb je trouwens wel error_reporting(E_ALL) bovenaan staan?
 
Tnecniv

tnecniv

03/09/2006 17:23:00
Quote Anchor link
tnx allemaal.

het is me uiteindelijk toch gelukt het scritp te laten functioneren zoals het hoort!! ik heb een BREAK; } moeten zetten.

super dat stukje script van arend, k heb t meteen toegepast en nu voel ik me weer veilig :D



Moet je maar s kijken trouwens:

http://www.vincent.opweb.nl/dierenweb/page.php?title=search.php

dat is de dierenzoekmachine die ik heb gebouwd. (alleen cavia en prairiehond staan er nog in)
Gewijzigd op 01/01/1970 01:00:00 door tnecniv
 
Terence Hersbach

Terence Hersbach

03/09/2006 17:58:00
Quote Anchor link
is het niet makkelijker om file_exists te gebruiken ipv een array met pagina's die je hebt?

die functie kan niet extern gebruikt worden, dus zou inprincipe ook moeten werken..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

if (file_exists(addslashes($_GET['title']))) {
   include($_GET['title']);
}
else {
   echo "Pagina bestaat niet";
}


?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.