Avatar billede mibu Nybegynder
30. juli 2007 - 20:01 Der er 7 kommentarer og
1 løsning

Hvorfor trækker den ikke min "REQUEST" med over?

Jeg har denne form:

<table bgcolor="#ffffff" width="600" height="400" border="0">
<tr>
        <font face="Verdana">
        <form name="indtast" method="post" action="svar_fak.php">
        <td align="center" valign="middle">
        <input type="text" name="id" size="4" maxlength="4">
        <input type="submit" name="send" value="Find faktura"></td>
</tr>
        </form>
    </font>

</table>

Som kalder denne action:
<?
                $id = $_REQUEST["id"];
//Henter forespørgelse
$query = mysql_query ("SELECT * FROM faktura WHERE id = '".$id."' LIMIT 0, 30 ") or die (mysql_error());

                echo "<br><script type='text/javascript'>window.open('soeg_fak.php')</script></a><br>";
                echo "<br><br><br><br><br><br><br><br>test<br><br><br><br><br><br><br><br>";                               
?>

Og det virker ikke! Men hvis jeg udskifter --'".$id."' -- med et tilfældig nummer (5, 6 eller andet der findes) så virker det!

Hvorfor trækker den ikke min "REQUEST" med over?
Avatar billede mibu Nybegynder
30. juli 2007 - 20:04 #1
PS.
min "soeg_fak.php" ser sådanher ud:

<?

               
                $id = $_REQUEST["id"];


//Henter forespørgelse
$query = mysql_query ("SELECT * FROM faktura WHERE id = '".$id."' LIMIT 0, 30 ") or die (mysql_error());

while($row = mysql_fetch_assoc($query)) //Lav en while der kører alle rækker igennem

{

        echo "bla. bla.-----
Avatar billede rocha_dk Nybegynder
30. juli 2007 - 20:11 #2
Hvad sker der hvis du sender et af de numre med over, som findes i databasen?

Ellers så prøv at lave en print_r på $_request-arrayet, bare for at se om du overhovedet får noget med.

Lige en sidste ting, din kode er pivåben over for mysql injections, dvs. ved at skrive en stump mysql, kan man skyde sine egne queries direkte ind i din database. For at undgå det, så brug lige mysql_escape_string der hvor du henter strengen fra $_request.
Avatar billede mibu Nybegynder
30. juli 2007 - 20:19 #3
NADA!
Der kommer intet med over!

"mysql_escape_string"? gælder det også når hele siden kræver login? (det er sat i toppen af siden)
Avatar billede mibu Nybegynder
30. juli 2007 - 21:00 #4
Når min REQUEST ikke kommer med, er det så fordi min formside kalder en funktionsside som igen siger echo "en anden side"? Og hvis - hvordan fikser jeg så den? Jeg vil mægtig gern ha' printvenlig popup side der viser mit søgeresultat!
Avatar billede mibu Nybegynder
30. juli 2007 - 21:15 #5
Okay! dumt spøgsmål!
Jeg har lagt min kode fra soeg.php (echo siden) over i min funktionsside, og så kom mit søgeresultat! Men stadig væk vil jeg gerne have det ud på en popupside, hvordan gør jeg det?
Avatar billede rocha_dk Nybegynder
30. juli 2007 - 21:59 #6
tja, hvis du vil bero dig på kun et login, så er det jo nok ok. Men det er ikke specielt pæn kode, at lade brugeren taste ting direkte ind i databasen.

Aha, ok, nu er jeg med på hvad problemet egentligt er, prøv at skrive:
echo "<br><script type='text/javascript'>window.open('soeg_fak.php?id=$id')</script></a><br>"; i stedet, så virker den ;)
Avatar billede mibu Nybegynder
30. juli 2007 - 22:26 #7
?id=$id det var lige præcis hvad der skulle til!

Takker! Jeg tror nok også at jeg vil indsætte dit forslag "mysql_escape_string" Det lyder fornuftigt.

læg et svar.
Avatar billede rocha_dk Nybegynder
30. juli 2007 - 22:56 #8
Det var godt det kom til at virke, og ja, det er en god ide at beskytte sin kode, der er desværre mennesker derude der kan finde på at udnytte andres svagheder i koden.
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