Hallo Ulf,
Also, wie im Thema schon angesprochen: mein Array verschluckt Daten.
welchen Array? eine etwas genauere Fehlerbeschreibung wäre schon sinnvoll - Was steht in dem drin? bei welcher Aktion werden die Daten "verschluckt"? Gibt es eine Fehlermeldung? (evtl. error_reporting(E_ALL); einsetzen)
Ich geben sie ein und sie kommen nicht wieder 'raus.
wie stellst du das fest
Hier ist noch kurz (*g*) der Source von der Seite.
poste bitte nur den relevanten Code deiner Seite und nicht das ganze html und js gewurschtel - das interessiert nicht.
Teil 1: (Teil 2 folgt noch)
<?php
include "../includes/service.inc.php";
steht da irgendwas relevantes drin (oder nur Einstellungen für mysql_connect() o.ä.)?
[...]
ellenlanges Stück html- und js-Codes gelöscht
<?
du weißt, dass das nur mit short_open_tags=on funktioniert?
if ($HTTP_POST_VARS["recur"] != "")
ist $HTTP_POST_VARS das Array, das du meinst (bzw. eher $_POST)? und warum verwendest du nicht empty() bzw. in dem fall wohl eher isset()
<form name="Formular">
es fehlt das action-Attribut, außerdem ist ein leeres form-Element etwas sinnlos
$link_pr = mysql_connect("$host:$port","$user","$pass");
die Anführungszeichen um die Variablen kannst du dir sparen (Ausname: der erste Parameter sollte eher so: ($host.':'.$port,...) aussehen) - außerdem, wo ist die Fehlerbehandlung?
$query_pr = "select * from sched";
http://www.dclp-faq.de/q/q-sql-select.html
$num_pr = mysql_numrows($result_pr);
die Funktion mysql_numrows() gibt es nicht (du meinst vermutlich mysql_num_rows())
list([...])=split('[.]',$datum,3);
du weißt, dass split() einen regulären Ausdruck erwartet und das Punkte in einem Solchen eine bessondere Bedeutung haben? Ob der Punkt in dem Fall (innerhalb von []) maskiert werden muss, weiß ich allerdings nicht, aber split() ist hier überflüssig - explode() tut es völlig.
if($recur="keine")
das gibt immer true - wenn du prüfen willst, ob $recure den Wert 'keine' enthält musst du zwei Gleichheitszeichen verwenden (siehe: http://www.php.net/language.operators.comparison)
if($recur="taeglich")
if($recur="woechentlich")
if($recur="monthly")
if($recur="jaehrlich")
dito.
$jahrvon = date('y', $row_pr[stimestamp]);
http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar
$query_prv = "select stimestamp from sched"; //von
$query_prb = "select etimestamp from sched"; //bis
warum machst du das nicht in einem Query?
$mail = $HTTP_POST_VARS["mail"];
[...]
mail(
"$mail",
schicke nie E-Mails an E-Mailadressen die vom user kommen (sowas lässt sich wunderbar zum Spammen missbrauchen)
print("<h4 align='center'>Sollte der Schulungsraum in dieser Zeit");
print("nicht zur Verfügung stehen<br>werden Sie umgehend von uns per Mail informiert.</h4>");
ehh...? ich dachte du prüfst vorher ellenlang, ob der Raum frei ist?
$link_add = mysql_connect("$host:$port","$user","$pass");
warum machst du die Verbindung erst zu, öffnest sie dann aber wieder?
$query_add = "INSERT INTO [...] VALUES ('$thema','$beschreibung','$datum','$vorname $name', '$max', '0', '$offen', '$von', '$bis', '$mail')";
Angaben die vom User kommen nie einfach so in die Datenbank schreiben (beim ersten ' im Text gerät dein Query völlig durcheinander) - zum maskieren der "kritischen" Zeichen gibt es mysql_escape_string()
mysql_close($link_add);
$link_add2 = mysql_connect("$host:$port","$user","$pass");
schon wieder ein überflüssiger Schließ- und Öffnenvorgang
<? echo "<td><input type=text name=name size=30 value=$_SESSION[name]>"; ?>
mal abgesehen davon, das $_SESSION[name] falsch ist (s.o.), gibt das einen ungültigen Code - um den Wert von value müssen Anführungszeichen (bei den folgenden Zeilen ebenfalls).
<td><input type="text" name="max" maxlength="2" size="2"></td>
ich hoffe du prüfst vorher nochmal, ob wirklich nur höchstens zweistellige Zahlen eingetragen wurden...
<td [...]><input type="button" value="Senden" onClick="checkFields()";></td>
eine clientseitige Prüfung der Daten ist ja schön und gut, aber ersetzt nicht die Serverseitige.
nochmals Danke!
ob ich dein Problem lösen konnte, weiß ich nicht, wenn nicht, sag etwas genauer, wo das Problem überhaupt liegt.
Grüße aus Nürnberg
Tobias [der hofft, dass er Ulf mit dem ganzen Geschreibsel nicht erschlagen hat :-)]
-- Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
Grüße aus Nürnberg
Tobias
Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|