Gå til innhold

news-script trøbbel: forvirra og noe frustrert


Anbefalte innlegg

Trenger litt hjelp med et nyhetsredigerings-script.

Fikk til et fungerende script som legger inn nyheter, men får ikke til redigerings-scriptet helt sånn som jeg vil.

 

Meninga er at det først skal sjekke om man er logget inn, og om man har skrevet nyheten selv, eller er administrator. Det står vel egentlig litt feil sånn det er nå (har forandret mye, og har nesten mistet oversiktet selv her...), så jeg lurer på hvorfor man ikke blir logget ut? $user_id er ikke satt, og likevel blir det true i if'en...

 

Så skal scriptet hente nyheten fra databasen og legge det inn i textfield og textarea. Da kan man redigere og legge inn i databasen igjen. Den delen funker, men jeg får ikke helt til det med sessions her. Om jeg fjerner det som står i tittel, og klikker Update, kommer teksten tilbake igjen...

Sikkert en enkel løsning, men er bare helt på jordet her nå :no:

 

Okay, her er koden. Kom gjerne med innspill til hvordan den bør forandres :)

<?php
if($_SESSION['loggedin'] == "true" && ((usercheck() && $_SESSION['user_id'] == $user_id) || admincheck()))
{
$news_id = $_GET['id'];

$query = "SELECT * FROM acdc_news WHERE news_id='$news_id'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());

while ($record = mysql_fetch_assoc($result))
{
 $user_id = $record['user_id'];
 $_SESSION['title'] = $record['title'];
 $_SESSION['news'] = $record['news'];
}
//$_SESSION['status'] = "";
//unset($_SESSION['status']);
if(isset($submit))
{
 $user_id = $_SESSION['user_id'];
 $_SESSION['title'] = htmlspecialchars(mysql_escape_string(trim($_POST['title'])));
 $_SESSION['news'] = htmlspecialchars(addslashes(trim($_POST['news'])));
 //$title = $_SESSION['title'];
 //$news = $_SESSION['news'];
 //$_SESSION['status'] = "";
 echo "isset(submit): session title: ".$_SESSION['title']."<br/>";

 if(!empty($_SESSION['title']))
 {
 	//$_SESSION['err_title'] = "";
 	$title = $_SESSION['title'];
 	
 	if(!empty($_SESSION['news']))
 	{
   //$_SESSION['err_news'] = "";
   $news = $_SESSION['news'];
 
   $query = "UPDATE acdc_news SET news_id = '$news_id', updated = NOW(), updated_by = '$user_id',
   	title = '$title', news = '$news' WHERE news_id = '$news_id'";

   $result = mysql_query($query) or die ("Could not execute query.".mysql_error());
 
   if(!empty($result))
   {
   	$_SESSION['status'] = "News item updated.";
   	unset($_SESSION['title']);
   	unset($_SESSION['news']);
   	//session_destroy();
   	//setcookie(session_name() ,"",0,"/");
   	//$_SESSION['title'] = "";
   	//$_SESSION['news'] = "";
   	header("location: index.php?page=news_edit&id=$news_id");
   }
   else
   {
   	//echo "News item could not be inserted to database.";
   	$_SESSION['status'] = "News item could not be updated.";
   	header("location: index.php?page=news_edit&id=$news_id");
   }
 	}
 	else
 	{
   //$_SESSION['status'] = "";
   $_SESSION['err_news'] = "You must enter the news.";
   header("location: index.php?page=news_edit&id=$news_id");
 	}
 }
 else
 {
 	$_SESSION['err_title'] = "You must enter a title for the news item.<br/>";
 	if(empty($news))
 	{
   $_SESSION['err_news'] = "You must enter the news.";
 	}
 	else
 	{
   //$_SESSION['err_news'] = "";
 	}
 	//$_SESSION['status'] = "";
 	header("location: index.php?page=news_edit&id=$news_id");
 }
}
else
{
 echo $_SESSION['err_title'];
 echo $_SESSION['err_news'];
 echo $_SESSION['status'];
?>
 <form name="news_add" method="post" action="index.php?page=news_edit&id=<?php echo $news_id; ?>">
 	<label for="title">Title:
   <span>
   	<input class="textfield" type="text" id="title" name="title" value="<?php echo stripslashes($_SESSION['title']); ?>">
   </span>
 	</label>
 	<label for="news">News:
   <span>
   	<textarea id="news" name="news"><?php echo (stripslashes($_SESSION['news'])); ?></textarea>
   </span>
 	</label>
 	<label><span>
   <input class="button" type="submit" name="submit" value="Update News"/>
   <input class="button" type="reset" name="reset" value="Reset"/>
 	</span></label>
 </form>
<?php
 unset($_SESSION['err_title']);
 unset($_SESSION['err_news']);
 unset($_SESSION['status']);
 unset($_SESSION['title']);
 unset($_SESSION['news']);
}
}
else
{
header("location: index.php");
}
?>

Står utkommentert kode her og der, men lot det bare stå til for nå.

Lenke til kommentar
Videoannonse
Annonse

Ok, eg synest du har ein veldeg overdreven bruk av sessions her...

Mesteparten av koden kunne vært skreven om for å få optimalisert den, slik at du hadde sluppet mange av dei if/else brankettene du bruker. Men mest av alt likte eg ikkje bruken av sessions på siden, mest av alt siden du ikkje trenger bruke sessions. Brukeren skal bare loade den siden så post ville vært meir enn godt nok.

 

Vel det får være nok "kritikk" ;)

 

Grunnen til at du får opp nyhetene om og om igjen uansett om du sletter alt og trykker submit er siden du oppdaterer news/title sessions i starten på siden.

 

Prøv dette, har bare forandret litt i oppstarten, slik at det bare henter ned informasjon fra databasen første gang du åpner siden (i.e. henter ikkje fra databasen etter du har trykket submit og får ein feilmelding).

 

Også, fjernet while setningen på news/tiltle siden den ikkje trengs i det heile tatt. Du henter ut 1 stk nyhet. I.e. kvifor kjøre ein while setning ?

 

<?php
if($_SESSION['loggedin'] == "true" && ((usercheck() && $_SESSION['user_id'] == $user_id) || admincheck()))
{
$news_id = $_GET['id'];

if ($_SESSION['loaded'] != 1) {
$query = "SELECT * FROM acdc_news WHERE news_id='$news_id'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());

$record = mysql_fetch_assoc($result);

$user_id = $record['user_id'];
$_SESSION['title'] = $record['title'];
$_SESSION['news'] = $record['news'];

}

//$_SESSION['status'] = "";
//unset($_SESSION['status']);
if(isset($submit))
{
$_SESSION['loaded'] == 1;
$user_id = $_SESSION['user_id'];
$_SESSION['title'] = htmlspecialchars(mysql_escape_string(trim($_POST['title'])));
$_SESSION['news'] = htmlspecialchars(addslashes(trim($_POST['news'])));
//$title = $_SESSION['title'];
//$news = $_SESSION['news'];
//$_SESSION['status'] = "";
echo "isset(submit): session title: ".$_SESSION['title']."<br/>";

if(!empty($_SESSION['title']))
{
 //$_SESSION['err_title'] = "";
 $title = $_SESSION['title'];
 
 if(!empty($_SESSION['news']))
 {
  //$_SESSION['err_news'] = "";
  $news = $_SESSION['news'];

  $query = "UPDATE acdc_news SET news_id = '$news_id', updated = NOW(), updated_by = '$user_id',
   title = '$title', news = '$news' WHERE news_id = '$news_id'";

  $result = mysql_query($query) or die ("Could not execute query.".mysql_error());

  if(!empty($result))
  {
   $_SESSION['status'] = "News item updated.";
   unset($_SESSION['title']);
   unset($_SESSION['news']);
   //session_destroy();
   //setcookie(session_name() ,"",0,"/");
   //$_SESSION['title'] = "";
   //$_SESSION['news'] = "";
   header("location: index.php?page=news_edit&id=$news_id");
  }
  else
  {
   //echo "News item could not be inserted to database.";
   $_SESSION['status'] = "News item could not be updated.";
   header("location: index.php?page=news_edit&id=$news_id");
  }
 }
 else
 {
  //$_SESSION['status'] = "";
  $_SESSION['err_news'] = "You must enter the news.";
  header("location: index.php?page=news_edit&id=$news_id");
 }
}
else
{
 $_SESSION['err_title'] = "You must enter a title for the news item.<br/>";
 if(empty($news))
 {
  $_SESSION['err_news'] = "You must enter the news.";
 }
 else
 {
  //$_SESSION['err_news'] = "";
 }
 //$_SESSION['status'] = "";
 header("location: index.php?page=news_edit&id=$news_id");
}
}
else
{
echo $_SESSION['err_title'];
echo $_SESSION['err_news'];
echo $_SESSION['status'];
?>
<form name="news_add" method="post" action="index.php?page=news_edit&id=<?php echo $news_id; ?>">
 <label for="title">Title:
  <span>
   <input class="textfield" type="text" id="title" name="title" value="<?php echo stripslashes($_SESSION['title']); ?>">
  </span>
 </label>
 <label for="news">News:
  <span>
   <textarea id="news" name="news"><?php echo (stripslashes($_SESSION['news'])); ?></textarea>
  </span>
 </label>
 <label><span>
  <input class="button" type="submit" name="submit" value="Update News"/>
  <input class="button" type="reset" name="reset" value="Reset"/>
 </span></label>
</form>
<?php
unset($_SESSION['err_title']);
unset($_SESSION['err_news']);
unset($_SESSION['status']);
unset($_SESSION['title']);
unset($_SESSION['news']);
}
}
else
{
header("location: index.php");
}
?>

 

Angående bruker problemet, så kikket eg ikkje noko på det siden du ikkje postet resten av innloggins/bruker filene. Men fra det eg ser så kan det være nokre feil på første linjen, og der du henter info fra databasen.

Lenke til kommentar

Takk for hjelpen. Har nå forandret starten av koden litt...

<?php
$news_id = $_GET['id'];

$query = "SELECT * FROM acdc_news WHERE news_id='$news_id'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());

$record = mysql_fetch_assoc($result);

$user_id = $record['user_id'];
$_SESSION['title'] = $record['title'];
$_SESSION['news'] = $record['news'];
//echo $_SESSION['title'];

if($_SESSION['loggedin'] == "true" && ((usercheck() && $_SESSION['user_id'] == $user_id) || admincheck()))
{
  //$news_id = $_GET['id'];

  //$_SESSION['status'] = "";
  //unset($_SESSION['status']);
  if(isset($submit))
  {
     $user_id = $_SESSION['user_id'];
     $_SESSION['title'] = htmlspecialchars(mysql_escape_string(trim($_POST['title'])));
     $_SESSION['news'] = htmlspecialchars(addslashes(trim($_POST['news'])));
     //$title = $_SESSION['title'];
     //$news = $_SESSION['news'];
     //$_SESSION['status'] = "";

     if(!empty($_SESSION['title']))
     {
        //$_SESSION['err_title'] = "";
        $title = $_SESSION['title'];

        if(!empty($_SESSION['news']))
 	{
           //$_SESSION['err_news'] = "";
           $news = $_SESSION['news'];

           $query = "UPDATE acdc_news SET news_id = '$news_id', updated = NOW(), updated_by = '$user_id', title = '$title', news = '$news' WHERE news_id = '$news_id'";

           $result = mysql_query($query) or die ("Could not execute query.".mysql_error());
 
           if(!empty($result))
           {
              $_SESSION['status'] = "News item updated.";
              unset($_SESSION['title']);
              unset($_SESSION['news']);
              //session_destroy();
              //setcookie(session_name() ,"",0,"/");
              //$_SESSION['title'] = "";
              //$_SESSION['news'] = "";
              header("location: index.php?page=news_edit&id=$news_id");
           }
           else
           {
              //echo "News item could not be inserted to database.";
              $_SESSION['status'] = "News item could not be updated.";
              header("location: index.php?page=news_edit&id=$news_id");
           }
        }
        else
        {
           //$_SESSION['status'] = "";
           $_SESSION['err_news'] = "You must enter the news.";
           header("location: index.php?page=news_edit&id=$news_id");
        }
     }
     else
     {
        $_SESSION['err_title'] = "You must enter a title for the news item.<br/>";
        if(empty($news))
        {
           $_SESSION['err_news'] = "You must enter the news.";
        }
        else
        {
           //$_SESSION['err_news'] = "";
        }
        //$_SESSION['status'] = "";
        header("location: index.php?page=news_edit&id=$news_id");
     }
  }
  else
{
  echo $_SESSION['err_title'];
  echo $_SESSION['err_news'];
  echo $_SESSION['status'];
?>
  <form name="news_add" method="post" action="index.php?page=news_edit&id=<?php echo $news_id; ?>">
     <label for="title">Title:
        <span>
           <input class="textfield" type="text" id="title" name="title" value="<?php echo stripslashes($_SESSION['title']); ?>">
        </span>
     </label>
     <label for="news">News:
        <span>
           <textarea id="news" name="news"><?php echo (stripslashes($_SESSION['news'])); ?></textarea>
        </span>
     </label>
     <label>
        <span>
           <input class="button" type="submit" name="submit" value="Update News"/>
           <input class="button" type="reset" name="reset" value="Reset"/>
        </span>
     </label>
  </form>
<?php
  unset($_SESSION['err_title']);
  unset($_SESSION['err_news']);
  unset($_SESSION['status']);
  unset($_SESSION['title']);
  unset($_SESSION['news']);
  }
}
else
{
  header("location: index.php");
}
?>

Det fungerer fortsatt ikke sånn som det er meninga. Vet det er unødvendig masse bruka sessions, men tenkte å få det mest mulig brukervennlig, med feilmeldinger når man gjør noe feil.

 

Sjekken av om bruker har rettighet til å redigere fungerer ikke likevel. Og det gjør heller ikke session-greia. Først legger jeg verdiene fra databasen til sessionen, men når submit er satt, skal sessionen forandres. Dette fungerer ikke likevel.

Funksjonene usercheck() og admincheck() sjekker om user_level er hhv 1 eller 2.

 

For meg ser scriptet ut som at det bør fungere, men det gjør det ikke. Forstår egentlig ganske lite her nå... :blush:

 

Edit: $_SESSION['user_id'] blir satt når brukeren logger inn. Av en eller annen grunn blir den forandret i starten av scriptet. Jeg setter $user_id fra databasen, jeg rører ikke $_SESSION['user_id']...

 

Edit2: Formaterte koden. Fy f det tok lang tid... Skulle ønske hw.no gjorde noe med kode-funksjonen, den funker ikke helt optimalt...

Endret av Pangaea
Lenke til kommentar

Hvorfor ikke bare slå usercheck og admincheck sammen til èn funksjon, og kalle denne "levelcheck" e.l. ? Det løser ikke nødvendigvis problemet ditt, men rydder litt opp.

 

Dessuten bruker du en indent som gjør at koden er vanskelig å lese.

Endret av magh
Lenke til kommentar
Hvorfor ikke bare slå usercheck og admincheck sammen til èn funksjon, og kalle denne "levelcheck" e.l. ? Det løser ikke nødvendigvis problemet ditt, men rydder litt opp.

 

Dessuten bruker du en indent som gjør at koden er vanskelig å lese.

Fordi jeg bruker de funksjonene til diverse andre ting, så fant ut det var best å dele de opp, spiller ikke så stor rolle da...

 

Alle koder her blir vanskelige å lese fordi <tab> blir omgjort til mellomrom, litt mye stress å legge til flere mellomrom selv, men har gjort det i mindre script.

Lenke til kommentar

Fordi jeg bruker de funksjonene til diverse andre ting, så fant ut det var best å dele de opp, spiller ikke så stor rolle da...

 

Jeg skjønner fortsatt ikke vitsen med to funksjoner for noe som i praksis er det samme.

 

Alle koder her blir vanskelige å lese fordi <tab> blir omgjort til mellomrom, litt mye stress å legge til flere mellomrom selv, men har gjort det i mindre script.

 

Flere ville tatt seg tid til å lese gjennom koden din hvis du selv hadde gjort en innsats for å ordne dette problemet. Slik som koden fremstår nå, er den tung å lese.

Lenke til kommentar

Pangaea:

har du prøvd å forandre:

if(isset($submit))

til

if(isset($_POST['submit']))

?

 

Ellers er koden din veldeg uoversikteleg, prøv og bruk mindre if/else setninger slik som du har gjort. Det gjør koden veldeg uoversikteleg og vanskeleg for andre å lese.

 

Angående bruk av sessions til error meldinger, det eg pleier å gjør er å kjøre ein haug med if setninger som vist det er ein error skriver error melding til $error_msg, deretter sjekker eg igjen etterpå med ein ny if setning om $error_msg er tom. Vist den er tom så kjører eg queryen vist ikkje viser eg opp form'en igjen med ein feilmelding.

Lenke til kommentar

prøvde $_POST['submit'], men til ingen nytte.

Ang. if strukturen. Jeg såg det var noe lignende på den sikkerhets/login artikkel på opera, som var postet her for en stund siden. Så videreutviklet jeg den til å inkludere sessions. Ser litt uoversiktlig ut, men jeg får med alle mulighetene. Ikke så viktig på et sånn skript som dette, men registrerings-skriptet funker bra. Derfor det er så frustrerende å ikke få til dette, siden ganske mye er likt egentlig.

Lenke til kommentar

Pangaea:

Hmm veit ikkje kvifor det ikkje fungerer for deg, fungerer "fint" her når eg setter den til post (har globals skrudd av). Testet det med å sette echo forskjellige plasser i scriptet for å se om du fekk noko output. Vist noko er galt så må det være i user delen din.

 

Legger ved eit script, det er "add user" delen til eit cms som eg laget. Eg vil anbefale deg å lage error sjekkene osv slik som dette, iallefall synest eg det er mye lettere å lese min egen kode med mindre if/else tager som "går over heile siden" og det er iallefall lettere for andre folk.

 

<?php
if(SECURITY != 1){ echo "
//---------------------------------------------------------------	<br>
//Made by: Sven Arild Helleland          <br>
//Firm: Kaizen Web-Productions (http://www.kaizen-web.com)  	<br>
//Date: 1st February 2004          	<br>
//Last Modified: 6th April 2004          <br>
//Copyright(C), Kaizen Web-Productions, 2004, All Rights Reserved.	<br>
//----------------------------------------------------------------	<br>
"; exit;} 

if(!req::session2EQ('login','cpnr0',1)) {
$Errormsg2 = 1;
include("Inc/Error.inc.php");
exit;
}

if (req::post('submit')) {
//We are gathering database information
if(req::post('username')) {
 $username = mysql_escape_string(trim($_POST['username']));
 $userresult = $db->query("SELECT COUNT(*) FROM $userdatabase WHERE userid='$username'");
 //Add other userdatabases under here (user search).
 }
if(req::post('email')) {
 $email = mysql_escape_string(trim($_POST['email']));
 $emailresult = $db->query("SELECT COUNT(*) FROM $userdatabase WHERE email='$email'");
 //Add other userdatabases under here (email search).
 }
 
//Checking if the username field is filled out
if (error::post('username')) {
 $Errormsg = 7;
    }
//Checking if there is a user with that name already
elseif ($db->result($userresult) != 0) {
    $Errormsg = 8;
 }
//Checking if the email field is filled out
elseif (error::post('email')) {
 $Errormsg = 1;
    }
//Checking if the confirm email field is filled out
elseif (error::post('email2')) {
 $Errormsg = 2;
    }
//Checking to see if the emails is identical
elseif (error::postEQ('email','email2')) {
 $Errormsg = 3;
 }
//Checking if the email is set up after regulations
elseif (error::postEmail('email')) {
 $Errormsg = 4;
 }
//Checking if there is a user with that email already
elseif ($db->result($emailresult) != 0) {
    $Errormsg = 5;
 }
//Checking if password fields is filled out
elseif (error::post('randompassword') && error::post('password')) {
 $Errormsg = 9;
    }
//Checking if password2 fields is filled out
elseif (error::post('randompassword') && error::post('password2')) {
 $Errormsg = 10;
    }
//Checking if the passwords is identical
elseif (error::post('randompassword') && error::postEQ('password','password2')) {
 $Errormsg = 6;
 }

if (!empty($Errormsg)) {
include("Cp/Inc/Adduser.inc.php");
}
else {
 if (isset($_POST['randompassword'])) {
 	$password = sprintf('%c%c%c%c%c%c%c%c', mt_rand(97,122), mt_rand(65,90), mt_rand(48,57), mt_rand(97,122), mt_rand(48,57), mt_rand(65,90), mt_rand(97,122), mt_rand(48,57));
 	$passencrypted = md5($password);
 	}
 else {
 	$password = trim($_POST['password']);
 	$passencrypted = md5($password);
 	}

 //We finding out the user allowed functions
 for($nr=0; $nr < $_POST['cpallowedtotal']; $nr++)
 	{
 	if (req::post("cpnr$nr")) $cpnr = 1;
 	else $cpnr = 0;

 	if (!isset($cpallowed)) $cpallowed = $cpnr;
 	else $cpallowed .= "#".$cpnr;

 	}

 $db->query("INSERT INTO $userdatabase SET userid='$username', password='$passencrypted', email='$email', cpallowed='$cpallowed'");

 $Cpadduseremail_text = str_replace("<#username#>",$username,$Cpadduseremail_text);
 $Cpadduseremail_text = str_replace("<#password#>",$password,$Cpadduseremail_text);

 mail($_POST['email'], $Cpadduseremail_subject, $Cpadduseremail_text, "From: ".$Global_email."\r\nBounce-to: ".$_POST['email']);
 
 $Successmsg = "CpAddUser";
 include("Inc/Success.inc.php");

 echo "<meta http-equiv=\"refresh\" content=\"$Global_refreshtime; URL=index.php?id=Adduser&menu=Cp\">";
 }
}
else {
include("Cp/Inc/Adduser.inc.php");
}
?>

Lenke til kommentar

Sikkert god kode det der, ser ut som du har peiling så det holder vertfall ;)

Jeg forstod ikke så kjempemye av den koden der, hva betyr fx "(error::post('email'))". Har ikke sett sånn syntaks før...

 

La inn ny mysql/php/apache pakke for bare noen dager siden, og den hadde tydeligvis globals skrudd av, det var grunnen til at sjekken i starten av koden min ikke fungerte. Tror nesten jeg skraper mesteparten av koden og begynner på nytt, kom ingen veg i natt...

 

Takk for hjelpen, håper jeg snart kommer i mål med dette her, har så mye mer å lage, og så utrolig frustrerende og sitte fast så lenge med samme skriptet...

Lenke til kommentar

error::post('email') betyr at eg går inn i class "error" (error::) og henter ut funksjon "post", ('email') betyr bare at verdien som blir sendt til funksjonen er post.

 

Her har du error classen som eg bruker:

class error
{
function post($variable) {
return (empty($_POST[$variable]));
}

function postEQ($variable, $variable2) {
return ($_POST[$variable] != $_POST[$variable2]);
}
function postEmail($variable) {
return (!preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i', trim($_POST[$variable])));
}
}

 

Grunnen til at eg gjør dette er for at koden skal være lettere for meg lese etterpå + at eg bruker dei samme funksjonene på mange sider.

req::post er akkurat det samme som error::post, men eg laget ein ny slik at eg med ein gang kan se at den siste er ein error sjekk. (I.e. lett lest kode)

 

Vist du skriver om koden, så vil eg anbefale deg å bare bruke $_POST tags isteden for $_SESSION. Det kan lett gjøres ved å includere "form" siden med ein include vist det er feil med det brukeren postet.

Endret av The Red Devil
Lenke til kommentar

Har brukt form og validering i to forskjellige filer for brukerregistrering, men skal ha en del sånne skjema, så tenkte det var best å ha de i en fil...

Har nå skrevet om koden på news_add.php (funket heller ikke lenger når jeg satte globals til off). Nå funker alt som det skal, så får jeg se om jeg får til redigeringsskriptet på bakgrunn av dette.

Her er koden. Ser det greit ut nå?

<?php
if($_SESSION['loggedin'] == "true" && (usercheck() || admincheck()))
{
if(isset($_POST['submit']))
{
 $_SESSION['title'] = htmlspecialchars(mysql_escape_string(trim($_POST['title'])));
 $_SESSION['news'] = htmlspecialchars(addslashes(trim($_POST['news'])));
 $user_id = $_SESSION['user_id'];
 $status = true;
 
 if(!empty($_SESSION['title']))
 {
 	$title = $_SESSION['title'];
 }
 else
 {
 	$_SESSION['err_title'] = "You must enter a title for the news item.<br/>";
 	$status = false;
 }
 	
 if(!empty($_SESSION['news']))
 {
 	$news = $_SESSION['news'];
 }
 else
 {
 	$_SESSION['err_news'] = "You must enter the news.";
 	$status = false;
 }
 
 if($status)
 {
 	$query = "INSERT INTO acdc_news (user_id, created, title, news)
   VALUES ('$user_id', now(), '$title', '$news')";

 	$result = mysql_query($query) or die ("Could not execute query.".mysql_error());
 
 	if(!empty($result))
 	{
   //added to database
   $_SESSION['statuss'] = "News item inserted to database.";
   unset($_SESSION['title']);
   unset($_SESSION['news']);
 	}
 	else
 	{
   //not added to database
   $_SESSION['statuss'] = "News item could not be inserted to database.";
   header("location: index.php?page=news_add");
 	}
 }
}
echo $_SESSION['err_title'];
echo $_SESSION['err_news'];
echo $_SESSION['statuss'];
?>
<form name="news_add" method="post" action="index.php?page=news_add">
 <label for="title">Title:
 	<span>
   <input class="textfield" type="text" id="title" name="title" value="<?php echo stripslashes($_SESSION['title']); ?>">
 	</span>
 </label>
 <label for="news">News:
 	<span>
   <textarea id="news" name="news"><?php echo (stripslashes($_SESSION['news'])); ?></textarea>
 	</span>
 </label>
 <label><span>
 	<input class="button" type="submit" name="submit" value="Add News"/>
 	<input class="button" type="reset" name="reset" value="Reset"/>
 </span></label>
</form>
<?php
unset($_SESSION['err_title']);
unset($_SESSION['err_news']);
unset($_SESSION['statuss']);
unset($_SESSION['title']);
unset($_SESSION['news']);
}
}
else
{
header("location: index.php");
}
?>

Lenke til kommentar

LoS:

Nå blei eg faktisk usikker, eg er ikkje 100% sikker + eg har ikkje tid til å teste det akkurat nå. Men eg trudde -> blei brukt vist du allerede hadde kallet opp classen ($test = new test();) da vil $test-> peke til class "test", og dermed kunne åpne det som er av funksjoner inne i den. Mens :: blir brukt uten å kalle opp classen, i.e. at eg kan bare skrive class::function for å kalle dei opp.

Lenke til kommentar
Hei! Hvis du har register globals på fungerer ikke det for Sessions også?

 

Så $post['noe'] kan være $noe

 

men hvis session noe er satt kan ikke den også være $noe? :hmm:

 

Mvh

 

Pepper

Det stemmer nok. Lasted opp siden, og en sjekk der jeg brukte session, ble bare tull. Sjekket så php.ini filen til hosten, og der var register_globas on. Satte den til off, og da funket det.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...