Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Parse error 
V
    Опции темы
SergV
Дата 3.12.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Привет! Тут проблема такая вылезла - Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ... строка 25
Код

<?php
$from="Сообщение с сайта %sitename%";
$mailto="[email protected]";

if($_POST['do']!='') { 
    if(checkmail($_POST['mail'])!== -1) { 
            
            # PERSONLICHE ANGABEN
            $mail_text ="<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
                <style>body {FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px; background-color: #003399;}</style></head>
                <body><center><h4>BEWERBUNG</h4>
                <table border=1 cellpadding=8 cellspacing=0 width=600>
                <tr><th><B>PERSONLICHE ANGABEN</B></th></tr>
                <tr><td>$anrede $forname $nachname</td>";
            if ($_POST['gdatum']!='') {$mail_text.='<td>День рождения: '.$_POST['gdatum'].'</d>';}
            if ($_POST['gort']!='') {$mail_text.='<td>Место рождения: '.$_POST['ort'].'</d>';}
            if ($_POST['staatsangeh']!='') {$mail_text.='<td>Гражданство: '.$_POST['staatsangeh'].'</d>';}
            if (($_POST['kinder']!='')&&($_POST['kkinder']!='')) { 
                $mail_text .='<td>Kinder: ';
                if ($_POST['kkinder']=='ja') {
                    $mail_text.='Маленькие дети</d>';
                } else {
                    $mail_text.='Да</td>';
                }
            }  ****** В этой строке ошибка вылазит ******
........................
Дальнейший код
........................
    }
}
?>

Ошибка на последней кавычке, и вообще смещается куда попало, если коментирую или вообще удаляю код. В общем хоть вторая или третья подрят пустая строка, или коментарий, или простой код типа echo 'траляля';
Перепробовал уже вроде всё, и отдельно присваивал переменным $_POST['ххх'], а потом в ифы подставлял, и так, все кавычки и точки с запятыми, ну нет ошибок, не нахожу. 
У меня идёт первый файл с хтмл кодом формы, там из пхп только три строчки
Код

<body>
<?php if($_POST['do'] =='') { ?>
......

<?php } 
require_once("send_email.php"); 
?>

А код выше, просто подключается, хотя даже если и в одном файле, всё равно ошибка тамже. Если файл отключаю, то ошибки нет. 
У меня стоит денвер с PHP5, тут почитал, в одном посте писали типа проблемы с денвером, да только этот код частично из готовой формы, и она работает.
Может кто объяснит, где грабли зарыты?

Это сообщение отредактировал(а) SergV - 4.12.2008, 13:54
PM   Вверх
americanets
Дата 4.12.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



SergV, кавычки закрой до конца и все


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
SergV
Дата 4.12.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Кавычки все до конца закрыты, это я просто код привёл до места ошибки. Я кавычки 100 раз перепроверил, в моём редакторе это просто, так как всё подсвечивает, плюс я каждые вложения в кавычки на табулайт сдвигаю, для лучшего контроля. В общем честно говоря уже и не знаю, где копать, кавычки все, точки с запятыми все, нечего вроде не забыл, а ошибка есть. :(

PM   Вверх
bars80080
Дата 4.12.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



может у тебя наблюдается в этой строчке такой код:

Код

   }
$a = 'sd'; // некий код
elseif(...)

разбитие условия?
PM MAIL WWW   Вверх
SergV
Дата 4.12.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Цитата

может у тебя наблюдается в этой строчке такой код:

Код

$a = 'sd'; // некий код
elseif(...)


разбитие условия? 

Не совсем понял в какой строке? Ну и потом я уже разделял условия, и как уже написал в первом посте, и вообще убирал код, и получал туже ошибку на пустой строке после <?php

Тут даже думал что из за разных кодировок файлов проблема, но даже поменяв кодировки файлов, ошибка не ушла. Если полностью удаляю код, оставляя только пхп кавычки (<?php ?>) и завершение хтмл документа, то ошибка уходит. Если удаляю основной код, но оставляю функции, то ошибка произвольно уходит на функцию, в любую позицию, в зависимости сколько пустых строк имеется перед функциями.

Это сообщение отредактировал(а) SergV - 4.12.2008, 15:07
PM   Вверх
bars80080
Дата 4.12.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



не знаю, выкладывай весь код, т.к. в приведённом фрагменте синтаксических ошибок нет
если конечно закоментировать: 
Код

****** В этой строке ошибка вылазит ******
........................
Дальнейший код
........................


PM MAIL WWW   Вверх
SergV
Дата 4.12.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Окей, вот укороченная форма, оставил 1/10 часть, так как форма слишком большая. От того что укоротил, не чего не изменилось, всё также ошибка, и всё тамже, с той лишь разницей, что после удаления коментов строка 20, но тамже на закрывающей скобке.

стартовый файл index.php
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bewerbungsform</title>
<style type="text/css">
body { background-color: #003399; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;}
b {color: #ffdd88; font-weight: normal;}
i { color: #ffdd88; font-weight: normal; font-size: 10px;}
th { font-size: 16px; }
#sup { font-size: 9px; }
#table {background-color: #3399cc; border: 3px double #fff;color: #fff;}
#table td {border: 1px solid #3399cc;}
</style>
</head>

<body>
<?php if($_POST['do'] =='') { ?>
<form action="" method="post" enctype="multipart/form-data">
<table id="table" align="center" border="0" cellpadding="0" cellspacing="8" width="980px">
    <tr>
        <th colspan="10" valign="bottom" align="center">
            B E W E R B U N G S F O R M
        </th>
    </tr>
    <tr>
        <th colspan="2" align="left" valign="bottom">
            <br />PERSONLICHE ANGABEN
        </th>
        <td align="right" colspan="8" valign="bottom">
            <br /><i>* - Pflichtfelde</i>
        </td>
    </tr>
    <tr>
        <td align="right" width="200">
            Anrede:
        </td>
        <td colspan="2">
            <select name="anrede" style="width: 116px;">
                <option value="no-anrede" selected ></option>
                <option value="frau">Frau</option>
                <option value="her">Herr</option>
            </select>
        </td>
        <td align="right"><b>Vorname<sup id="sup">*</sup>:</b></td>
        <td colspan="3">
            <input name="vorname" size="20" type="text" value="" />
        </td>
        <td align="right" colspan="2"><b>Nachname<sup id="sup">*</sup>:</b></td>
        <td>
            <input name="nachname" size="20" type="text" value="" />
        </td>
    </tr>
    <tr>
        <td align="right"><b>Geburtsdatum<sup id="sup">*</sup>:</b></td>
        <td colspan="2">
            <input name="gdatum" size="15" type="text" value="" />
        </td>
        <td align="right">Geburtsort:</td>
        <td colspan="3">
            <input name="gort" size="20" type="text" value="" />
        </td>
        <td align="right" colspan="2">Staatsangehorigkeit:</td>
        <td>
            <input name="staatsangeh" size="20" type="text" value="" />
        </td>
    </tr>
    <tr>
        <td align="right">Familienstand:</td>
        <td colspan="2">
            <select name="fstand" style="width: 116px;">
                <option value="no-stand" selected ></option>
                <option value="verheiratet">Verheiratet</option>
                <option value="ledig">Ledig</option>
                <option value="geschieden">Geschieden</option>
                <option value="verwitwet">Verwitwet</option>
                <option value="getrennt">Getrennt lebend</option>
            </select>
        </td>
        <td align="right" width="102">Kinder:</td>
        <td colspan="3">
            <input type="radio" name="kiner" id="k1" /><label for="k1">nein</label> 
            <input type="radio" name="kiner" id="k2" /><label for="k2">ja</label>    
        </td>
        <td align="right" colspan="2">Kleinkinder:</td>
        <td>
            <input type="radio" name="kkiner" id="kk1" /><label for="kk1">nein</label> 
            <input type="radio" name="kkiner" id="kk2" /><label for="kk2">ja</label>    
        </td>
        
    </tr>
    
    
    <tr>
        <th align="left" width="687" colspan="2">
            <br />ANSCHRIFT UND KONTAKT:
        </th>
        <td align="right" colspan="8" valign="bottom">
            <br /><i>* - Pflichtfelde</i>
        </td>
    </tr>
    <tr>
        <td align="right"><b>Strasse, Nr.<sup id="sup">*</sup>:</b></td>
        <td colspan="3">
            <input type="text" maxlength="80" size="40" name="strasse" />
        </td>
        <td align="right" colspan="3"><b>E-Mail<sup id="sup">*</sup>:</b></td>
        <td colspan="3">
            <input type="text" maxlength="80" size="40" name="mail" />
        </td>    
    </tr>
    <tr>
        <td align="right"><b>PLZ, Ort<sup id="sup">*</sup>:</b></td>
        <td colspan="3">
        <input type="text" maxlength="80" size="40" name="plz" />
        </td>
        <td align="right" colspan="3">Telefon:</td>
        <td colspan="3">
            <input type="text" maxlength="80" size="40" name="telefon" />
        </td>    
        
    </tr>
    <tr>
        <td align="right" colspan="10">
            <br /><input name="do" type="submit"  value="Abschicken" />
            <input name="reset" type="reset"  value="Angaben entfernen" />
        </td>
    </tr>
</table>
</form>
<?php }

require_once("send_email.php"); ?>


Подключаемый файл непосредственной отправки send_email.php
Код

<?php
$from="Сообщение с сайта %sitename%";
$mailto="[email protected]";

if($_POST['do']!='') { 
    if(checkmail($_POST['mail'])!== -1) { 
    
            $mail_text ="<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
                <style>body {FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px; background-color: #003399;}</style>
                </head><body><center><h4>BEWERBUNG</h4><table border=1 cellpadding=8 cellspacing=0 width=600>
                <tr><th><B>PERSONLICHE ANGABEN</B></th></tr><tr><td>$anrede $forname $nachname</td>";
            if ($_POST['gdatum']!='') {$mail_text.='<td>Geburtsdatum: '.$_POST['gdatum'].'</d>';}
            if ($_POST['gort']!='') {$mail_text.='<td>Geburtsort: '.$_POST['ort'].'</d>';}
            if ($_POST['staatsangeh']!='') {$mail_text.='<td>Staatsangehorigkeit: '.$_POST['staatsangeh'].'</d>';}
            if (($_POST['kinder']!='')&&($_POST['kkinder']!='')) { 
                $mail_text .='<td>Kinder: ';
                if ($_POST['kkinder']=='ja') {$mail_text.='Kleinkinder</d>';} else {$mail_text.='Ja</td>';}
            }
    
            $mail_text .="</tr><tr><th>ANSCHRIFT UND KONTAKT</th></tr><tr><td>Strasse: $_POST['strasse']</td>
                </tr><tr><td>PLZ, Ort: $_POST['plz']</td></tr><tr><td>E-Mail: $_POST['mail']</td></tr>";
            if ($_POST['plz']!='') $mail_text .="<tr><td>Telefon: $_POST['telefon']</td></tr>";
            $mail_text .="</table></body></html>";
            
            if(($_POST['vorname']!='')&&($_POST['nachname']!='')&&($_POST['gdatum']!='')) {
                $vorname=$_POST['vorname'];
                $nachname=$_POST['nachname'];
                $gdatum=$_POST['gdatum'];
            } else echo '<div style="color: #fff;">Feller: Vorname, Nachname oder Geburtsdatum fehlen<br/><a href="index.php" style="color: #fff;">Rückwärts</a></div>';
            if(($_POST['strasse']!='')&&($_POST['mail']!='')&&($_POST['plz']!='')) {
                $strasse=$_POST['strasse'];
                $mail=$_POST['mail'];
                $plz=$_POST['plz'];
                $telefon=$_POST['telefon'];
            }
        if(send_mail($from,$mailto,'Bewerbung',$mail_text)!== FALSE) {
            echo '<p>Сообщение отправлено<br/><a href="index.php">назад</a></p>';
        } else {echo 'Отправка сообщения невозможна: повторите позднее<br/><a href="index.php">назад</a></p>';}
    }
}

function checkmail($mail) {
   $mail=trim($mail);
   if (strlen($mail)==0) return -1;
   if (!preg_match("/^[a-z0-9_-]{1,20}+(\.){0,2}+([a-z0-9_-]){0,20}@(([a-z0-9-]+\.)+(com|net|org|mil|".
   "edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/is",$mail)) return -1;
   return $mail;
}

function send_mail($from,$to,'Bewerbung',$text) {
    $head      = "From: $from\n";
    $head     .= "To: $to\n";
    $head     .= "Subject: $subj\n";
    $head     .= "X-Mailer: Freshcoder.ru\n";
    $head     .= "Reply-To: $from\n";
    $head     .= "Mime-Version: 1.0\n";
    $head     .= 'Content-type: text/html; charset=utf-8';
return @mail($to,'Bewerbung',$text,$head);
}

if ($_SERVER['QUERY_STRING']=="thanks") {
  echo "Спасибо большое!";
  exit;
}


?>
</body>
</html>


За основу взят гдето найденный код емайл  формы, который без проблем работает в небольших формах. А тут от начала ошибка, и всё.

Это сообщение отредактировал(а) SergV - 4.12.2008, 17:12
PM   Вверх
bars80080
Дата 4.12.2008, 17:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



ну вот, ошибка найдена. а так долго она не находилась потому, что ты запостил не тот кусок в котором встречается эта ошибка.
на будущее советую проверять, что ты постишь

ошибку дают эти переменные $_POST['telefon'] , потому как ты пишешь их внутри конструкции 
Код

echo "text $_POST['telefon'] text";

в данном варианте, это ошибка, надо так 
Код

echo "text $_POST[telefon] text";


однако, я бы посоветовал вообще не пользоваться двойными кавычками, так как они постоянно вместе с невнимательностью (естественный бич кодеров) порождают подобные неувязки. написал бы так 
Код

echo 'text '.$_POST['telefon'].' text';
 проблем не было бы

Добавлено через 2 минуты и 47 секунд
ещё здесь ошибка 

Код

function send_mail($from,$to,'Bewerbung',$text) {

в аргументах указываются переменные 

Код

function send_mail($from,$to,$subj = 'Bewerbung',$text) {

PM MAIL WWW   Вверх
SergV
Дата 4.12.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Цитата

однако, я бы посоветовал вообще не пользоваться двойными кавычками, так как они постоянно вместе с невнимательностью (естественный бич кодеров) порождают подобные неувязки. написал бы так 


Спасибо, точно ошибка в этом была. Честно сказать это единственное что пропустил,  так как я всегда так и делаю, не с двойными кавычками и разделяю точками, это просто оставил тут это так, как в той готовой форме. Вот только не пойму, почему в той форме это работает. 

-------------------------------------------------
Сразу не заметил добавление, по функции, теперь ошибки больше нет, спасибо.

Это сообщение отредактировал(а) SergV - 4.12.2008, 18:12
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1047 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.