vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   My last question on PHP, promise :) (https://vborg.vbsupport.ru/showthread.php?t=96149)

kjhkjh 09-12-2005 11:30 PM

My last question on PHP, promise :)
 
I really do appreciate the help that I get on this forum and know that I'm asking a lot. But I learn from all the advice. Thank you.

Here is my final question...

Summarizing what I want to do from the start:

1. I have a form with 4 fields. For example $mobile, $code, $message,
$tickbox

2. I need to confirm that there are no blank values and that the
tickbox is ticked.

3. I need to confirm that $mobile is a number (no other characters)

4. If there are blank values or $mobile contains a value other than a
number, I need error messages and the form to be presented back to them
with the error messages below.

5. Another tricky part is that I need $code to be checked, so that it
is matched to a code in mysql database. Otherwise the user gets
requested to re-enter the code (but hopefully the message and mobile
fields will still be populated from what the user originally put in
each of the fields. This will stop them getting annoyed that the
message they spent 10 mins writing has disappeared after the error.

6. If there are no blanks AND the code matches any code on mysql (I
have a table there with a single field which has 1000 codes) AND the
mobile value is all numbers, then and only then would I like myfile.php
to be actioned which involves sending an email (I have the email bit
all worked out in the myfile.php)

7. The final bit is that on submission If all the above is correct (no
blanks and code confirmed etc...) then I need the code to be deleted
from the mysql table.

I know that this is quite a bit of work but if anyone could help me
with anybit then I would appreciate it.

At the moment I might be doing it the wrong way but have this:

PHP Code:

<?php 

//substr just to have the php page accept a certain number of 
charactersnot all that important

$mobile substr($_REQUEST["mobile"], 015); 
$code substr($_REQUEST["code"], 08); 
$message substr($_REQUEST["message"], 0122); 
$tickbox $_REQUEST["tickbox"]; 

//will redirect to blanks.php page which is almost the same as the 
original form page
//but with the blanks error message 

if (empty(mobile) || empty($code) || empty($message) || 
empty(
$tickbox)) { 
        
header"Location: http://www.mysite.com/blanks.php" ); 

  } 

//will redirect to bad number page which is almost identical to the 
original form page 
//but with bad number comment 
if (!ereg("^[0-9]{1,}$",$mobile)) { 
        
header"Location: http://www.mysite.com/badnumber.php" ); 

  } 

//the bit that sends the email 
//this bit works and so i dont need help on the actual email send 
$my_email "xxx...@xxxxxx.com"

if (
$_SERVER['REQUEST_METHOD'] != "POST"){exit;} 

$message ""

while(list(
$key,$value) = 
each($_POST)){if(!(empty($value))){$set=1;}$message $message "$key
$value\n\n";} if($set!==1){header("location: 
$_SERVER[HTTP_REFERER]");exit;} 

$message "$code 
                      
$mobile 
                      
$message 
                      
$tickbox"

$subject "subject"
$headers "From: " $_POST['senderemail'] . "\n" "Return-Path: " 
$_POST['senderemail'] . "\n" "Reply-To: " $_POST['senderemail'] . 
"\n"

mail($my_email,$subject,$message,$headers); 

<
html
<
head
</
head
<
body

Actual final page that the user sees after successful form submission 
is here in the html


</
body
</
html

?>

So thats how far I've come with separate .php files for error messages.

But I do need to only have this form submit the email bit if there are
no blanks AND the $mobile only contains numbers AND the $code matches a
code in mysql table.

On submission I would need the used code to be deleted from the table
on mysql.

All help appreciated!

Xenon 09-13-2005 11:44 AM

instead of
PHP Code:

ereg("^[0-9]{1,}$",$mobile

you can use the is_numeric function

kjhkjh 09-13-2005 12:12 PM

Thanks,

Someone else told me that but I can't get it to work.

Do I just replace the lines:


PHP Code:

if (!ereg("^[0-9]{1,}$",$mobile)) {  
        
header"Location: http://www.mysite.com/badnumber.php" );  

  } 


With:

PHP Code:

if (is_numeric($mobile)) {  
        
header"Location: http://www.mysite.com/badnumber.php" );  

  } 


Because this is what I did and it doesn't work like ereg does?


This is as far as I have got with the form field validation bit too. If someone can help me finish this, it may be the quickest $30 paypal they've ever made!

So I add:

PHP Code:

$username="username"
$password="password"
$database="databasename"

mysql_connect('localhost',$username,$password); 
@
mysql_select_db($database) or die( "Unable to select database"); 

$sql "select count(*) items from tablename where code = '$code'"
//Run the query 
if (items == 0) { 
    
header"Location: http://www.mysite.com/badcode.php" ); 



With this I'm trying to validate that $code submitted in the form is in a table. If it is progress with the action (sending an email- noted in first post) PLUS then I would need to have this $code value deleted from the mysql database table.

If the value of $code isn't on the table then I have the redirect to http://www.mysite.com/badcode.php

PLEASE help if you can and I will paypal you $50 as soon as I have it working. I'm sure that this is easy for a lot of people.

Thanks.

Marco van Herwaarden 09-13-2005 12:32 PM

PHP Code:

if (!is_numeric($mobile)) 

You should be using ! (not).

kjhkjh 09-17-2005 09:51 AM

thanks marco

you've helped me a bunch of times and i really appreciate it.


All times are GMT. The time now is 07:09 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01234 seconds
  • Memory Usage 1,759KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete