• We just launched and are currently in beta. Join us as we build and grow the community.

Ticket System in PHP - #5 Ticket Processing

purplevelvet

Cyber Footprint Reduction Specialist
P Rep
0
0
0
Rep
0
P Vouches
0
0
0
Vouches
0
Posts
169
Likes
152
Bits
2 MONTHS
2 2 MONTHS OF SERVICE
LEVEL 1 300 XP
Introduction:

This tutorial is the final part in my ticket system via PHP tutorial. This part will be covering processing the ticket.

Ticket Information:

We are already sending the email to the entered 'forgot password' reset form containing the ticket ID. This ticket ID links to the customer account through the column value of 'User'.

It should also be noted that the email address only receives an email with the ticket number, and not a URL. So now we need a way for the user to enter their ticket ID.

Ticket Form:

We already have a password reset form so now we are going to edit this to allow the user to enter a ticket. The current form we have is:

  1. <form

    action

    =

    'reset.php'

    method

    =

    'POST'

    >
  2. <input

    type

    =

    'password'

    placeholder=

    'Password'

    name

    =

    'password1'

    /

    >
  3. <input

    type

    =

    'password'

    placeholder=

    'Password2'

    name

    =

    'password2'

    /

    >
  4. <input

    type

    =

    'submit'

    value

    =

    'Reset Password'

    name

    =

    'resetPassword'

    /

    >
  5. </

    form

    >

Let's add another input of type 'text' for the ticket...

  1. <input

    type

    =

    'text'

    placeholder=

    'Ticket'

    name

    =

    'ticket'

    /

    >

Processing:

The final step of this project is processing the ticket information. First we check to see if the user has submitted the above form...

  1. <?php
  2. if

    (

    isSet

    (

    $_POST

    [

    'resetPassword'

    ]

    )

    )

    {

  3. }
  4. ?>

Next we check to see if the passwords match. If they do, we sanitise the string for security, and md5 hash/encrypt it ready to be entered in to our database table for the user...

  1. if

    (

    $_POST

    [

    'password'

    ]

    ==

    $_POST

    [

    'password2'

    ]

    )

    {
  2. $pass

    =

    md5

    (

    strip_tags

    (

    $_POST

    [

    'password'

    ]

    )

    )

    ;
  3. }

Now we want to check to see if the ticket is valid, we'll call a function and then create it...

  1. $uID

    =

    ticketValid(

    )

    ;
  2. if

    (

    $uID

    >=

    1

    )

    {

  3. }

  1. function

    ticketValid(

    )

    {
  2. if

    (

    isSet

    (

    $_POST

    [

    'ticket'

    ]

    )

    )

    {
  3. $ticket

    =

    strip_tags

    (

    $_POST

    [

    'ticket'

    ]

    )

    ;
  4. $q

    =

    mysqli_query

    (

    $con

    ,

    "SELECT * FROM `tickets` WHERE `Ticket`='$ticket

    '"

    )

    ;
  5. if

    (

    $q

    &&

    mysqli_num_rows

    (

    $q

    )

    >

    0

    )

    {
  6. return

    (

    int)

    mysqli_fetch_array

    (

    $con

    ,

    $q

    )

    [

    'User'

    ]

    ;
  7. }
  8. }
  9. return

    0

    ;
  10. }

The above code first sets a new variable 'uID' to the value returned from the 'ticketValid' function. It then checks the variable to see if it's higher than or equal to one (1) (greater than zero (0)).

The function we have just created simply checks if the ticket exists, and it does, it returns the value 'User' from the table ticket's record. Other it returns zero (0) as an error.

Now if the ticket is valid, we have the user ID. We simply set their password to the newly entered and md5 hashed password. We also output any appropriate messages...

  1. $qq

    =

    mysqli_query

    (

    $con

    ,

    "UPDATE `users` SET `password`='$pass

    ' WHERE `id`='$uID

    '"

    )

    ;
  2. if

    (

    $qq

    )

    {
  3. echo

    'Updated password successfully!'

    ;
  4. }

    else

    {
  5. echo

    'Failed.'

    ;
  6. }

Finished!


Download
You must upgrade your account or reply in the thread to view the hidden content.
 

452,496

332,845

332,853

Top