Проблем - Notice: Undefined index:

Статус
Not open for further replies.

kesh

Registered
Здравейте,
Имам следният проблем:
Сложил съм си една смс система за разплащане (ЦС Сайт) , хоста е на моя компютър ,но когато вляза в меню примерно "СМС Админ" ми излизат следните грешки:
Notice: Undefined index: smscode in C:\xampp\htdocs\show\modules\smsadmin.php on line 27

Notice: Undefined index: nick in C:\xampp\htdocs\show\modules\smsadmin.php on line 28

Notice: Undefined index: password in C:\xampp\htdocs\show\modules\smsadmin.php on line 29

Notice: Undefined index: server in C:\xampp\htdocs\show\modules\smsadmin.php on line 30

Notice: Undefined index: action in C:\xampp\htdocs\show\modules\smsadmin.php on line 31

Тези редова са:

Код:
$smscode = $_REQUEST["smscode"];
$nick = $_REQUEST["nick"];
$password = $_REQUEST["password"];
$server = $_REQUEST["server"];
$action = $_REQUEST["action"];

Първоначално си помислих ,че е от самата система, но намерих друга и проблема е пак същия. Мисля, че всичко идва от хоста, но не съм сигурен. Ползвам xampp-win32-1.7.4-VC6-installer.
Ето и целия код на самия скрипт:
http://pastebin.com/yxhJBbY5

Системата има няколко скрипта за разплащне (сайт реклама, смс админ и т.н.) и в всичките проблема е един и същ.

Надявам се да има решение на проблема. Дори ако някой иска може да погледне тук Линк
 
Тея променливи трябва да ги сложиш след if(isset($_POST['ok']));

и няма да ти излиза тва.

Проблема е там че си сложил да ги взема преди да е натиснат бутона изпрати а трябва да е, когато е натиснат бутона изпрати то да им присвоява стойностите :)

в твоя случай така

PHP:
	if(isset($_POST['ok'])){

$smscode = $_REQUEST["smscode"];
$nick = $_REQUEST["nick"];
$password = $_REQUEST["password"];
$server = $_REQUEST["server"];
$action = $_REQUEST["action"];

if($smscode) {
	if(mobio_checkcode($servID, $smscode)) {
		$admin_email = $admins[$server];
		if($admin_email) {
			$message = "	Action: <b>$action</b><br/>
					Nick: <b>$nick</b><br/>
					Password: <b>$password</b><br/>
					Server: <b>$server</b><br/>
					SMS Code: <b>$smscode</b><br/>";
			
			mail($admin_email, "New CS {$action} request", $message, "From: Админ система");
			echo '<b>Заявката е изпратема успешно.Услугата ще се активира най-късно до 24 часа.</b>';
		}
	}
}
}
 
Получи се. Обаче май има остатъчен проблем, защото когато въведа Ник, Парола , сървър и смс код и натисна Изпрати получавам това:

Код:
Notice: Undefined index: mail in C:\xampp\htdocs\e107\sms\smsadmin1.php on line 110

А този ред е от същия скрипт ,който съм показал

Ред 107 :
Код:
$mail = $_REQUEST["mail"];
.

Някакви настройки от хоста трябва ли да се правят за изпращане на имейл? Защото мисля ,че е от това.
 
Код:
if(isset($_POST['ok'])){

$smscode = $_REQUEST["smscode"];
$nick = $_REQUEST["nick"];
$password = $_REQUEST["password"];
$mail = $_REQUEST["mail"];
$server = $_REQUEST["server"];

Ето и демо : Линнк
Никнейм, сървър, парола по избор а за код ползвайте WYSR49
(Дори не получавам имейл ,че е изпратена заявка)

То си е до тези променливи. Предполагам ,че самия хамп трябва да се нагласи, но няма и ни най малка идея как става нагласата да може да се праща мейл чрез хамп. Досега съм ползвал платени хостинг услуги и всичко е било наред ,но реших да хоствам от моето и сега има проблеми.
 
Прочети: http://php.net/manual/bg/function.isset.php

Успех :)

PHP:
if(isSet($_POST['ok'])){

if(isSet($_REQUEST["smscode"])) {
	$smscode = $_REQUEST["smscode"];
} else {
	$smscode = "";
}
if(isSet($_REQUEST["nick"])) {
	$nick = $_REQUEST["nick"];
} else {
	$nick = "";
}
if(isSet($_REQUEST["password"])) {
	$password = $_REQUEST["password"];
} else {
	$password = "";
}
if(isSet($_REQUEST["server"])) {
	$server = $_REQUEST["server"];
} else {
	$server = "";
}
if(isSet($_REQUEST["action"])) {
	$action = $_REQUEST["action"];
} else {
	$action = "";
}

if($smscode) {
        if(mobio_checkcode($servID, $smscode)) {
                $admin_email = $admins[$server];
                if($admin_email) {
                        $message = "    Action: <b>$action</b><br/>
                                        Nick: <b>$nick</b><br/>
                                        Password: <b>$password</b><br/>
                                        Server: <b>$server</b><br/>
                                        SMS Code: <b>$smscode</b><br/>";
                        
                        mail($admin_email, "New CS {$action} request", $message, "From: Админ система");
                        echo '<b>Заявката е изпратема успешно.Услугата ще се активира най-късно до 24 часа.</b>';
                }
        }
}
}


Notice: Undefined index: mail in C:\xampp\htdocs\e107\sms\smsadmin1.php on line 110

Относно това най-вероятно е същата работа. Дай си 110 ред от кода.

Послепис: Мисля, че xampp по подразбиране не му е инсталиран Mail сървъра и заради това може да не ти изпраща съобщението. (мейла)
 
Стана и без да слагам iSset на всяка променлива, само на мейл сложих и се оправи. Благодаря най-вече на Жорко тъй като той повече ми помогна :).
 
Ако не е попълнено някое поле възможно е пак да ти вади грешки, но това.. така между другото. :)
 
Ticketa каза:
Прочети: http://php.net/manual/bg/function.isset.php

Успех :)

PHP:
if(isSet($_POST['ok'])){

if(isSet($_REQUEST["smscode"])) {
	$smscode = $_REQUEST["smscode"];
} else {
	$smscode = "";
}
if(isSet($_REQUEST["nick"])) {
	$nick = $_REQUEST["nick"];
} else {
	$nick = "";
}
if(isSet($_REQUEST["password"])) {
	$password = $_REQUEST["password"];
} else {
	$password = "";
}
if(isSet($_REQUEST["server"])) {
	$server = $_REQUEST["server"];
} else {
	$server = "";
}
if(isSet($_REQUEST["action"])) {
	$action = $_REQUEST["action"];
} else {
	$action = "";
}

if($smscode) {
        if(mobio_checkcode($servID, $smscode)) {
                $admin_email = $admins[$server];
                if($admin_email) {
                        $message = "    Action: <b>$action</b><br/>
                                        Nick: <b>$nick</b><br/>
                                        Password: <b>$password</b><br/>
                                        Server: <b>$server</b><br/>
                                        SMS Code: <b>$smscode</b><br/>";
                        
                        mail($admin_email, "New CS {$action} request", $message, "From: Админ система");
                        echo '<b>Заявката е изпратема успешно.Услугата ще се активира най-късно до 24 часа.</b>';
                }
        }
}
}


Notice: Undefined index: mail in C:\xampp\htdocs\e107\sms\smsadmin1.php on line 110

Относно това най-вероятно е същата работа. Дай си 110 ред от кода.

Послепис: Мисля, че xampp по подразбиране не му е инсталиран Mail сървъра и заради това може да не ти изпраща съобщението. (мейла)

А ти прочети как да не се пише спагети код. Уби рибата с тези проверки, честно...
 
@TryMe, варианти колкото щеш, но заяжданията ти почват сериозно да дразнят. Т'ва не е първата тема, в която се заяждаш или греша? В случай, че искаш да ти дам други твой заяждащи мнения - забрави. Няма да си губя времето в търсене на твой мнения.

И тъй като ми стана интересно за спагетите , дай пример тогава на по-неуките от теб за макарон код?

Примери, за които се сещам:

$pole1= $_POST['pole1'];
$pole2= $_POST['pole2'];

if (isset($pole1) && isset($pole2)) {
echo"OK";
}

if (isset($_POST['pole1']) && isset($_POST['pole2'])) {
echo"OK";
}

if(isset($_POST['pole1'], $_POST['pole2'])) {
echo "OK";
}

Даже, по спомен имам че може да се ползва array за _POST метода т.е.

input name="data[user]" ...
input name="data[pass]" ...

Мисля, че после с foreach се вади конкретния ключ - но тук вече предполагам.

Та, така. Тъй като сме неуки дай ни примери.
 
Не се заяждам - казвам :) Това, че ти се дразниш, защото нещо кода ти не бива и някой ти го казва, не е мой проблем.
Но да редя if-else като обезумял, за да проверя всяко поле поотделно - друг път. То по-добре да ползвам тернарен(третичен) оператор, че да си спестя редовете.
 
TryMe e блокиран.
Това му е втората подобна забележка.
Той не се опитва да помага на другите, а влиза тук само за да се прави на интересен.
Не обръщайте внимание на такива.
Блокирал съм стотици и с радост ще продължавам.

Благодаря, че докладвахте темата.
 
Статус
Not open for further replies.

Back
Горе