Здравствуйте, дело обстоит в том что делаю дипломную работу интернет магазина, и есть два файла, страница вывода товаров head.php и страница куда переходить через GET параметр на определенный товар. Сессия запускается на странице head.php тойсть вот на этой. Вот код. Код (Text): <html> <head> <link rel="stylesheet" href="styles.css" media="all"> </head> <body> <?php require_once ('menu.php'); require_once ('db.php'); session_start(); $_SESSION['auth'] = true; if (!empty($_SESSION['login'])) { echo 'Привет, '.$_SESSION['login']; } else { echo "Привет Гость"; } function get_post () { global $link; $sql = "SELECT * FROM head ORDER BY `id` DESC"; $result = mysqli_query($link, $sql); $posts = mysqli_fetch_all($result, MYSQLI_ASSOC); return $posts; } $posts = get_post(); foreach ($posts as $post): ?> <div class="korobka"> <div class = "title"> <h4><a class = "zag" href="./post.php?post_id=<?=$post["id"]?>"><?=$post["title"]?></a></h4> </div> <br><br> <div class = "photo"> <?php if (!empty ($post['image'])) { $image = $post['image']; echo "<p><img class = 'img' src=\"./image/$image.jpg\"></p>"; } ?> </div> <?=mb_substr($post["text"], 0, 220). '...'?> <div class = "cena"> <?=$post["cena"].'рублей'?> </div> <div> <a href="./post.php?post_id=<?=$post["id"]?>" class="button28"> Читать полностью</a> </div> </div> <?php endforeach ?> </body> </html> Но при переходе на страницу товара запустить не удается. А точнее на post.php Вот выдает такую ошибку. Мне кажется что на это влияет гет параметр который присваивается данной странице, но могу и ошибаться. Код (Text): <html> <head> </head> <body> <?php require_once ('db.php'); require_once ('menu.php'); require_once ('galerea.html'); session_start(); $_SESSION['auth'] = true; $post_id = $_GET["post_id"]; function get_post($post_id) { global $link; $sql = "SELECT * FROM `head` WHERE id = " . $post_id; $result = mysqli_query($link, $sql) or die(mysqli_error($link)); $post = mysqli_fetch_assoc($result); return $post; } ?> <?php $post = get_post($post_id); ?> <h4><?=$post["title"];?></h4> <!--<?php if (!empty ($post['image'])) { $image = $post['image']; echo "<p><img src=\"./image/$image.jpg\" width='750' height='750'></p>"; } ?>--> <div class="wrapper"> <div class="slider"> <ul> <li><img src="image/<?=$image?>.jpg" alt="" /></li> <li><img src="i/2.jpg" alt="" /></li> <li><img src="i/3.jpg" alt="" /></li> <li><img src="i/4.jpg" alt="" /></li> </ul> </div> </div> <br>Цена<?=$post["cena"].'рублей'?> <br> <form action='' method='Post'> <select name="kup"> <option>Выберите из списка</option> <option value="1" >head</option> </select> <input type='submit' value='Купить'> </form> <br> <?=$post["text"];?> <?php if ( !empty($_REQUEST['kup'])){ echo "Купим, купим не бойся"; $nametovar = $post["title"]; $query = 'INSERT INTO karzinka SET nametovar="'.$nametovar.'"'; mysqli_query($link, $query); //ответ базы запишем в переменную $result } ?> </body> </html> Помогите разобраться почему не запускается моя сессия на странице с гет параметром и как мне это сделать... Буду очень благодарен... заранее огромное спасибо. Вот ошибка которую выдает: Warning: session_start(): Cannot start session when headers already sent in C:\xampp\htdocs\tetst\post.php on line 10
Сессию нужно стартовать до начала вывода. С БД тоже крайне желательно работать до начала вывода. --- Добавлено --- Про SQL-инъекции почитайте.
Елки, алки из за ээтого? Спасибо огромное просто переместил наерх и все заработало, спасибо вам огромное, проблема решенна... вы меня выручили... вот такая оплошность кога не знал, а про SQL инъекции обязательно прочту с утречка
Еще наличие $_SESSION['login'] само по себе может свидетельствовать о факте авторизации. Нет нужды использовать отдельную переменную. --- Добавлено --- Спокойной ночи.