@vovaburyii

Как должен выглядеть код?

Код сначало прубликует запись в базу а потом уже проверяет как исправить? Подскажите пожалуйста!
Код:
<?php
//Если переменная Name передана

$url = $_POST['url'];
$img = $_POST['img'];
$title = $_POST['title'];
$day = $_POST['day'];
$money = $day*5;

if (isset($_POST["url"])) {
    //Вставляем данные, подставляя их в запрос
    $sql = mysql_query("INSERT INTO banner (url,img,title,day,active,money,add_time) VALUES('$url','$img','$title','$day','0',$money,".time().")");
	$row = mysql_fetch_array(mysql_query("SELECT * FROM banner WHERE url = '$url'"));
    //Если вставка прошла успешно
    
	if ($day < 1) {
		echo "Укажите от 1 до 30 дней!";
	}elseif ($day > 30){
			echo "Укажите от 1 до 30 дней!";
		}elseif ($sql) {
			
			$id = $row['id'];
			$day = $row['day'];
			
			echo "Заявка успешно отправлена. 
			<br>Оплатите <b>$money</b> рублей на кошелёк WebMoney: R353300597111
			<br>В примечании укажите: <input type='text' size='30' readonly='' value='Banner #$id'>";
			
		}	
}
?>
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rou1997
@Rou1997
Примерно так. Не пробовал, не вникал, лишь для логики в целом:

<?php
//Если переменная Name передана

$url = $_POST['url'];
$img = $_POST['img'];
$title = $_POST['title'];
$day = $_POST['day'];
$money = $day*5;

if (isset($_POST["url"])) {
  if ($day < 1) {
    echo "Укажите от 1 до 30 дней!";
  }elseif ($day > 30){
      echo "Укажите от 1 до 30 дней!";
    }elseif ($sql) {
      
    //Вставляем данные, подставляя их в запрос
    $sql = mysql_query("INSERT INTO banner (url,img,title,day,active,money,add_time) VALUES('$url','$img','$title','$day','0',$money,".time().")");
  $row = mysql_fetch_array(mysql_query("SELECT * FROM banner WHERE url = '$url'"));
    //Если вставка прошла успешно
    
      $id = $row['id'];
      $day = $row['day'];
      
      echo "Заявка успешно отправлена. 
      <br>Оплатите <b>$money</b> рублей на кошелёк WebMoney: R353300597111
      <br>В примечании укажите: <input type='text' size='30' readonly='' value='Banner #$id'>";
      
    }	
}
?>
Ответ написан
Decadal
@Decadal
Учитывая постановку вопроса... Раз вы работаете с финансовыми данными, текст программы должен выглядеть вообще не так. Нужно использовать хоть какое-то экранирование sql запроса(PDO хотя бы). Просто имейте в виду, что этот текст небезопасен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы