PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Brauche Hilfe für: PHP Checkbox-Übergabe mit if (http://www.selfphp.de/forum/showthread.php?t=24437)

OxanaG 12.10.2011 10:57:37

Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Habe folgendes Problem: Ich habe eine Html-Datei, bei der ich zwei Textfelder (name, email) und eine Checkbox habe, diese ist mit eine PHP-Datei verknüpft. Wenn ich die Checkbox nicht anklicke, dann soll der Wert von "email" in meine mysql datenbank in das Feld "email" geschrieben werden, ist die Checkbox aktiviert, dann soll der Wert von "email" in meine datenbank in das Feld "email2" geschrieben werden. Jedoch funktioniert dies nicht, wenn ich die Checkbox anklicke, dann wird der Wert nicht übergeben, es erscheint aber keine Fehlermeldung, auch nicht in MySQL. wenn ich die checkbox nicht anklicke, dann wird der Wert von name und email in die MySQl datenbank in die richtigen felder übergebn. ich benutze die datei email.html mit den Textfelder und Checkboxen und die Datei email.php für die übergabe der daten. unten seht ihr meine quellcodes beider dateien. Kann mir jemand dabei helfen? komme echt nicht mehr weiter, vielleicht findet ihr den Fehler.

Danke schon mal im Voraus!

email.html Quellcode:
HTML-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a target="rechts"></a>
<form method="post" action="email.php">

<table>
        <!--Textfelder für die einzelnen Datensätze in der Datenbank-->
        <tr>
                <td>Name</td>
                <td><input type="text" name="name" /></td>
        </tr>
        <tr>
                <td>Email</td>
                <td><input type="text" name="email" /></td>
                <td><input type="checkbox" name="checkbox" value="ja" /></td>
        </tr>
        <!--Button zur Übergabe der Daten von den Textfeldern-->
        <tr>
                <td><input type="submit" value="Speichern" name="speichern" /></td>
                <td><input type="reset" value="Abbrechen" name="abbrechen" /></td>
        </tr>
</table>
</form>
</body>
</html>


email.php Quellcode:
PHP-Code:

<?php
    
include ('email.html');
    
//Anmeldedaten: Servername mit Abfrage des Passworts vom 
    //jeweiligen Benutzer und dem Namen der verknüpften Datenbank
    
$server 'localhost';
    
$benutzer 'root';
    
$passwort '';
    
$datenbank 'adresse';
    
    
    
//Verbindung mit MySQL herstellen
    
$verbindung mysqli_connect($server$benutzer$passwort);
    
    
    
    
//Verbindung zur Datenbank herstellen
    
if ($verbindung){
        
mysqli_select_db($verbindung$datenbank);
        
        
//Bei nicht erfolgreicher Anmeldung in der Datenbank, 
        //Ausgabe einer Fehlermeldung
        
if(mysqli_error($verbindung)){
            echo 
'Fehler: ' mysqli_error($verbindung);
        }
        
            
            else if (isset(
$_POST['checkbox'])== "ja"){
                
$sql "
                    INSERT INTO
                        adresse(name, email, email2)
                        VALUES('{$_POST['name']}', '', '{$_POST['email']}')    
                    "
;
            }else{
            
                if (isset(
$_POST['name'])){
                
                    
//MySQL Anweisung zur Übergabe der Datensätze
                    
$sql "
                        INSERT INTO
                            adresse(name, email, email2)
                            VALUES('{$_POST['name']}', '{$_POST['email']}', '')        
                        "
;
                
                    
$abfrage mysqli_query($verbindung$sql);    
                
                }
            
            
            
//MySQL Abfrage zum ordnen der Datensätze nach einer bestimmten Spalte in der Tabelle
            
$sql "SELECT * FROM adresse order by name";
            
            
$abfrage mysqli_query($verbindung$sql);
            
            
//Alle Datensätze/Tabellenzeilen werden gezählt und ausgegeben 
            
echo '<font face="Calibri">Sie haben </font>' mysqli_num_rows($abfrage) . ' <font face="Calibri">Adressen.</font>';
                
            
//Gestaltung der Tabelle in Verbindung mit HTML/CSS Befehlen
            
echo "</br>";
            echo 
"</br>";
            echo 
"<table>";
                echo 
"<tr>";
                echo 
"<center>";
                
                
//Spaltennamen mit Hervorhebung
                
echo "<th style='background-color:yellow; font-family:Calibri'>Name</th>";
                echo 
"<th style='background-color:yellow; font-family:Calibri'>Email</th>";
                echo 
"<th style='background-color:yellow; font-family:Calibri'>Email2</th>";
                echo 
"</tr>";
                
                
//Schleife, dass jeder Datensatz eine neue Zeile enthält
                
while($adresse mysqli_fetch_assoc($abfrage)){
                
                
//Datensätze werden mit den einzelnen Zeilen/Zellen verknüpft    
                
echo "<tr>";
                echo 
"<td style='background-color:orange; font-family:Calibri'>{$adresse['name']}</td>"
                echo 
"<td style='text-align:center; background-color:red; font-family:Calibri'>{$adresse['email']}</td>";
                echo 
"<td style='text-align:center; background-color:orange; font-family:Calibri'>{$adresse['email2']}</td>";
                echo 
"</tr>";                
                
            }
            echo 
"</table>";
            
mysqli_free_result($abfrage);
        }    
    }else{
        
        
//Bei nicht bestehender Verbindung, Ausgabe einer Fehlermeldung
        
echo 'Verbindungsfehler: ' mysqli_connect_error($verbindung);
    }
    
mysqli_close($verbindung);
?>


vt1816 12.10.2011 11:33:51

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Hallo und willkommen hier im Forum.


Kannst Du mir das hier
PHP-Code:

isset($_POST['checkbox'])== "ja"

erklären?

isset()
Zitat:

Gibt TRUE zurück, wenn var existiert einen von NULL verschiedenen Wert hat, andernfalls FALSE.
Denkmal drüber nach.

OxanaG 12.10.2011 12:46:48

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Zitat:

Zitat von vt1816 (Beitrag 142198)
Hallo und willkommen hier im Forum.


Kannst Du mir das hier
PHP-Code:

isset($_POST['checkbox'])== "ja"

erklären?

isset()
Denkmal drüber nach.

habe mir schon gedacht, dass in dieser zeile ein fehler ist.
wie muss ich da jetzt vorgehen? also wie muss der code jetzt heissen mit var true und false?
Mit Zitat antworten

vt1816 12.10.2011 14:02:42

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
PHP-Code:

if(isset($_POST['checkbox']))
{} 


CPCoder 12.10.2011 14:22:25

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Noch etwas:

Schau dir mal die Funktion mysql_real_escape_string() an.
Stichwort: SQL-Injections!

OxanaG 12.10.2011 15:14:02

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Zitat:

Zitat von vt1816 (Beitrag 142205)
PHP-Code:

if(isset($_POST['checkbox']))
{} 


funktioniert trotzde noch nocht, auch wenn ich "== ja" entferne
trotzdem danke

vt1816 12.10.2011 15:25:35

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Was funktioniert nicht?
Welche Fehlermeldung kommt?
Sind Fehlermeldungen überhaupt aktiviert?
...

OxanaG 12.10.2011 15:26:23

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Zitat:

Zitat von CPCoder (Beitrag 142206)
Noch etwas:

Schau dir mal die Funktion mysql_real_escape_string() an.
Stichwort: SQL-Injections!

mysql_real_escape_string() spielt gar keine rolle, da die abfrage mit der datenbank nur funktioniert wenn die checkbox deaktiviert ist, die mysql statements sind gleich.

habe es ach mit mysql_real_escape_string() ausprobiert, funktioniert immernoch nicht.

vt1816 12.10.2011 15:37:27

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Zitat:

Zitat von OxanaG;142210[..
habe es ach mit mysql_real_escape_string() ausprobiert, funktioniert immernoch nicht.

Es war mehr als Hinweis zu verstehen - wenn die Funktionalität hergestellt ist und es um die Sicherheit Deines Projektes geht.

Also den 2. Schritt nicht vor dem 1.

OxanaG 12.10.2011 15:37:32

AW: Brauche Hilfe für: PHP Checkbox-Übergabe mit if
 
Zitat:

Zitat von vt1816 (Beitrag 142209)
Was funktioniert nicht?
Welche Fehlermeldung kommt?
Sind Fehlermeldungen überhaupt aktiviert?
...

meine HTML seite sie so aus (ich hoffe dass man sich es bildlich vorstellen kann)

Name: ("Textfeld: name")
Email: ("Textfeld: email") Checkbox ()
Button: "Speichern" Button: Absenden

1. Wenn einen Namen und eine Email eintrage, Checkbox deaktiviert lasse,
dann speichere, werden die daten an MySQL in die Tabelle Adresse in die Spalten: name und email übertragen.
2. Wenn einen Namen und eine Email eintrage, Checkbox aktiviere,
dann speichere, sollten die Daten an MySQL in die Tabelle Adresse in die Spalten: name und
email2 übertragen werden.

Bei 2. funktioniert die Übertragung in die Datenbank aber nicht, es geschieht nichts, ich klich auf das Feld speichern, dann leert sich einfach das Textfeld
. Wenn ich aber das wie bei 1. mache, dann erscheint der neue Datensatz.

Wenn ich das "== ja" entferne, dann ändert sich nichts.
es erscheint keine Fehlermeldung, ich habe Fehlermeldungen aber angeschalten, normalerweise erschienen diese im Browserfenster.
Ich benutze auch Eclipse für PHP, in diesem Programm wird auch kein Fehler angezeigt, dort werden normalerweise alle Kleinigkeiten an Fehlern angezeigt.

Verstehst du jetzt was ich meine?


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54:40 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.