Avatar billede krydset Nybegynder
04. december 2003 - 23:14 Der er 7 kommentarer og
1 løsning

Bug i php??

Jeg sidder og har lavet flg. søgescript, og tror der er en bug i php, da alt ser korrekt ud og vi er 3 der har kigget på det

scriptet er her

<?PHP
function sog_kunde() {
?>

<form action="index.php?function=sog_kunde" method="POST">
<FIELDSET id="kasse">
<LEGEND>Søg kunde</LEGEND>
<TABLE>   
    <tr>
    <td>Navn</td>
    <td><INPUT type="text" name="sog_kunde_navn" id="txt_box"></td>
    </tr>
   
    <tr>
    <td>Efternavn</td>
    <td><INPUT type="text" name="sog_kunde_efternavn" id="txt_box"></td>
    </tr>
   
    <tr>
    <td>Adresse</td>
    <td><INPUT type="text" name="sog_kunde_adresse" id="txt_box"></td>
    </tr>
   
    <tr>
    <td>By</td>
    <td><INPUT type="text" name="sog_kunde_by" id="txt_box"></td>
    </tr>
   
    <tr>
    <td>Post nr</td>
    <td><INPUT type="text" name="sog_kunde_postnr" id="txt_box"></td>
    </tr>
   
    <tr>
    <td>Telefon</td>
    <td><INPUT type="text" name="sog_kunde_telefon" id="txt_box"></td>
    </tr>
   
    <tr>
    <td>E-Mail</td>
    <td><INPUT type="text" name="sog_kunde_email" id="txt_box"></td>
    </tr>
</TABLE>
    <INPUT type="submit" name="sog_kunde" value="Søg" id="submit">
<?PHP

}

if($_GET['function'] == "sog_kunde") {
    sog_kunde();
}


$sog_kunde_navn = $_POST[sog_kunde_navn];
$sog_kunde_efternavn = $_POST[sog_kunde_efternavn];
$sog_kunde_adresse = $_POST[sog_kunde_adresse];
$sog_kunde_by = $_POST[sog_kunde_by];
$sog_kunde_postnr = $_POST[sog_kunde_postnr];
$sog_kunde_telefon = $_POST[sog_kunde_telefon];
$sog_kunde_email = $_POST[sog_kunde_email];
include("../shop/dbconnect.php");


if($_POST[navn] != "") {
    $kunde = mysql_query("SELECT * FROM users") or die(mysql_error());
}
#} else if($_POST[sog_kunde_efternavn] !="") {
#    $kunde = mysql_query("SELECT * FROM users WHERE efternavn LIKE '%$sog_kunde_efternavn%'") or die(mysql_error());
#
#} else if($_POST[sog_kunde_adresse] !="") {
#    $kunde = mysql_query("SELECT * FROM users WHERE adresse LIKE '%$sog_kunde_adresse%'") or die(mysql_error());   
#
#} else if($_POST[sog_kunde_by] !="") {
#    $kunde = mysql_query("SELECT * FROM users WHERE bynavn LIKE '%$sog_kunde_by%'") or die(mysql_error());   
#
#} else if($_POST[sog_kunde_postnr] !="") {
#    $kunde = mysql_query("SELECT * FROM users WHERE postnr LIKE '%$sog_kunde_postnr%'") or die(mysql_error());   
#
#} else if($_POST[sog_kunde_telefon] !="") {
#    $kunde = mysql_query("SELECT * FROM users WHERE tlfnr LIKE '%$sog_kunde_telefon%'") or die(mysql_error());   
#
#} else if($_POST[sog_kunde_email] !="") {
#    $kunde = mysql_query("SELECT * FROM users WHERE email LIKE '%$sog_kunde_email%'") or die(mysql_error());   
#}


while ($test = mysql_fetch_array($kunde)){
    echo "$test[id]";
}

?>

Jeg har udkommenteret alle sammen pånær en så det er lettere at fejlsøge...

i den første if sætning har jeg flg.
if($_POST[navn] != "") {
    $kunde = mysql_query("SELECT * FROM users") or die(mysql_error());
}

og den giver flg fejl:
Warning: Supplied argument is not a valid MySQL result resource in /home/administrator/www/admin/index.php on line 212

Men fjerner jeg flg:
i den første if sætning har jeg flg.

    $kunde = mysql_query("SELECT * FROM users") or die(mysql_error());


får jeg udskrevet id korrekt..

Kan i se nogen fejl eller kan det være en bug??

smider lige dump over tabel med

CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `fornavn` varchar(255) NOT NULL default '',
  `efternavn` varchar(255) NOT NULL default '',
  `adresse` varchar(255) NOT NULL default '',
  `postnr` varchar(255) NOT NULL default '',
  `bynavn` varchar(255) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `tlfnr` varchar(255) NOT NULL default '',
  `pass` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=10 ;

Mvh krydset
Avatar billede Slettet bruger
04. december 2003 - 23:46 #1
Din if undersørger variablen $_POST['navn'], selv om den burde undersøge $_POST['sog_kunde_navn']
Avatar billede -xyz- Nybegynder
04. december 2003 - 23:48 #2
prøv at fylde noget i formen og send den
Avatar billede -xyz- Nybegynder
04. december 2003 - 23:50 #3
det er rigtigt sandbox, men det var fordi jeg ændrede den på et tidspunkt inden jeg sendte det herind det er tilbage ændret
Avatar billede krydset Nybegynder
04. december 2003 - 23:55 #4
Okay mig og xyz har lige opdaget et katastrofalt sikkerhedshul som i kan se har vi lige været inde på hinandens konto uden egentlig at gøre noget. Detaljer poster jeg ikke her om men tager kontakt til idg i morn :-O

Takker xyz det virkede der var ikke nogen egentlig fejl her men den gav bare det output fordi der ikke var fyldt noget i formen, nu virker det :-D

her er point
Avatar billede Slettet bruger
04. december 2003 - 23:59 #5
Jeg har en ide til noget, som måske vil løse problemet, og samtidig løse et andet problem, som du ikke er begyndt at arbejde på endnu ;-)

Skal lige tænke lidt.
Avatar billede Slettet bruger
04. december 2003 - 23:59 #6
OK, så dropper jeg det bare
Avatar billede krydset Nybegynder
05. december 2003 - 00:02 #7
yes ellers tak :-D

det er surt man bruger så meget tid på så en lille fejl :-@
Avatar billede krydset Nybegynder
05. december 2003 - 11:02 #8
Så er der taget kontakt til idg ang. sikkerhedshullet :-S de ville kigge på det??
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