leere Sessions nicht in DB schreiben

counteract

Erfahrenes Mitglied
Hallo!

ich habe mal eine Frage. Und zwar suche ich nach einer Möglichkeit, dass leere Sessions nicht in die datenbank geschrieben werden, sonderen nur sessions die auch einen Inhalt haben.
In meiner Formularverabeitung gibt es nämlich die Möglichkeit Datensätze zu leeren, nun sollen auch diese leeren Datensätze auch nicht in die Datenbank geschrieben werden.
Jedoch weis ich nicht genau wie ich soetwas umsetzten kann.

Hoffentlich kann mir einer von euch bei diesen Problem helfen...

MfG

Counteract
 
Hier mein bisheriger code:

PHP:
<form method="post" action="test.php">

<?php 
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  
    $_SESSION['pname'] = $_POST['pname'];
    $_SESSION['pbeschreibung'] = $_POST['pbeschreibung'];


if (isset($_POST['schreiben']))
{
    $query = "INSERT into projekt_gep ( pname, pbeschreibung, pbeginn ) 
VALUES ('" . $_POST['pname'] . "','" . $_POST['pbeschreibung'] . "')"; 
    
     mysql_query($query, $connectionid) or die(mysql_error());
     mysql_close();
	 echo '<script language="JavaScript">window.location=("portfolio.htm");</script>';
}
session_destroy();
?>

Mein Problem ist eben wie man eine Session prüft ob sie einen Inhalt hat und wie man dann die SQl abfrage realisiert, dass nur Sessions geschrieben werden die auch befüllt sind.
 
Zuletzt bearbeitet:
Die prüft man wie jede andere Variable auch auf "Leerheit" :)
Dafür gibt es Funktionen wie empty() aber du kannst es auch manuell machen. Ich denke mal ich hab dich falsch verstanden !?
 
Wie funktioniert denn die Funktion empty()

Könnte ich es damit so prüfe, dass man nur Variablen in die Datenbank schreibt die auch gefüllt sind? Und wenn ja wie würde denn soetwas ausschauen?
 
Wenn ich jetzt annehme, dass du die beiden Variablen $_POST['pname'] und $_POST['pbeschreibung'] überprüfen willst und dann nur etwas in die Datenbank einfügen willst wenn die beiden Variablen belegt sind würde ich es wie folgt machen.
PHP:
<form method="post" action="test.php">

<?php 
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  
    
//Überprüfen ob die Variablen leer sind und wenn nicht, dann soll er den Wert der jeweilien Session zuweisen.

if(!empty($_POST['pname'])) 
{
       $_SESSION['pname'] = $_POST['pname'];
}

if(!empty($_POST['pbeschreibung'])) 
{
       $_SESSION['pbeschreibung'] = $_POST['pbeschreibung'];
}
// Ende der Prüfung.

if (isset($_POST['schreiben']) && !empty($_POST['pname']) && !empty($_POST['pbeschreibung']))
{
    $query = "INSERT into projekt_gep ( pname, pbeschreibung, pbeginn ) 
VALUES ('" . $_POST['pname'] . "','" . $_POST['pbeschreibung'] . "')"; 
    
     mysql_query($query, $connectionid) or die(mysql_error());
     mysql_close();
     echo '<script language="JavaScript">window.location=("portfolio.htm");</script>';
}
session_destroy();
?>

Rein theoretisch sollte es so eigentlich gehen *g*
 
Die Anzahl der Spaltenbezeichner und der Werte in der Abfrage stimmen übrigens nicht überein.
 
Ich müsste jedoch beide einzeln überprüfen! Also jedes element muss geprüft werden ob es leer ist oder nicht! Wie müsste ich denn das machen?

Vielen vielen dank für deine Hilfe
 
PHP:
if(!empty($var) && !empty($var2))
{
//Hier deine Abfrage und co...
}
else
{
//Eine der beidenen Variablen ist leer! 
}

So sollte er doch checken, und wenn eine der Variablen nicht belegt ist bzw. = 0
dann verweigert er halt seinen Dienst =)
 
Sorry das ich nochmal damit nerve! Bei meinem Problem handelt es sich um ca. 10 Variablen! Könnte ich das dann auch so machen wie in deinem Beispiel oder müsste das anders gemacht werden?
 
Zurück