PHP Web Host - Quality Web Hosting For All PHP Applications Free RavenNuke(tm) Add Ons
  Login or Register
 • Home • Downloads • Your Account • Forums • 

View next topic
View previous topic


Google
 
Web RavenPHPScripts (This Site)
Post new topic   Reply to topic
Author Message
CodyG
Life Cycles Becoming CPU Cycles


Joined: Jan 02, 2003
Posts: 668
Location: Vancouver Island

PostPosted: Fri Jun 11, 2004 9:34 am Reply with quote Back to top

Newbie, wanna be, probably never will be programmer here....

I'm developing a new form module.

I've been playing around with this for a day now... thought I'd come for some guru help because I'm at a loss as to what to try next.

It's a help/bugreport/question form which sends an email with the form data. Everything is groovy, the form (form2mail) is integrated, the mail get's sent, but the redirect to the thankyou... how do I get that integrated?

There are four files in the module:
index.php ... includes help.php

help.php .. the html form <form method=POST action=/modules/Help/helpdo.php>

helpdo.php .. the php that process the form and redirects

thankyou.php .. after the form is successfully submitted this page should be displayed and it is... I just need to integrate this page into nuke tables with headers etc.

But when I attempt to do that I get errors... cannot access this file directly, so I removed the if statement. Then the error is can't find mainfile.php, but after removing that, I'm down to basic html and that doesn't work.

What am I missing here? How do I redirect to a thankyou and keep it inside nuke?
View user's profile Send private message
Raven
Site Admin/Owner


Joined: Aug 27, 2002
Posts: 16987
Location: Kansas

PostPosted: Mon Jun 21, 2004 6:48 am Reply with quote Back to top

I will assume that you know how to call the redirect itself. To keep it w/i nuke, you will need to call a module that has your Thank You note in it. Just make a standard module, possibly called modules/Thank_You/index.php. Then, in your redirect, you would code
Only registered users can see links on this board!
Get registered or login to the forums!
. Does that help?
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
CodyG
Life Cycles Becoming CPU Cycles


Joined: Jan 02, 2003
Posts: 668
Location: Vancouver Island

PostPosted: Mon Jun 21, 2004 8:11 am Reply with quote Back to top

Why would I need to call the thankyou file from a different module? Why not just call thankyou.php from the same module?

$redirectURL = "http://mydomain.ca/modules.php?name=Help&file=thankyou"; // the URL of the thank you page.

But that doesn't work either, the page is still outside nuke.

So, I went to the Nuke manual and found this solution...
$redirectURL = "http://mydomain.ca/modules.php?name=Help&amp;page=thankyou.php"; // the URL of the thank you page.

or this one
Only registered users can see links on this board!
Get registered or login to the forums!


But they don't work either, only the form page is displayed, not the thankyou page.

I've been trying to find some similiar redirect in some nuke module... no luck yet. Any more clues?
View user's profile Send private message
Raven
Site Admin/Owner


Joined: Aug 27, 2002
Posts: 16987
Location: Kansas

PostPosted: Mon Jun 21, 2004 8:16 am Reply with quote Back to top

Another module, another file; same difference. The file (whether index or thankyou or whatever) has to be called using the syntax I said
Only registered users can see links on this board!
Get registered or login to the forums!

or
Only registered users can see links on this board!
Get registered or login to the forums!


It's all the same. The file you are calling has to be set up as a module (wrapper) internally to keep it w/i nuke.
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
CodyG
Life Cycles Becoming CPU Cycles


Joined: Jan 02, 2003
Posts: 668
Location: Vancouver Island

PostPosted: Mon Jun 21, 2004 8:36 am Reply with quote Back to top

Only registered users can see links on this board!
Get registered or login to the forums!


That should work! so how come the thankyou isn't inside nuke?

$redirectURL = "http://mydomain/modules.php?name=Help&file=thankyou"; // the URL of the thank you page.

<snip helpdo script which sends the mail>

then this ...

header("Location: ".$redirectURL);
Is that what's causing this issue?
View user's profile Send private message
Raven
Site Admin/Owner


Joined: Aug 27, 2002
Posts: 16987
Location: Kansas

PostPosted: Mon Jun 21, 2004 9:03 am Reply with quote Back to top

Is thankyou built like index.php as a module?
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
CodyG
Life Cycles Becoming CPU Cycles


Joined: Jan 02, 2003
Posts: 668
Location: Vancouver Island

PostPosted: Mon Jun 21, 2004 10:57 am Reply with quote Back to top

no, raven, the thankyou.php is plain html. hmm... I already tried making the thankyou.php like a module, but got all kinds of errors looking for mainfile or disallowing access.
View user's profile Send private message
Raven
Site Admin/Owner


Joined: Aug 27, 2002
Posts: 16987
Location: Kansas

PostPosted: Mon Jun 21, 2004 11:02 am Reply with quote Back to top

Make it like a module. Also try NOT fully qualifying the redirect. Only use modules.php?name=Help&file=thankyou . Some setups don't allow you to use
Only registered users can see links on this board!
Get registered or login to the forums!
I know this works as I have done it before.
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
CodyG
Life Cycles Becoming CPU Cycles


Joined: Jan 02, 2003
Posts: 668
Location: Vancouver Island

PostPosted: Mon Jun 21, 2004 12:47 pm Reply with quote Back to top

how hard can this be? Now I'm not getting mail from the form. I've made the thankyou.php like a module index file, but the script is no broken before sending that file.... perhaps it's my form action... ?? (which was working as long as I wasn't trying to put the thankyou page inside nuke.)

<form method=post action=modules.php?name=Help&amp;file=helpdo>

or...

<form method=post action=modules.php?name=Help&file=helpdo.php>

or

<form method=post action=modules.php?name=Help&file=helpdo>

No matter what I try, I'm now getting a "sorry, page cannot be found" instead of the form processing and the thankyou page.

And the $redirectURL is now like this:
$redirectURL = "modules.php?name=Help&amp;file=thankyou"; // the URL of the thank you page.

Crying or Very sad
View user's profile Send private message
Raven
Site Admin/Owner


Joined: Aug 27, 2002
Posts: 16987
Location: Kansas

PostPosted: Mon Jun 21, 2004 2:08 pm Reply with quote Back to top

Okay, lets try another approach. I have written 2 scripts that should demonstrate the way I am understanding this issue and how to solve it. I am assuming that you have scriptA that allows the user to submit a report. You then want to have the report details emailed and then produce a Thank You page (scriptB). Here would be one way.

This script is the main module and I have named it -- Cody.
Code:
<?php

if (!eregi("modules.php", $_SERVER['PHP_SELF'])) {
    die ("You can't access this file directly...");
}
    include("header.php");
    OpenTable();
?>
<form action="modules.php?name=Cody&file=sendandreply" method="POST">
Type message here: <input name="msg">
<br />
<br />
<input type="submit" name="submit" value="Submit">
</form>
<?
CloseTable();
include("footer.php");
?>


This is the script that Cody calls to email and display a Thank You screen.
Code:
<?php

if (!eregi("modules.php", $_SERVER['PHP_SELF'])) {
    die ("You can't access this file directly...");
}
include("header.php");
OpenTable();
if (empty($_POST['msg'])) {
   header("location: modules.php?name=Cody");
   die();
}
//mail();
?>
Thank you for your Report.  We will get back to you soon!
<?
CloseTable();
include("footer.php");
?>


Now I have not included the email() function, but instead just made a place for it. Save both of these scripts to a folder called Cody. The fiorst one should be named index.php and the second sendandreply.pnp. Does this help or not?
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
CodyG
Life Cycles Becoming CPU Cycles


Joined: Jan 02, 2003
Posts: 668
Location: Vancouver Island

PostPosted: Mon Jun 21, 2004 5:06 pm Reply with quote Back to top

According to you Raven, I've got too many files ... it seems logical to me, and the script features, to separate all these things.

file 1. modules/Help/index.php // follows nuke modules rules for every index.php; includes help.php

file 2. modules/Help/help.php // This is the form, html only // form action=helpdo.php (path should be relative, right?)

file 3. modules/Help/helpdo.php // This is the function that takes the form data and mails it and redirects to thankyou.php (edited from code by George A. & Calin S. from Web4Future.com) html and php

Code:
 
$MailToAddress = "something@something.ca";
$redirectURL = "modules.php?name=Help&file=thankyou";
# optional settings
$MailSubject = "[Help, Question, Bug Report]";
$MailToCC = "something@something.ca";

$Message = "";
    if (!is_array($HTTP_POST_VARS))
    return;
reset($HTTP_POST_VARS);
        while(list($key, $val) = each($HTTP_POST_VARS)) {
                $GLOBALS[$key] = $val;
                if (is_array($val)) {
                        $Message .= "<b>$key:</b> ";
                        foreach ($val as $vala) {
                                $vala =stripslashes($vala);
                                $Message .= "$vala, ";
                        }
                        $Message .= "<br>";
                }
                else {
                        $val = stripslashes($val);
                        if (($key == "Submit") || ($key == "submit")) { }
                        else {         if ($val == "") { $Message .= "$key: - <br>"; }
                                        else { $Message .= "<b>$key:</b> $val<br>"; }
                        }
                }
        } // end while
$Message = "<font face=verdana size=2>".$Message;
mail( $MailToAddress, $MailSubject, $Message, "Content-Type: text/html; charset=ISO-8859-1\r\nFrom: ".$email."\r\nBCc: ".$MailToCC);


header("Location: ".$redirectURL);
?>


file #4 modules/Help/thankyou.php // this is the thankyou file //html only


I like the above method, it seems tidy and reuseable. I just need to understand why it won't put the thankyou.php in nuke without sending errors and/or breaking the mailer.

Something about
header("Location: ".$redirectURL);
bugs me... You suggested I make thankyou.php comply with nuke module rules... but that would include a header() in the thankyou.php too. It would conflict with the above script, right?

I'll probably end up with your method, using 2 files, because I know that method works for sure as I use it on other forms. I just really liked this bit of mailing script so I'll want to find a way to make it do what I want to do in nuke, by a different method ... tomorrow.

Thanks Raven.
View user's profile Send private message
Raven
Site Admin/Owner


Joined: Aug 27, 2002
Posts: 16987
Location: Kansas

PostPosted: Mon Jun 21, 2004 5:30 pm Reply with quote Back to top

No, the headers are 2 different animals.
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger
Display posts from previous:       
Post new topic   Reply to topic

View next topic
View previous topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Forums ©
 

All logos and trademarks in this site are property of their respective owner.
The comments are property of their posters, all the rest © 2002-2011 by Raven

You can syndicate our news using the file xml

CSE HTML Validator Helped Clean up This Page! [Valid RSS] valid RSS 2.0 Valid robots.txt Stop Spam Harvesters, Join Project Honey Pot

Website engines core code is © copyright by PHP-Nuke but has been heavily patched and modified by myself and others.
PHP-Nuke is a free software released under the GNU/GPL.


:: fisubice phpbb2 style by Daz :: PHP-Nuke theme by www.nukemods.com ::
:: fisubice Theme Modified by the RavenNuke™ Team ::

:: W3C CSS Compliance Validation :: W3C HTML 4.01 Transitional Compliance Validation ::

zerosum