Avatar billede kulip Nybegynder
16. juni 2006 - 22:16 Der er 11 kommentarer og
1 løsning

Hjælp med ip addresse.

hejsa jeg vil gerne have sådan at hvis ipen allerede står i databasen så må den ikke stemme i min votebox igen. den må gerne se voteboxen, men når den trykker stem skal der stå "du har stemt en gang"
Håber der er nogle som kan hjælpe mig . tak. her er min kode. med det jeg troede:
<?
include("sql/db_ind.inc");
$result2 = mysql_query("SELECT svar FROM vote") or die (mysql_error());
$r = mysql_fetch_array($result2);
$ialt = mysql_num_rows($result2);
$result3 = mysql_query("SELECT * FROM vote WHERE svar = 'ja'");
$ja = mysql_num_rows($result3);
$result4 = mysql_query("SELECT * FROM vote WHERE svar = 'nej'");
$nej = mysql_num_rows($result4);
$result5 = mysql_query("SELECT * FROM vote WHERE svar = 'maske'");
$maske = mysql_num_rows($result5);
$jap = $ja/$ialt*100;
$nejp = $nej/$ialt*100;
$maskep = $maske/$ialt*100;
?>
<?php
include("sql/db_ind.inc");
if ($_POST['news']) {
$header = $_POST['header'];
$svar = $_POST['R1'];
$ip = $_SERVER['REMOTE_ADDR'];
$result_ip = mysql_query("SELECT * FROM vote WHERE ip = '$ip'");
$num_ip = mysql_num_rows($result_ip);
if($num_ip == "1") { echo 'Jeg er blondine håber fandme at du også er'; }
else {
mysql_query("INSERT INTO vote (svar, ip) VALUES ('$svar', '$ip')") or die (mysql_error());
echo "Tak for dit svar.<br>
<b>Ja:</b>$ja - (" . round($jap) . "%)<br>
<b>Nej:</b>$nej - (" . round($nejp) . "%)<br>
<b>Maske:</b>$maske - (" . round($maskep) . "%)<br>
<b>Ialt:</b> $ialt"; }
} else {

?>
Kommer du i år?
<form action="<?php echo $SERVER[PHP_SELF]; ?>" method="post">
<p><input type="radio" value="ja" name="R1">Ja<br>
<input type="radio" value="nej" name="R1">Nej<br>
<input type="radio" value="maske" name="R1">Måske<br>
<input type="submit" name="news" value="post">
</form>
<?
}
?>
Avatar billede nielle Nybegynder
16. juni 2006 - 22:54 #1
Prøv at ændre:

if($num_ip == "1")

- til:

if ($num_ip >= 1)
Avatar billede jakobdo Ekspert
16. juni 2006 - 22:55 #2
Hvis du har stemt før, så skriver din kode nu:
echo 'Jeg er blondine håber fandme at du også er';
Så er det jo "bare" at vise:
<b>Ja:</b>$ja - (" . round($jap) . "%)<br>
<b>Nej:</b>$nej - (" . round($nejp) . "%)<br>
<b>Maske:</b>$maske - (" . round($maskep) . "%)<br>
<b>Ialt:</b> $ialt"; }
i stedet for.
Avatar billede kulip Nybegynder
16. juni 2006 - 22:59 #3
nej jakobdo det skriver den nemlig ikke, den skriver slet ikke noget man får nemlig log til at stemme igen.
Avatar billede nielle Nybegynder
16. juni 2006 - 23:11 #4
prøv med:

if (isset($_POST['news']))
{
    $header = $_POST['header'];
    $svar = $_POST['R1'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $result_ip = mysql_query("SELECT * FROM vote WHERE ip = '$ip'");
    $num_ip = mysql_num_rows($result_ip);

    if ($num_ip >= 1)
    {
        echo 'Jeg er blondine håber fandme at du også er';
    }
    else
    {
        mysql_query("INSERT INTO vote (svar, ip) VALUES ('$svar', '$ip')") or die (mysql_error());
        echo "Tak for dit svar.<br>";
    }

    echo "<b>Ja:</b>$ja - (" . round($jap) . "%)<br>
        <b>Nej:</b>$nej - (" . round($nejp) . "%)<br>
        <b>Maske:</b>$maske - (" . round($maskep) . "%)<br>
        <b>Ialt:</b> $ialt";
}
else
{
?>
Kommer du i år?
<form action="<?php echo $SERVER[PHP_SELF]; ?>" method="post">
<p><input type="radio" value="ja" name="R1">Ja<br>
<input type="radio" value="nej" name="R1">Nej<br>
<input type="radio" value="maske" name="R1">Måske<br>
<input type="submit" name="news" value="post">
</form>
<?
}
?>
Avatar billede jakobdo Ekspert
16. juni 2006 - 23:38 #5
Nielle: Kan kulip's problem være, at den kode han arbejde med nu, jo netop kun kommer "ind" i koden: if (isset($_POST['news'])) når $_POST['news'] er sat.

Den skal jo vise:
echo "<b>Ja:</b>$ja - (" . round($jap) . "%)<br>
        <b>Nej:</b>$nej - (" . round($nejp) . "%)<br>
        <b>Maske:</b>$maske - (" . round($maskep) . "%)<br>
        <b>Ialt:</b> $ialt";

Allerede når en bruger som har stemt åbner siden?

Så måske noget i denne stil:

$ip = $_SERVER['REMOTE_ADDR'];
$result_ip = mysql_query("SELECT * FROM vote WHERE ip = '$ip'");
$num_ip = mysql_num_rows($result_ip);

if (isset($_POST['news']))
{
    $header = $_POST['header'];
    $svar = $_POST['R1'];
   
    if ($num_ip >= 1)
    {
        echo 'Jeg er blondine håber fandme at du også er';
    }
    else
    {
        mysql_query("INSERT INTO vote (svar, ip) VALUES ('$svar', '$ip')") or die (mysql_error());
        echo "Tak for dit svar.<br>";
    }
}

if ($num_ip >= 1)
{
    //Brugeren har stemt...
    echo "<b>Ja:</b>$ja - (" . round($jap) . "%)<br>
        <b>Nej:</b>$nej - (" . round($nejp) . "%)<br>
        <b>Maske:</b>$maske - (" . round($maskep) . "%)<br>
        <b>Ialt:</b> $ialt";
}
else
{
    ?>
    Kommer du i år?
    <form action="<?php echo $SERVER[PHP_SELF]; ?>" method="post">
    <p><input type="radio" value="ja" name="R1">Ja<br>
    <input type="radio" value="nej" name="R1">Nej<br>
    <input type="radio" value="maske" name="R1">Måske<br>
    <input type="submit" name="news" value="post">
    </form>
    <?
}
?>
Avatar billede nielle Nybegynder
17. juni 2006 - 08:47 #6
Det tror jeg da ikke er hele problemet. Han skriver at man bare får lov til at stemme igen selv om man allerede har stemt.

Men elleres har du da ret. :^)
Avatar billede nielle Nybegynder
17. juni 2006 - 09:14 #7
... sad lige og nuslede med koden for at gøre den mere effektiv og skåne databasen:

<?
include("sql/db_ind.inc");

$ip = $_SERVER['REMOTE_ADDR'];
$result = mysql_query("SELECT count(*) AS antal FROM vote WHERE ip = '$ip'") or die (mysql_error());
$row = mysql_fetch_assoc($result);
$num_ip = $row["antal"];

if (isset($_POST['R1']))
{
    if ($num_ip >= 1)
        echo "Jeg er blondine, håber fandme at du også er.<br>";
    else
    {
        $svar = $_POST['R1'];
   
        mysql_query("INSERT INTO vote (svar, ip) VALUES ('$svar', '$ip')") or die (mysql_error());
        $num_ip = 1;
        echo "Tak for dit svar.<br>";
    }
}

if ($num_ip >= 1)
{
    $result = mysql_query("SELECT count(*) AS ialt FROM vote") or die (mysql_error());
    $row = mysql_fetch_assoc($result);
    $ialt = $row["ialt"];

    $result = mysql_query("SELECT count(*) AS ja FROM vote WHERE svar = 'ja'");
    $row = mysql_fetch_assoc($result);
    $ja = $row["ja"];

    $result = mysql_query("SELECT count(*) AS nej FROM vote WHERE svar = 'nej'");
    $row = mysql_fetch_assoc($result);
    $nej = $row["nej"];

    // $result = mysql_query("SELECT count(*) AS maske FROM vote WHERE svar = 'maske'");
    // $row = mysql_fetch_assoc($result);
    // $maske = $row["maske"];

    $jap = 100.0 * $ja / $ialt;
    $nejp = 100.0 * $nej / $ialt;
    $maskep = 100.0 - $jap - $nejp;

    echo "<b>Ja:</b>$ja - (" . round($jap) . "%)<br>
        <b>Nej:</b>$nej - (" . round($nejp) . "%)<br>
        <b>Maske:</b>$maske - (" . round($maskep) . "%)<br>
        <b>Ialt:</b> $ialt";
}
else
{
?>
Kommer du i år?
<p>
<form action="<?php echo $SERVER[PHP_SELF]; ?>" method="post">
<input type="radio" value="ja" name="R1">Ja<br>
<input type="radio" value="nej" name="R1">Nej<br>
<input type="radio" value="maske" name="R1">Måske<br>
<input type="submit" name="news" value="post">
</form>
</p>
<?
}
?>
Avatar billede nielle Nybegynder
22. juni 2006 - 21:27 #8
Har du fået kigget på det?
Avatar billede kulip Nybegynder
27. juni 2006 - 15:58 #9
mange mange tak :D
Avatar billede nielle Nybegynder
27. juni 2006 - 16:04 #10
Jemen, siden at du jo smider en glad smiley, regner jeg med at problemet er løst?

Så vil jeg da smide et svar, og håbe på af jakobdo gør det samme. :^)
Avatar billede nielle Nybegynder
27. juni 2006 - 17:50 #11
jakobdo> Point? :^)
Avatar billede jakobdo Ekspert
27. juni 2006 - 18:08 #12
Nej tak, jeg samler ikke på point! :oD
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