Welcome Guest, Not a member yet? Register   Sign In
redirect() not working - any idea or hint??
#1

[eluser]Jan_1[/eluser]
Hi everybody! Could someone please help me or give me a hint how to solve it?

I am doing a survey. That happens on my_domain.com/question/index.php

I have a JQuery/Javascript, that posts data to a CI controller (my_domain.com/vote/index.php). The Javascript is called from the question-view (by question-controller)

In my session are userdata "question_number" and "last_question".

In my vote-controller, called by the javascript, I do want to do a redirect to the 'survey-result-page' if $question_number > $last_question.

vote.php:
Code:
if( $question_number   >   $last_question)  
{
   echo "X";
   redirect('http://google.com', 'refresh');
}
That works, because I do get the "X". but it does not redirect. I think it is because the ouput is already done by the question-controller. What could I do?

Or is it not that but a .htaccess-question?
Code:
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /

        # Removes index.php  URLs
        RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
        RewriteCond %{REQUEST_URI} !/system/.* [NC]
        RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

        # Directs all web requests through the site index file
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>

Every hint appriciated! Thank You!
#2

[eluser]Tpojka[/eluser]
CodeIgniter helper function redirect() uses PHP header() native function.
Nothing mustn't be sent to browser before redirect() nor echo like you have been echoing "x".
You can check it in system/helpers/url_helper.php ln 540 and ln 542.

Question is why do you need echo if you want to make redirect to another page.
#3

[eluser]Jan_1[/eluser]
So, what I did now is
Code:
if( $question_number   >   $last_question)  
{
   printf("&lt; script &gt;location.href='http://mydomain.com/result'< / script >");
}

That's not really good, but a solution for now.
I will rework the 'survey-result-page' later, so, that I do not have to redirect but include the 'result-view'. That will be nicer.
#4

[eluser]Tpojka[/eluser]
If you move echo 'x' from code snippet in first post, redirect() will make the job pretty much.
#5

[eluser]Jan_1[/eluser]
o_O
Tpojka, are you kidding? Thanks for trying to help.
#6

[eluser]CroNiX[/eluser]
Also, redirect() is for redirecting to your domain, not external domains like google. redirect() expects segments, to which it appends automatically to the base_url().

Code:
if( $question_number   >   $last_question)  
{
   redirect('result'); //redirects to http://yourdomain.tld/result
}




Theme © iAndrew 2016 - Forum software by © MyBB