Hallo,

Ik heb een stamboom database (voor dieren, niet voor mensen) en dat werkt allemaal prima.

Nu wilde ik graag fictieve stambomen maken, wat betekent dat ik een mannetje en een vrouwtje selecteer en vervolgens de stamboom krijg van de fictieve nakomelingen uit deze combinatie.

Simpele oplossing lijkt me: moeder selecteren, vader selecteren en de stambomen van beiden onder elkaar laten weergeven.

Dat selecteren lukt wel...alleen de stambomen weergeven niet.

Wat doe ik fout? Ben er nu al zolang mee bezig dat ik het gewoonweg niet meer zie.


<? include "dbconnect.php";  // verbinding maken
?>

<table width="100%"><tr>
<td width="50%"><center>
<b>Voer de naam van de moeder in:</b>
<br>
<form method="get" action="vergeliken.php" target="vergeliken">
<input type="text" size="20" maxlength="60" name="trefwoord">
<input type="Submit" name="submit1" value="Selecteer">
</form>

<br>
</td>
<td width="50%"><center>
<b>Voer de naam van de vader in:</b>
<br>
<form method="get" action="vergeliken.php" target="vergeliken">
<input type="text" size="20" maxlength="60" name="trefwoord2">
<input type="Submit" name="submit2" value="Selecteer">
</form>

<br>
</td>
<tr><td colspan="2"><hr size="2" color="black"><br><br>

<tr><td><center>
<?
if ($submit1){

$sql = "SELECT * FROM individueel WHERE actief = '1' AND naam = '$trefwoord'  ";
$res = mysql_query($sql) or die('fout in query :'. $sql.' : '. mysql_error());
$row = mysql_fetch_object($res);
  $_SESSION['naam']= mysql_escape_string ($row->naam);
$naam = $_SESSION['naam'];
}
?>
<a href="ratinfo.php?naam=<? echo stripslashes($naam) ?>  "><b>Moeder: </b><? echo"".stripslashes($naam).""; ?></a>

<br><br>
<td><center>
<?
if ($submit2){
$sql2 = "SELECT * FROM individueel WHERE actief = '1' AND naam = '$trefwoord2'  ";
$res2 = mysql_query($sql2) or die('fout in query :'. $sql2.' : '. mysql_error());
$row2 = mysql_fetch_object($res2);
    $_SESSION['naam2'] = mysql_escape_string ($row2->naam);

}

$naam2 = $_SESSION['naam2'];
        
        
?>

<a href="ratinfo.php?naam=<? echo stripslashes($naam2) ?>  "><b>Vader: </b><? echo"".stripslashes($naam2).""; ?></a>
<br><br>

<tr><td colspan="2"><center>
<form method="get" action="vergeliken.php">
<input type="submit" name="submit3" value="Vergelijk">
</form>


<?



 if ($submit3){

*code eerste stamboom*

*code 2de stamboom*

}?>


De codes van de stambomen kloppen, want die zijn gewoon in gebruik op de website. Heb ze alleen niet geplaatst omdat het anders zo lang wordt.

URL: http://www.rattenstambomen.nl/vergeliken.php

testnamen: Ratyco's Fatal Attraction en Fantasy's Union Jack

Help?
Is al gelukt!! :) Van je af schrijven werkt soms :)
Ik krijg nu in principe gewoon 2 stambomen onder elkaar als ik je script probeer...
Is het nog steeds fout dan?

//Edit
Zie dat het gefixed is.
$submit1, $submit2 en $submit3 zijn in elk geval heel bijzonder, ik vrees dat je een enorm veiligheidslek hebt in de vorm van register_globals die aan staan. Zo ja, zet deze uit en ga $_POST['submit1'] e.d. gebruiken.
register_globals staan toch in .htaccess file? Bedoel, als je die aan wil zetten moet je dat in een .htaccess file doen toch? En die heb ik niet. Voor zover ik weet staan die standaard uit en ik heb ze niet aan gezet in ieder geval.


Die instelling staat in php.ini maar kun je in .htaccess overrulen.

Wanneer bovenstaande code werkt en jij gebruikt nergens $_POST-variabelen, en daar lijkt het op, dan staat register_globals dus echt wel aan. Er heeft dan iemand een jaar of 6 liggen slapen, het is al járen bekend dat je hiermee de deuren wagenwijd openzet voor hackers.

Zet de register_globals uit in je .htacces en EIS dat jouw provider de php.ini ook aanpast. Wanneer hij met slap gelul komt dat bepaalde scripts niet meer werken, vraag jij direct je geld terug van de afgelopen jaren en ga je verhuizen naar een provider die veiligheid wél serieus neemt. Een script die onveilig is, wil je niet op je server hebben, je wilt niet jouw data kwijtraken. Of wel dan?

Reageren