POST заявката не се изпълнява

jaffy

Registered
Реално и аз не знам какво се получава... погледнете кода първо и после резултата от заявката който съм написал на края на поста

functions.php
function addNews()
{
echo '
<form action="index.php?admin=queryadd">
<table width="20%" align="center">
<tr><td>Subject:</td></tr>
<tr><td><input type="text" name="subject" size="30" /></td></tr>
<tr><td>Text:</td></tr>
<tr><td><textarea rows="10" cols="35" name="message"></textarea></td></tr>
<tr><td><input type="submit" value="Submit"></td></tr>
</form>
';

}


function queryAdd()
{
require "../inc/mysql.php";
l2jneo();
if (isset($_POST['submit']) && !empty($_POST['subject']) && !empty($_POST['article'])) {
$subject = htmlspecialchars(addslashes("$_POST[subject]"));
$message = htmlspecialchars(addslashes("$_POST[text]"));
$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".message."')");
echo "You have posted ".$title." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}
else
{
print ("You haven't entered Subject or Text to post.");
}
}

index.php
<title>Admin Panel</title>
<?php
require "functions.php";
?>
<hr/><center>. <a href="index.php?admin=addnews">Add News</a> .<hr/>
<?
if($_GET['admin']==null) welcome();
if($_GET['admin']==addnews) addNews();
if($_GET['admin']==queryadd) queryAdd();
?>
Резултата от POST заявката е следната:
Адреса в бара се променя по следния начин
http://site.com/index.php?subject=das&article=das

Това се получава ако за текст и заглавие съм написал das... въобще не зацепих как и защо камули от къде се получава.. от 1 час преглеждам постоянно кода отново и отново и нищо грешно не виждам.

+1
 
jaffy каза:
index.php
<title>Admin Panel</title>
<?php
require "functions.php";
?>
<hr/><center>. <a href="index.php?admin=addnews">Add News</a> .<hr/>
<?
if($_GET['admin']==null) welcome();
if($_GET['admin']=='addnews') addNews();
if($_GET['admin']=='queryadd') queryAdd();
?>
Резултата от POST заявката е следната:
Адреса в бара се променя по следния начин
http://site.com/index.php?subject=das&article=das

Това се получава ако за текст и заглавие съм написал das... въобще не зацепих как и защо камули от къде се получава.. от 1 час преглеждам постоянно кода отново и отново и нищо грешно не виждам.

+1
:?:
 
functions.php
function queryAdd()
{
require "../inc/mysql.php";
l2jneo();
if (isset($_POST['submit']) && !empty($_POST['subject']) && !empty($_POST['article'])) {
$subject = htmlspecialchars(addslashes("$_POST[subject]"));
$message = htmlspecialchars(addslashes("$_POST[text]"));
$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".$message."')") or die(mysql_error());
echo "You have posted ".$title." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}
else
{
print ("You haven't entered Subject or Text to post.");
}
}
He знаех, че можело и без тях o_O :shock:
Edit: Ти сигурен ли си? Да не ме объркаш нещо :lol:
 
Хмм виж тук не бях оправил променливата но mysql error не оправя нищо тъй като оператора (нали or е оператор?) само връща ерор ако има грешка в заявката а такава няма защото съм сигурен ,че тя работи.. инак да сигурен съм, едната част на системата работи по тоя начин в смисъл ,че не слагам втори път кавички в гет метода. Все пак проблема си остава.. пусни го тоя скрипт на тест сървър и ще видиш какво имам в предвид. ;) Много е странно цялото това.. не бях виждал подобно нещо до сега.. всякаш си правя собствена SQL инжекция.. на такова ми мяза.
 
Винаги си мисля ,че нищо не съм изпуснал... :D извинявам се.. добавих формата в първия пост.

Edit: koko5 ще го променя на message
 
:!: :!:

Ти ме закопа... сега става обаче проблема е друг.. не вкарва заявката..

Сега само тук е проблема:
function queryAdd(){
require "../inc/mysql.php";
if (isset($_POST['submit']) && !empty($_POST['subject']) && !empty($_POST['message'])) {
$subject = htmlspecialchars(addslashes("$_POST[subject]"));
$message = htmlspecialchars(addslashes("$_POST[message]"));
$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".$message."')");
echo "You have posted ".$title." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}}

Уж всичко изглежда наред .. поне за мен.. пък проблема може да ми е горе при проверката дали е празно полето.. или проверката за htmlspecialchars или addslashes
 
При викането на самата фукнция , подавай и ПОСТ стойностите във фукнцията , фактически нещо
if (!empty($_POST['subject']) && !empty($_POST['message'])) { queryAdd(htmlspecialchars(addslashes($_POST['subject'])),htmlspecialchars(addslashes($_POST['message'])));
П.П. Пиша го направо , и може и да имам някоя и друга правописна грешка , но дано схванеш замисъла ми.Предполагам оттам идва проблема ти.
 
Replace пробвах по следните два начина:

1ви начин:
function queryAdd()
{
require "../inc/mysql.php";
l2jneo();
if (isset($_POST['submit'])){
if (!empty($_POST['subject']) && !empty($_POST['message'])) { queryAdd(htmlspecialchars(addslashes($_POST['subject'])),htmlspecialchars(addslashes($_POST['message'])));
$subject = htmlspecialchars(addslashes("$_POST[subject]"));
$message = htmlspecialchars(addslashes("$_POST[message]"));
$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".$message."')");
echo "You have posted ".$subject." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}}}

2ри начин:
function queryAdd()
{
require "../inc/mysql.php";
l2jneo();
if (isset($_POST['submit'])){
$subject = $_POST[subject];
$message = $_POST[message];
$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".$message."')");
echo "You have posted ".$subject." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}}

И в двата не се получава... не мога да предположа защо..
 
Само ,че моята идея беше малко по-друга.
Аз ти предлагам при самото извикване на фукнцията , да подаваш параметри

queryAdd('Параметър1','Параметър2');
, а естествено ще си направиш проверка дали са празни полетата и т.н. преди извикването на фукнцията.
 
Добре сега го направих като параметри, обаче все още не продължава заявката от поста сега е така (не дава никакви ерори никъде)

Извикване:
if($_GET['admin']=='queryadd')
queryAdd(htmlspecialchars(addslashes($_POST['subject'])),htmlspecialchars(addslashes($_POST['message'])));

Функции:
function queryAdd()
{
require "../inc/mysql.php";
l2jneo();
if (isset($_POST['submit'])){
if (!empty($_POST['subject']) && !empty($_POST['message']))
{
die ("You have missed up a field");
}
else
{
$subject = $_POST[subject];
$message = $_POST[message];
$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".$message."')");
echo "You have posted ".$subject." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}
}
}
 
Код:
require "../inc/mysql.php";

function queryAdd($p1='default_value1',$p2='default_value2'){
......................................................
:?:
 
Еее не.. това PHP си прави гавра с мен.. koko5 според това което си написал се получава ерор а като заменя твоето със:
function queryAdd(){

Си остава същия проблем.. хора сигурни ли сте ,че $_POST функцията е правилно написана? :? Оттегчавам се вече от това PHP както сигурно вече и вие от мен..
 
Прави си , защото не схващаш идеята :)
function queryAdd($subject,$message)
{
require "../inc/mysql.php";
l2jneo();
if (isset($_POST['submit'])){
if (!empty($_POST['subject']) && !empty($_POST['message']))
{
die ("You have missed up a field");
}
else
{
$subject = $_POST[subject];
$message = $_POST[message];

$query = mysql_query("INSERT INTO `news` (`title`,`text`) VALUES ('".$subject."','".$message."')");
echo "You have posted ".$subject." successfuly! <a href='index.php?admin=addnews'>Get Back</a>";
mysql_close();
}
}
}
Ето , това в зеленото не ти трябва, параметрите са си във фукнцията - ползвай тях.
 
Е най на края... Благодаря..!! Искам на всички да раздам +чета , на всички да благодаря ,но мога само второто да направя, тъй като основите ми ги даде Replace, и благодаря и на koko5. :)
 

Горе