Redirect

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

alexrares
New Member
Mesaje: 1
Membru din: Dum Ian 10, 2016 7:28 pm

Redirect

Mesajde alexrares » Dum Ian 10, 2016 7:31 pm

Salut! Cum pot sa fac codul urmator sa ramana la index dupa afisarea mesajelor?

Cod: Selectaţi tot

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['submit'])) {
 
    $name = $_POST['name']; //name of sender
    $email = $_POST['email']; //e-mail of sender
    $email = stripslashes($email);
     
    $subject = $_POST['subject']; //e-mail subject
    $subject = str_replace(array("\r\n","\r","\n"), "", $subject); //remove any linebreaks to keep from code injections
 
    $message = $_POST['message']; // e-mail message
    $message = str_replace(array("\r\n", "\r"), "\n", $message); // fix line-breaks
    $message = stripslashes($message);
 
    //headers
    $headers = "From:$name<$email>\r\n";
    $headers .= "Return-path: <$email>\r\n";
    $headers .= "Content-type: text/plain; charset=UTF-8\r\n";
    $headers .= "Content-Transfer-Encoding: 8bit\r\n";
     
    $to = 'r.salagean@yahoo.ro'; //recipients e-mail adress
 
    //validate email and name variables
    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
    {
        echo "<script type='text/javascript'>alert('Adresa de e-mail nu este valida!');</script>";
        die();
    }
    if (preg_match('/[^a-z åäöÅÄÖüÜ _-]/i', $name))
    {
        echo "<script type='text/javascript'>alert('Numele introdus nu este valid!');</script>";
        die();
    }
 
    //send the email
    $send = mail($to, $subject, $message, $headers);
    if ($send)
        echo "<script type='text/javascript'>alert('Mesajul a fost trimis, multumim!');</script>";
    else
        echo "<script type='text/javascript'>alert('Mesajul nu a fost trimis, ceva nu a mers bine!');</script>";
}
?>



MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Re: Redirect

Mesajde MarPlo » Lun Ian 11, 2016 7:03 pm

Salut
Incearca acest cod:

Cod: Selectaţi tot

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(isset($_POST['submit'])){
  $name = $_POST['name']; //name of sender
  $email = $_POST['email']; //e-mail of sender
  $email = stripslashes($email);
   
  $subject = $_POST['subject']; //e-mail subject
  $subject = str_replace(array("\r\n","\r","\n"), "", $subject); //remove any linebreaks to keep from code injections

  $message = $_POST['message']; // e-mail message
  $message = str_replace(array("\r\n", "\r"), "\n", $message); // fix line-breaks
  $message = stripslashes($message);

  //headers
  $headers = "From:$name<$email>\r\n";
  $headers .= "Return-path: <$email>\r\n";
  $headers .= "Content-type: text/plain; charset=UTF-8\r\n";
  $headers .= "Content-Transfer-Encoding: 8bit\r\n";
   
  $to = 'r.salagean@yahoo.ro'; //recipients e-mail adress

  //validate email and name variables
  if(!filter_var($email, FILTER_VALIDATE_EMAIL)) $msg ='Adresa de e-mail nu este valida!';
  if(preg_match('/[^a-z åäöÅÄÖüÜ _-]/i', $name)) $msg ='Numele introdus nu este valid!';

  //send the email
  if(mail($to, $subject, $message, $headers)) $msg ='Mesajul a fost trimis, multumim!';
  else $msg ='Mesajul nu a fost trimis, ceva nu a mers bine!';
  echo '<script> alert("'. $msg .'"); window.location ="index.php"; </script>';
}
?>

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Re: Redirect

Mesajde vectorialpx » Mar Ian 12, 2016 5:40 pm

alexrares scrie:Salut! Cum pot sa fac codul urmator sa ramana la index dupa afisarea mesajelor?

MarPlo scrie:

Cod: Selectaţi tot

echo '<script> alert("'. $msg .'"); window.location ="index.php"; </script>';

Asta este o abordare gresita. In primul rand, experienta userului e una dubioasa.
1. redirect (submit)
2. alert
3. redirect (window.location)

Erorile se stocheaza in sesiune si se afiseaza dupa redirect SAU,
ca sa ajungem in zilele noastre, se face un request Ajax.

Bafta!


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 31 vizitatori