checkbox prüfung

Versuch es mal so.

PHP:
if(!empty($_POST['agb'])) {

if($_POST['agb'] == "ja") {



        // Maskierende Slashes_ aus POST entfernen
        $_POST = get_magic_quotes_gpc() ? array_map ('stringslahes', $_POST) : $_POST;

            //Inhalte der Felder aus POST holen
            $fertig = $_POST['agb'];


mysql_query("    UPDATE `bestellung`
            SET
                `fertig`     = 'ja'
            WHERE
                `user_id`     = '{$_SESSION['user_id']}' 
            ORDER BY
                datum
            DESC LIMIT 1"); 

echo '<meta http-equiv="refresh" content="0; URL=kundenarea.php?page=danke">';

}else{
 
    
$error_msg = "sie haben die agb nicht akzeptiert";


}
 
versuch es mal so:
PHP:
if($_POST['agb'] == 1) {



        // Maskierende Slashes_ aus POST entfernen
        $_POST = get_magic_quotes_gpc() ? array_map ('stringslahes', $_POST) : $_POST;

            //Inhalte der Felder aus POST holen
            $fertig = $_POST['agb'];


mysql_query("    UPDATE `bestellung`
            SET
                `fertig`     = 'ja'
            WHERE
                `user_id`     = '{$_SESSION['user_id']}' 
            ORDER BY
                datum
            DESC LIMIT 1"); 

echo '<meta http-equiv="refresh" content="0; URL=kundenarea.php?page=danke">';

}else{
 
    
$error_msg = "sie haben die agb nicht akzeptiert";


}
;)
 
hmm habs jetzt probiert aber wenn ich die checkbok nicht anklicke bekomme ich keine error meldung
und wenn ich anklicke dann werden die daten aktualieriert
 
Aua, dass tut weh. Schauen wir uns mal an, was folgende Schnippsel in beiden Situationen ausgeben:
Code:
 Fall | isset($_POST['agb']) | $_POST['agb'] == 'ja'
------+----------------------+-----------------------
    1 | false                | false
    2 | true                 | true
Im Fall 2 prüft er bei dir also, ob es gesetzt ist oder nicht. Wenn jetzt also der Wert gesetzt ist und den Wert ja hat, dann aktualisiert er. Ansonsten, wenn der Wert gesetzt ist, aber nicht den definierten Wert hat, gibt er die Meldung aus. Da aber der letzte Fall nie eintritt, gibt er auch keine Meldung aus. Deshalb müsste es so aussehen:
PHP:
if(isset($_POST['agb']) && $_POST['agb'] === 'ja') { 
  // Maskierende Slashes_ aus POST entfernen 
  $_POST = get_magic_quotes_gpc() ? array_map ('stringslahes', $_POST) : $_POST; 
  //Inhalte der Felder aus POST holen 
  $fertig = $_POST['agb']; 
  
  mysql_query(
    'UPDATE `bestellung` 
      SET 
        `fertig`     = 'ja' 
      WHERE 
        `user_id`     = "' . $_SESSION['user_id'] . '"  
      ORDER BY 
        `datum` 
      DESC LIMIT 1'
  );
  echo '<meta http-equiv="refresh" content="0; URL=kundenarea.php?page=danke">';
} else {
  $error_msg = "sie haben die agb nicht akzeptiert"; 
}
 
PHP:
	<?php if(isset($error_msg) && !empty($error_msg)) : ?>
			<div style="border:2px solid red; padding: 10px">
            
			<?php echo $error_msg; ?>
 
so jetzt bekomm ich diese fehler meldung
"arse error: syntax error, unexpected T_STRING in 21"

in der zeile 21 ist = `user_id` = "' . $_SESSION['user_id'] . '"
 
Ändere die Abfrage mal in folgendes:
PHP:
mysql_query(
  'UPDATE `bestellung` 
    SET 
      `fertig`     = "ja" 
    WHERE 
      `user_id`     = "' . $_SESSION['user_id'] . '"  
    ORDER BY 
      `datum` 
    DESC LIMIT 1'
);
 
Zurück