הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   הכנת קובץ יצירת קשר עם משתנה קבוע.. (https://hosts.co.il/forums/showthread.php?t=104830)

Tyler 09-08-13 21:44

הכנת קובץ יצירת קשר עם משתנה קבוע..
 
שלום.
יש לי קוד PHP בסיסי שהכנתי במספר דקות ליצירת קשר,
יש בו את סעיף ה"כתוב את כתובת המייל שלך".
או סעיף של "שם פרטי ושם משפחה".

אז בכל סעיף כזה, כמובן, יש את תיבת הinput

לדוגמא

קוד:

<tr>
 <td valign="top">
  <label for="first_name">שם פרטי *</label>
 </td>
 <td valign="top">
  <input  type="text" name="first_name" maxlength="50" size="30">
 </td>
</tr>

כמו שאתם רואים זאת התיבה להכנסת השם הפרטי.
אני רוצה שהאפשרות הזו בדף תהיה קבועה כל הזמן. אני לא רוצה להוריד אותה, אלא שכל פעם יהיה את אותו השם הפרטי.
לדוגמא כל פעם שייכנסו לדף יצירת הקשר, כל התיבות יהיו ריקות, ורק התיבה הזאת תהיה מלאה בשם שאני אחליט, לדוגמא "אבי".

ואז כל פעם שמישהו ייכנס, הוא ימלא את הפרטים שלו, אך את השם הפרטי הוא לא יוכל להחליף, והשם הפרטי יהיה קבוע בשביל כולם והוא יהיה "אבי".

האם ניתן לעשות זאת?

אשמח לדעת איך, תודה

אדיר 09-08-13 22:55

מה אתה מנסה לעשות? זה נשמע כמו פתרון די עקום.
בכל אופן קרא על input value ו- input readonly זה יעזור לך.

Tyler 10-08-13 14:00

ציטוט:

נכתב במקור על ידי אדיר (פרסם 880596)
מה אתה מנסה לעשות? זה נשמע כמו פתרון די עקום.
בכל אופן קרא על input value ו- input readonly זה יעזור לך.

אני מנסה לעשות מערכת אישית בשבילי שתהיה בקובץ נפרד, שתתפקד כמו דף יצירת קשר רק במקום לכתוב כל פעם את השם הפרטי שלי ואת המייל שלי הפרטים הללו כבר יהיו מלאים ואני אצטרך רק להשלים את ההודעה עצמה.

זה יחסוך לי המון זמן

אדיר 10-08-13 14:06

אז תעשה את זה ישירות בצד השרת...
PHP קוד:

$email $_POST['email']; // BAD
$email 'myname@example.com'// GOOD 

מיותר לחלוטין לקבל את זה מהטופס אם אתה כבר יודע מראש מה זה יהיה.

Tyler 10-08-13 19:11

ציטוט:

נכתב במקור על ידי אדיר (פרסם 880613)
אז תעשה את זה ישירות בצד השרת...
PHP קוד:

$email $_POST['email']; // BAD
$email 'myname@example.com'// GOOD 

מיותר לחלוטין לקבל את זה מהטופס אם אתה כבר יודע מראש מה זה יהיה.

לא עובד.
עשיתי מה שאמרת, הנה זה הקוד של הצד שרת:

קוד:

  // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('הטופס לא נשלח עקב שגיאות, אנא חזור אחורה ותבדוק שנית.');     
    }
   
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = 'tylerweb@gmail.com'; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required

מחקתי בהתחלה את השורה של isset($email) כי כמו שאמרת אם זה ידוע מראש אז זה מיותר..

והורדתי בצד לקוח בHTML את השורה למילוי המייל,

וכשאני שולח את הטופס הוא לא נשלח. הקובץ PHP אינו מבוצע, לא יודע מאיזו סיבה.

אדיר 10-08-13 19:44

מאיפה באה הפונקציה died? אתה מתכוון ל- die?
איפה שליחת המייל?

אם זה עבד לפני כן והשינוי היחיד שעשית היה בהתאם למה שרשמתי (+מחיקת התנאי), אין שום סיבה שזה לא יעבוד עכשיו.
תשווה את זה למה שהיה לפני כן ותבדוק מה הבעיה.

Tyler 10-08-13 19:54

ציטוט:

נכתב במקור על ידי אדיר (פרסם 880622)
מאיפה באה הפונקציה died? אתה מתכוון ל- die?
איפה שליחת המייל?

אם זה עבד לפני כן והשינוי היחיד שעשית היה בהתאם למה שרשמתי (+מחיקת התנאי), אין שום סיבה שזה לא יעבוד עכשיו.
תשווה את זה למה שהיה לפני כן ותבדוק מה הבעיה.

השוותי, וזה אכן הדבר היחיד שהשתנה רק הורדת התנאי. והקובץ PHP לא מגיב לאחר הורדת התנאי.

זה קובץ השרת לאחר התיקון שאמרת לי:

קוד:

<?php
if(isset($_POST['email'])) {
   
    $email_to = "webadminfaceil@gmail.com";
    $email_subject = "יצירת קשר מהאתר";
   
   
    function died($error) {
        echo "הטופס לא נשלח עקב שגיאות, אנא חזור אחורה ותבדוק שנית ";
        echo ":השגיאות הבאות התרחשו במהלך השליחה<br /><br />";
        echo $error."<br /><br />";
        echo "אנא חזרו אחורה ותקנו את השגיאות לפני השליחה<br /><br />";
        die();
    }
   
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('הטופס לא נשלח עקב שגיאות, אנא חזור אחורה ותבדוק שנית.');     
    }
   
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = 'tylerweb@gmail.com'; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
   
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'כתובת המייל שהכנסת אינה אפשרית.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'התרחשה שגיאה במהלך שליחת הטופס שלך.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "\n\n";
   
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
   
    $email_message .= ".".clean_string($comments)."\n";
   
   
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>
 
 
המייל נשלח בהצלחה! אנחנו נחזור אליך בהקדם
 
<?php
}
?>

זה הקובץ המקורי:

קוד:

<?php
if(isset($_POST['email'])) {
   
   
    $email_to = "webadminfaceil@gmail.com";
    $email_subject = "יצירת קשר מהאתר";
   
   
    function died($error) {
        echo "הטופס לא נשלח עקב שגיאות, אנא חזור אחורה ותבדוק שנית ";
        echo ":השגיאות הבאות התרחשו במהלך השליחה<br /><br />";
        echo $error."<br /><br />";
        echo "אנא חזרו אחורה ותקנו את השגיאות לפני השליחה<br /><br />";
        die();
    }
   
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('הטופס לא נשלח עקב שגיאות, אנא חזור אחורה ותבדוק שנית.');     
    }
   
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
   
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'כתובת המייל שהכנסת אינה אפשרית.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'התרחשה שגיאה במהלך שליחת הטופס שלך.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.\n\n";
   
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
   
    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";
   
   

$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>
 
 
המייל נשלח בהצלחה! אנחנו נחזור אליך בהקדם
 
<?php
}
?>

לא נגעתי בשום דבר חוץ מזה..
הפונקציה die באה כמובן לתאר במקרה ויש שגיאות בשליחה..

אדיר 10-08-13 19:57

הבעיה בשורה מס' 2.


כל הזמנים הם GMT +2. הזמן כעת הוא 14:33.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ