ik heb een script
dat ik half aan de gang heb gekregen
maar zit nu met een fout kom niet verde
wie zie wat ik fout doe


config.php


<?php

////////////////////////////////////////////////////////////////////////////////
// config.php
$IPAdres = "ipnummer"; // Het ip adres van de computer waar OtsDJ op staat
$Poort = "8080"; // De poort die de RAC server gebruikt
$ServerTimeOut = 5; // De maximale tijd voor de foutmelding te zien is.
$OfflineMelding = "Het is momenteel niet mogelijk om een plaat aan te vragen. Probeer het later nog eens."; // Foutmelding als de server offline is
$OfflineMelding1 = "De RAC server is offline!";  // Foutmelding als de server offline is. Admin melding
$PasWoord = "12345";  // Verander dit!

// show.php
$GeenZoekResultaten = "Je zoek opdracht heeft geen resultaten opgeleverd.";  // Bericht wanneer er geen zoek resultaten zijn

// go.php
$GoTitle = "De gegevens zijn verwerkt!"; //De titel van go.php
$GoTo = "zoeken.php"; // De pagina waar de bezoeker heen moet na het aanvragen
$IDCheckBestand = "id.txt"; // Het bestand waar de id's in staan.

// Design
$FontFace = "verdana";  // Lettertype
$FontColor = "black";   // letter kleur
$FontColorFout = "red"; // Letterkleur bij fouten
$FontSize = "2";        // letter grootte

?> 


zoeken.php


<?php

////////////////////////////////////////////////////////////////////////////////
// Verzoek Platen Script
// Met dit script kun je platen aanvragen die OtsDJ moet gaat draaien!
////////////////////////////////////////////////////////////////////////////////

require ("config.php");

$controleer = @fsockopen("$IPAdres", $Poort, $errno, $errstr, $ServerTimeOut);

////////////////////////////////////////////////////////////////////////////////

echo ("<html><head><title>OtsDJ Verzoek Platen Script</title></head><body>");
if ($controleer) {

   if($Verzoeken == "1") {
    echo "<font color=$FontColorFout face=$FontFace size=$FontSize>Sorry!, je hebt al een plaat aangevraagd.<br>
    Even geduld aub.</font>";
}
else {
    echo ("<font color=$FontColor face=$FontFace size=$FontSize>
    <form method=post action=show.php>
    Zoeken op: <input type=radio name=searchby value=artist>Artiest
    <input type=radio name=searchby value=title class=radio>Titel
    <input type=radio name=searchby value=any checked>alles<br>
    Resultaten moeten:<input type=radio name=matchtype value=begin>beginnen met zoek opdracht
    <input type=radio name=matchtype value=contain checked>zoek opdracht bevatten<br>
    Zoeken naar: <input type=text name=searchtext value='' maxlength=40 size=40>
    <input type=submit value=Zoeken name=submit></form></font>");

    }
}
@fclose ($controleer);

if (!$controleer){
    echo "<font color=$FontColorFout face=$FontFace size=$FontSize>$OfflineMelding</font>";
}

echo ("</body></html>");
?>


show.php

<?php

////////////////////////////////////////////////////////////////////////////////
// Verzoek Platen Script
////////////////////////////////////////////////////////////////////////////////

require ("config.php");

$controleer = @fsockopen("$IPAdres", $Poort, $errno, $errstr, $ServerTimeOut);

////////////////////////////////////////////////////////////////////////////////

echo ("<html><head><title>OtsDJ Verzoek Platen Script</title></head><body>");

if ($controleer) {

        echo ("<font color=$FontColor face=$FontFace size=$FontSize>Je ziet hier tot maximaal 100 resultaten. Zit je plaat er niet tussen, probeer dan je zoek opdracht te verbeteren.<br><br>Klik op de plaat om hem aan te vragen!<br><br>");
    $searchtext = str_replace(" ", "+", $searchtext);
    $Bal = file("http://$IPAdres:$Poort/x/search.cgi?searchby=$searchby&matchtype=$matchtype&searchtext=$searchtext", "w");
    $Bal = (implode("", $Bal));
    $Bal = str_replace("&copy 1996-2003 Ots Corporation Pty Ltd</b> - <i>Page generated internally by OtsDJ", "", $Bal);
    $Bal = strip_tags($Bal, '<br><a>');
    $Bal = str_replace("OtsDJ Remote Access ControlSearch Media Library!", "", $Bal);
    $Bal = str_replace("Search by: Artist Title any<br>Entries must: begin with contain&nbsp search text<br>Search text: Results of Search", "", $Bal);
    $Bal = str_replace("found.", "", $Bal);
    $Bal = str_replace("/x/item.cgi?", "go.php?action=request&id=$id", $Bal);

    $Bal = str_replace("/x/search.cgi?", "show2.php?", $Bal);
    $Bal = str_replace("Showing items", ", ", $Bal);
    $Bal = str_replace("No items were found which matched the specified criteria!<br><br clear=all>", "$GeenZoekResultaten", $Bal);
    $Bal = str_replace("<br><br clear=all>", "", $Bal);
    $Bal = str_replace("[ Previous page |", "", $Bal);
    $Bal = str_replace("Next page</a> ]", "</a>", $Bal);

    echo $Bal;

    include ("show2.php");
    include ("show3.php");
    include ("show4.php");
    include ("show5.php");
    include ("show6.php");
    include ("show7.php");
    include ("show8.php");
    include ("show9.php");
    include ("show10.php");


echo ("</font>");
}
@fclose ($controleer);

if (!$controleer){
    echo "<font color=red>$OfflineMelding</font>";
}

?>


Zet error reporting aan dan zie je waarschijnlijk zelf wat er fout gaat.

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
we hebben helaas geen glazen bol, dus wat gaat er volgens jou fout?

Je verwacht dat iets goed gaat of je ziet dat het niet goed gaat. Wat gebeurt er nu precies... ?
het gaat goed tot zoeken.php en in de show.php laat hij de bestanden niet zien die hij eigelijk zou moeten laten zien
Mogelijk bestaan show1.php t/m show 10.php niet?
Controleer dit eens met file_exists() ?

Vanwaar deze verschillende oplopende nummers in de includes?
Dit zou veel eleganter kunnen.
Ja die bestaan 1 tm 10 maar dacht post alleen de show.php daar gaat het al fout namelijk
Mogelijk bestaat die niet? Of gaat daar wat fout?
Heb je al met mijn genoemde functie gekeken of die bestaat?

En wat is de reden achter de nummers?
Hij laat op iedere pagina 10 nummers zien
Die hij via zoeken heeft gevonden
Teminste dat zo hij moeten doen
Maar na het zoeken.php ga hij wel naar show.php maar laat hij de resultaten van wat gevonden zo moeten hebben niet zien
Waarom dan losse includes? En niet één include die alles doet?
Ik heb het idee dat je veel code aan het verdubbelen bent?

Waar komt $searchtext vandaan?
Ik heb het programma ooit van iemand gekregen
Hij haal de zoek resultaten van mijn computer
Waar ik het programma otsav op draai
Je doet nu dit:

$searchtext = str_replace(" ", "+", $searchtext);

Je slaat in de variabele $searchtext de uitkomt van de volgende procedure op: "Je vervangt een spatie door een +, en dat gebeurt uit de inhoud van $searchtext."
Echter die variabele bestaat nog niet!

Ik zie wel dat je in je formulier een veld hebt die searchtext heet. En dat moet dus $_POST['searchtext'] heten. Het is overigens iets wat al in 22 Apr 2002 (!!!) in PHP 4.2.0 verplicht werd. Dus of het is een fout in het script wat je moet aanpassen, of je zit een behoorlijk oud script van internet te vissen waarvan je blij mag zijn dat het nog best simpel is, en haast geen veiligheidsissues heeft, en dat het daardoor nog werkt!!

Al met al een reden om oude scripts op internet te vermijden!!!!

De oplossing is dus door dit te gebruiken:

$searchtext = str_replace(" ", "+", $_POST['searchtext']);

Reageren