Avatar billede djsteiner Nybegynder
18. december 2011 - 12:36 Der er 5 kommentarer og
1 løsning

Fejl i poll script

Hej eksperter

Jeg er ved at lave et voting script i php jeg køre "locahost"

og for denne fejl:

Notice: Undefined index: poll in C:\wamp\www\ajax-poll\poll.php on line 6 Call Stack: 0.0006 707024 1. {main}() C:\wamp\www\ajax-poll\poll.php:0
Which URL Shortening service you use most?

Notice: Undefined index: result in C:\wamp\www\ajax-poll\poll.php on line 13 Call Stack: 0.0006 707024 1. {main}() C:\wamp\www\ajax-poll\poll.php:0 Notice: Undefined index: voted1 in C:\wamp\www\ajax-poll\poll.php on line 13 Call Stack: 0.0006 707024 1. {main}() C:\wamp\www\ajax-poll\poll.php:0
Notice: Undefined index: voted1 in C:\wamp\www\ajax-poll\poll.php on line 34 Call Stack: 0.0017 709744 1. {main}() C:\wamp\www\ajax-poll\poll.php:0


Her har i koden:


<?php
//Update database information according to your server settings
$conn=mysql_connect('localhost', 'root') or die("Can't connect to mysql host");
//Select the database to use
mysql_select_db('polls') or die("Can't connect to DB");
if(!$_POST['poll'] || !$_POST['pollid']){
    $query=mysql_query("SELECT id, ques FROM questions ORDER BY id DESC LIMIT 1");
    while($row=mysql_fetch_assoc($query)){
        //display question
        echo "<p class=\"pollques\" >".$row['ques']."</p>";
        $poll_id=$row['id'];
    }
    if($_GET["result"]==1 || $_COOKIE["voted".$poll_id]=='yes'){
        //if already voted or asked for result
        showresults($poll_id);
        exit;
    }
    else{
    //display options with radio buttons
        $query=mysql_query("SELECT id, value FROM options WHERE ques_id=$poll_id");
        if(mysql_num_rows($query)){
            echo '<div id="formcontainer" ><form method="post" id="pollform" action="'.$_SERVER['PHP_SELF'].'" >';
            echo '<input type="hidden" name="pollid" value="'.$poll_id.'" />';
            while($row=mysql_fetch_assoc($query)){
                echo '<p><input type="radio" name="poll" value="'.$row['id'].'" id="option-'.$row['id'].'" />
                <label for="option-'.$row['id'].'" >'.$row['value'].'</label></p>';
            }
            echo '<p><input type="submit"  value="Submit" /></p></form>';
            echo '<p><a href="'.$_SERVER['PHP_SELF'].'?result=1" id="viewresult">View result</a></p></div>';
        }
    }
}
else{
    if($_COOKIE["voted".$_POST['pollid']]!='yes'){
       
        //Check if selected option value is there in database?
        $query=mysql_query("SELECT * FROM options WHERE id='".intval($_POST["poll"])."'");
        if(mysql_num_rows($query)){
            $query="INSERT INTO votes(option_id, voted_on, ip) VALUES('".$_POST["poll"]."', '".date('Y-m-d H:i:s')."', '".$_SERVER['REMOTE_ADDR']."')";
            if(mysql_query($query))
            {
                //Vote added to database
                setcookie("voted".$_POST['pollid'], 'yes', time()+86400*300);               
            }
            else
                echo "There was some error processing the query: ".mysql_error();
        }
    }
    showresults(intval($_POST['pollid']));
}
Avatar billede erikjacobsen Ekspert
18. december 2011 - 13:04 #1
Den rigtige måde at spørge på om der er noget i fx $_POST['poll'] er at sige

  isset($_POST['poll'])

Din PHP advarer dig fordi den er flink. I gamle dage var PHP default sat til, at der ikke kom advarsler, men det var dumt, så i dag får man advarslen som udgangspunkt.

Den dumme løsning er at gå ind i indstillingerne for din PHP, og fjerne advarslen.
Avatar billede djsteiner Nybegynder
18. december 2011 - 14:01 #2
Okay tak for svaret :)

Men det vil sige at scriptet virker fint nok ?
Avatar billede erikjacobsen Ekspert
18. december 2011 - 16:38 #3
En advarsel, warning, er ikke en fejl. Men det er rodet ikke at gøre det korrekt, med isset. Om dit script ellers virker, har jeg ikke taget stilling til.
Avatar billede djsteiner Nybegynder
18. december 2011 - 16:59 #4
okay super

Giv lige svar så for du point
Avatar billede erikjacobsen Ekspert
18. december 2011 - 18:06 #5
Jeg samler slet ikke på point, tak. Svar selv og accepter dit eget svar.
Avatar billede djsteiner Nybegynder
18. december 2011 - 18:39 #6
Okay super .)
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