Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 11:54 Der er 14 kommentarer og
1 løsning

"snyde" a-tags med PHP til overførsel med javascript

(jah jeg forstår måske ikke engang selv min overskrift, men håber i sårn nogenlunde ved hvad i er gået ind til ;D)

roenving har en del timer nu hjulpet mig i dette spm, http://www.eksperten.dk/spm/418904, og nederst er han gået i stå med noget med hvordan man får snydt med nogle <a>-tags. Nok nemmest at forstå hvis i læser de sidste 10 indlæg eller noget lignende, måske lidt mere!

problemmet er at javascript fejler når jeg sender data mellem 2 frames, og indholdet som bliver sendt indeholder et link, og det som jeg ikke helt forstår!

Håber nogen af jer kan hjælpe med at finde en løsning

(45 af pointsne er til roenving som tak for hjælp i forrige spm!)
Avatar billede olebole Juniormester
27. oktober 2003 - 15:39 #1
<ole>

En URL til dit forsøg, ville nok gøre opgaven ulig meget lettere  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
27. oktober 2003 - 15:40 #2
Sorry .... det stod der jo  :D
Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 16:11 #3
kunne du se noget i det andet spm, eller vil du gerne have jeg forklare fejlen således du ikke behøves at sætte dig ind i det hele?
Avatar billede olebole Juniormester
27. oktober 2003 - 16:49 #4
Nej, jeg trækker mig igen. Jeg bliver nødt til at sidde med koden selv ... ellers kommer det vist til at tage mere tid, end jeg har. Der kommer nok en anden forbi  ;o)
/mvh
Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 16:55 #5
hvad mener du med du skal sidde med koden selv? at det skal være noget du selv har skrevet, eller?
Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 17:00 #6
koden til siden som sender variablen ser ud som nedenunder... Problemmet er der hvor der linkes, både ved "<a href='#' onClick='showdiv(\"ret\");showdiv(\"profil\");return false'>vis/ret oplysninger</a>" og hvor mailen skrives (hvis de 2 fjernes så virker det fint):

<html>
<head>

</head>
<body onLoad="parent.document.getElementById('andetindhold').innerHTML = document.getElementById('tekst').innerHTML">

<?

$bruger = $_GET[bruger];

if ($_POST[opdate] == "ja") {
    mysql_query("UPDATE webcal_user SET navn = '$_POST[navn]', email = '$_POST[mail]', tlf = '$_POST[tlf]', mobil = '$_POST[mobil]', adresse = '$_POST[adresse]', icq = '$_POST[icq]', msn = '$_POST[msn]' WHERE id = '$_GET[bruger]'") or die(mysql_error());
}

$foresp = mysql_query("SELECT * FROM webcal_user WHERE id = '$bruger'") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
$brugernavn = $row["brugernavn"];
$navn = $row["navn"];
$mail = $row["email"];
$tlf = $row["tlf"];

$html = "";

if ($bruger == $_SESSION[loginid]) {
    $html .= "
    <b>
    <a href='#' onClick='showdiv(\"ret\");showdiv(\"profil\");return false'>vis/ret oplysninger</a>
    </b><br><br>
    ";
}

$html .= "
    <div id='profil' style='display:'>
";

if ($navn != "") {
    $html .= "
    <b>Rigtige navn</b>:<br>
    $navn<p>
    ";
}
if ($mail != "") {
    $html .= "
    <b>Email adresse</b>:<br>
    <a href='mailto:$mail'>$mail</a><p>
    ";
}
if ($tlf != "0") {
    $html .= "
    <b>Telefon nummer</b>:<br>
    $tlf<p>
    ";
}

$html .= "</div>";
}

if ($bruger == $_SESSION[loginid]) {
    $html .= "
    <div id='ret' style='display:none'>
        <form name='ret' method='post' action='hent/profil.php?bruger=$bruger' target='skjult_sider'>
        <input type='hidden' name='opdate' value='ja'>
        <b>Rigtige navn</b>:<br>
        <input type='text' name='navn' value='$navn' class='form_boks' style='width:90%'><p>
        <b>Email adresse</b>:<br>
        <input type='text' name='mail' value='$mail' class='form_boks' style='width:90%'><p>
        <b>Telefon nummer</b>:<br>
        <input type='text' name='tlf' value='$tlf' class='form_boks' style='width:90%'><p>
        <input type='submit' name='submit' value='[ opdatere oplysninger ]' style='width:45%' class='form_knap'>
        <input type='reset' name='reset' value='[ slet alt ]' style='width:45%' class='form_knap'>
        </form>
    </div>
    ";   
}

?>

<div id='tekst'>
<?
echo"
$html
";
?>
</div>

</body>
</html>
Avatar billede olebole Juniormester
27. oktober 2003 - 17:13 #7
Nej, jeg skal selv have adgang til serveren for at kunne teste. Men som sagt, kommer der nok en anden forbi, der har lidt bedre tid  :)
/mvh
Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 17:16 #8
har det da noget med serveren at gøre?
Avatar billede olebole Juniormester
27. oktober 2003 - 17:17 #9
Nej ... glem det  :)
Avatar billede olebole Juniormester
27. oktober 2003 - 17:18 #10
Pointen er, at når vi misforstår hinanden på så simple ting, vil det tage en krig at finde fejlen  ;o)
Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 17:44 #11
ja okay kan jeg godt se :/ skod for mig at være så "forstå-svag" *gg* problemmet er at jeg bar ikk tror der kommer andre forbi, når det er ved at være for stor en opgave til dig, så plejer der ikke være mange der kan komme og hjælpe...!
Avatar billede jakoba Nybegynder
27. oktober 2003 - 21:38 #12
Du komplicerer det hele gevaldigt ved at bygge den der lange streng i variablen $html. bare skriv der det skal bruges.

Og for 117 opløftet i 117'ende gang: tag dig tid til at lave korrekte indrykninger. Det er et hundearbejde at skulle sidde ot tælle { og } tegn fordi du er for doven til at lave dine indrykninger.

<html>
<head>

</head>
<body onLoad="parent.document.getElementById('andetindhold').innerHTML = document.getElementById('tekst').innerHTML">

<div id='tekst'>

<?

$bruger = $_GET[bruger];

if ($_POST[opdate] == "ja") {
    mysql_query("UPDATE webcal_user SET navn = '$_POST[navn]', email = '$_POST[mail]', tlf = '$_POST[tlf]', mobil = '$_POST[mobil]', adresse = '$_POST[adresse]', icq = '$_POST[icq]', msn = '$_POST[msn]' WHERE id = '$_GET[bruger]'") or die(mysql_error());
}

$foresp = mysql_query("SELECT * FROM webcal_user WHERE id = '$bruger'") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
    $brugernavn = $row["brugernavn"];
    $navn = $row["navn"];
    $mail = $row["email"];
    $tlf = $row["tlf"];

    if ($bruger == $_SESSION[loginid]) {
?>
    <b>
    <a href='#' onClick='showdiv("ret");showdiv("profil");return false'>vis/ret oplysninger</a>
    </b><br><br>
<?
    }


    if ($navn != "") {
        echo "<b>Rigtige navn</b>:<br>$navn<p>\n";
    }
    if ($mail != "") {
        echo "<b>Email adresse</b>:<br><a href='mailto:$mail'>$mail</a><p>\n";
    }
    if ($tlf != "0") {
        echo "<b>Telefon nummer</b>:<br>$tlf<p>\n"
    }

    echo "</div>\n";
} // her ender while løkken

  // de værdier for $navn, $tlf osv der bruges nedenfor er altså dem fra den sidste gang igennem while løkken

if ($bruger == $_SESSION[loginid]) {
?>
    <div id='ret' style='display:none'>
        <form name='ret' method='post' action='hent/profil.php?bruger=<? echo $bruger; ?>' target='skjult_sider'>
        <input type='hidden' name='opdate' value='ja'>
        <b>Rigtige navn</b>:<br>
        <input type='text' name='navn' value='<? echo $navn; ?>' class='form_boks' style='width:90%'><p>
        <b>Email adresse</b>:<br>
        <input type='text' name='mail' value='<? echo $mail; ?>' class='form_boks' style='width:90%'><p>
        <b>Telefon nummer</b>:<br>
        <input type='text' name='tlf' value='<? echo $tlf; ?>' class='form_boks' style='width:90%'><p>
        <input type='submit' name='submit' value='[ opdatere oplysninger ]' style='width:45%' class='form_knap'>
        <input type='reset' name='reset' value='[ slet alt ]' style='width:45%' class='form_knap'>
        </form>
    </div>
    "; 
}

?>
</div>

</body>
</html>

mvh JakobA
Avatar billede jakoba Nybegynder
27. oktober 2003 - 21:42 #13
Ups. jeg laved fejl forenden af sidste if-sætning:

    </div>
    ";
}
?>
</div>

skal være

    </div>
<?                  // rettet linie
}
?>
</div>
Avatar billede elskermad.dk Nybegynder
27. oktober 2003 - 22:56 #14
okay var ikke klar over at man måtte afslutte php midt i en løkke så har jeg da os lært det idag :) og undskylder mange gange for mine indrykninger, men er bare ikke så god til det med hvor de skal være, for mine sider bliver altid at man først skal scrolle en hel side til højre før der kommer noget tekst (derfor jeg ikke laver så meget indrykning), er det meningen?

den laver stadig samme fejl når linien med link den er med, og virker når den ikke ikke er :/

hvis jeg skriver linien således:
<div onClick='showdiv("ret");showdiv("profil")'>vis/ret oplysninger</div>
virker den også, så jeg synes det er meget specielt?

ps, læg et svar sådan du kan få nogle points :)
Avatar billede elskermad.dk Nybegynder
01. november 2003 - 16:15 #15
lukker... smid en kommentar hvis du føler dig snydt!
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