Array in Checkbox und Input feld

Schau mal hab das Jetzt so gemacht, also #13 hab ich den quelltext eingefügt, aber irgendwie speichert er mir nur array, in das feld progsprachen, ins andere feld kommt gar nix, obwohl ich progrmamiersprachen ausgewählt habe

PHP:
         <tr><th align="left">Programmier Kentnisse:</th></tr>      
                     <tr><th align="left">Java:<input type="checkbox" name="check[]" value="Java"></td></tr>
                  <tr><th align="left">PHP:<input type="checkbox" name="check[]" value="PHP"></td></tr>
                <tr><th align="left">HTML:<input type="checkbox" name="check[]" value="HTML"></td></tr>
                <tr><th align="left">CSS:<input type="checkbox" name="check[]" value="CSS"></td></tr>
               <tr><th align="left">C:<input type="checkbox" name="check[]" value="C"></td></tr>
               <tr><th align="left">C++:<input type="checkbox" name="check[]" value="C++"></th></tr>
               <tr><th align="left">MySQL:<input type="checkbox" name="check[]" value="MySQL"></th></tr>
                 <tr><th align="left">Assembler:<input type="checkbox" name="check[]" value="GDI"></th></tr>
                   <tr><th align="left">Android:<input type="checkbox" name="check[]" value="Android"></th></tr>
                   <tr><th align="left">Andere Sprachen:</th><th><input type="text" name="asprachen" /></th><td>Eingabebeispiel:Pearl, MSDOS</td></tr>
                     <tr><th align="left">Passwort:</th><th><input type="password" name="pw" /></th></tr>
                    <tr><th  align="left">Passwort Wiederholen:</th><th><input type="password" name="pw2" /></th></tr>
                    <tr><th  align="left">Leistungsnachweis </br>oder Hochschulabschluss:</th></br><th><input type="file" name="abschluss"/></th></tr> 
                    <tr><td> </br> </td></tr>
                    
                </table>
Ich erkläre mich mit den genannten <a href="agbdunddatenschutz.php">AGB</a> und den <a href="agbdunddatenschutz.php">Datenschutzbestimmungen</a> einverstanden <input type='checkbox' name='agbcbox'>
</br>
</br>
            <table>
                    <tr><td><input type="submit" value="Senden"  style="width: 100px; height: 25px"/></th><th><input  type="reset" value="Abbrechen" style="width: 100px; height: 25px"></th></tr>
                   
                         
           
                </table>
        </form>
                <?php
}
?>
        
<?php

if(isset($_GET["page"])) {if($_GET["page"] == "2") {
    
    
     $check=($_POST['check']);
    $asprachen = ($_POST['$asprachen']);
    //ggf $check initialisieren falls nix übergeben wurde
    if(is_null($check)) $check = array();
    //Andere Sprachen auslesen, trimmen und filtern (Leere Strings entfernen)
    $asprachenA = array_filter(array_map('trim', explode(',', $asprachen)));
    
    //Bei beiden Arrays die Keys setzen. Mit strtoupper() sicherstellen dass nicht wegen Gross/Kleinscrheibungsfehler etwas doppelt vorkommt
    if(count($check) > 0){
        $check = array_combine(array_map('strtoupper', $check), $check);
    }
    if(count($asprachenA) > 0){
        $asprachenA = array_combine(array_map('strtoupper', $asprachenA), $asprachenA);
    }
 
    //Und zusammennemen. Bei doppeltem Schlüssel wird nur der aus $check übernommen
    $sprachen = array_merge($check, $asprachenA);

        $anrede = ($_POST["anrede"]);
        $vname = ($_POST["vname"]);
        $nname = ($_POST["nname"]);
        $email = strtolower($_POST["email"]); 
        $geb = ($_POST["geb"]);
        $alt = ($_POST["alt"]);
        $sgang = ($_POST["sgang"]);
        $titel = ($_POST["titel"]);
      
        $pw = md5($_POST["pw"]);
        $pw2 = md5($_POST["pw2"]);
        
        
    
     $errors = array(); 
      
if ($anrede == '') {
         
  $errors[] = 'Anrede' ;
  
     }
     
if ($vname == '') { 
    
  $errors[] = 'Vorname' ;
  
    } 

if ($nname == '') { 
    
  $errors[] = 'Nachname'; 
  
} 
if ($email == '') {
         
  $errors[] = 'Email' ;
  
     }
if ($geb == ''){
  
    $errors[] = 'Geburtsdatum';
}

if ($alt == ''){
  
    $errors[] = 'Alter';
}

if ($sgang == ''){
  
    $errors[] = 'Studiengang';
}
if ($titel == ''){
  
    $errors[] = 'Angehender Titel';
}

if(!isset($_POST["check"]) && ($_POST['asprachen']))
{
    echo " Sie müssen eine Programmiersprache angeben ******</br>";
    
}

if(!isset($_POST['agbcbox'])) 
{ 
 echo'Gehen Sie <a href="studentregister.php">zurück</a> und akzeptieren Sie die AGB Bitte</br>';  
}  

if (count($errors) > 0) { 
  //wenn ja, fehler ausgeben 
  echo 'Sie müssen folgende Felder ausfüllen!<br />'. implode(',</br> ', $errors); 
   
            if($pw!=$pw2){
                echo'</br>bitte wiederholen Sie ihre Passworteingabe';
                
                 if(checkmail($email)==false){
           
                  echo '</br> Ihre Email ist nicht korrekt';
                    }
     
    
            }   
	} else {
           
            
			$verbindung = mysql_connect("localhost", "root", "")
			or die ("Fehler im System");

			mysql_select_db("salayth")
			or die ("Verbidung zur Datenbank war nicht möglich...");
			
			$control = 0;		
			$abfrage = "SELECT email FROM student WHERE email = '$email'";
			$ergebnis = mysql_query($abfrage);
			while($row = mysql_fetch_object($ergebnis))
				{
					$control++;
				}	
			if($control != 0) {
                            ?>
        
                <center>Diese Email ist schon vergeben. Bitte verwende sie andere Email....<a href="studentregister.php">zurück</a></center>
			
            <?php
                                } else {
                                     
                                   
                                    
			$eintrag = "INSERT INTO student (email, vname, nname, pw, alt, geb, titel, sgang, freigabe, progsprachen, anrede, asprachen)

			VALUES
			('$email', '$vname', '$nname', '$pw', '$alt ', '$geb' , '$titel' , '$sgang' , '1' , '$check' , '$anrede' , '$asprachen' )";

			$eintragen = mysql_query($eintrag);

Yaslaw, haste hier noch einen tipp, woran das liegen kann ?
 
Weil $asprachen ein Array ist.
Aber 1) solltest du $sprachen speichern und nicht $asprachen. 2) wie willst du die SPrachen den speichern? In einer normalisierten Tabelle? als Kommaseparierter String? Im JSON-Format?

Du siehst, du musst zuerst wissen was du mit den Sprachen genau machen willst.
 
auch nachdem ich $sprachen speichere, der führt die registration aus, aber speichert wieder nur array da drinne.

ich wollte eine zeichenkette zusammen stellen, weil es sicherlich nicht gut programmiert ist wenn es zwei mal in der datenbank und bei ausgabe ein datensatz gibt, der eigentlich das gleiche ist,

Hatte mir das so vorgestellt, wie du es erstellt hast, das aus den zwei Array/string = ein string entsteht der mit ' , ' getrennt ist .

Die registration erfolgt, aber es kommt eine fehlermeldung, array to string conversion

PHP:
			$eintrag = "INSERT INTO student (email, vname, nname, pw, alt, geb, titel, sgang, freigabe, progsprachen, anrede,  motivation)

			VALUES
			('$email', '$vname', '$nname', '$pw', '$alt ', '$geb' , '$titel' , '$sgang' , '1' , '$sprachen' , '$anrede' , '$motivation')";

			$eintragen = mysql_query($eintrag);
 

Neue Beiträge

Zurück