PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Probleme


Ph03n!X
2007-04-22, 16:59:49
So bin in meinem Projekt Umfrage weit vorangeschritten ich kann Daten aus der Datenbank auslesen aber ich habe das Problem das ich sie nicht in die Datenbank speichern kann. Gibt es irgendwo ne Seite wo ich meine .php Dateien hochladen kann um sie hier zugänglich zumachen ? Denke so findet man den Fehler schneller.

darph
2007-04-22, 17:56:49
Du kannst sie zippen und hier als Attachment reinthun.

Aber wenn dein Code nicht halbwegs gut dokumentiert ist, weiß ich nicht, ob sich da jemand die Arbeit macht, das durchzuarbeiten. Das nur, um späterer Enttäuschung vorzubeugen. ;)

Ph03n!X
2007-04-22, 18:01:50
ich habe alles kommentiert :D

Wie kann ich hier nen Attachment hinzufügen ?

http://www.loaditup.de/76671.html

da ist die Datei

Marscel
2007-04-22, 18:39:16
Wenn ich das richtig sehe, werden die Werte, die in $_POST stehen, nirgends escaped.

Was auch immer mit dem Speichern nicht funktioniert, lass danach mal ausgeben, was mysql_error() zurückliefert.

Ph03n!X
2007-04-22, 18:54:40
was heisst escaped ? Mein fehler muss in de Fragen.php liegen indme Teil wo ich die Session ID aufbaue und dann die Werte übergebe und da dann die Werte in die DB Speicher

// Session ID aufbauen
$anzahl=count($_POST);
reset($_POST);

for($i=0; $i < $anzahl; $i++)
{
$attribut = current($_POST);

if (substr_count(key($_POST), 'A_' ) > 0)
{
$_SESSION[key($_POST)] = $attribut;
}
next($_POST);
}

if(isset($_POST['B1']))
{
$anzahl=count($_SESSION);
reset($_SESSION);

for($i=0; $i < $anzahl; $i++)
{
$antwort = current($_SESSION);
$F_ID = substr( key($_SESSION), strpos(key($_SESSION),"_") +1);
next($_SESSION);

if($F_ID != "")
{
// Werte in die Datenbank speichern
$speichern = mysql_query("INSERT INTO bewertung (`F_ID`, `Antwort` ) VALUES ('$F_ID', '$antwort')");
}
}

// Mit session_unset() hebt man die Registrierung aller Variablen auf, welche in der aktuellen Session angelegt wurden
session_unset();

Diesen Teil hier meine ich

esistich
2007-04-22, 18:56:22
die einzigste insert-query die ich gefunden hab war in der Fragen.php file

$speichern = mysql_query("INSERT INTO bewertung (`F_ID`, `Antwort` ) VALUES ('$F_ID', '$antwort')");

versuchs mal ohne diese häckchen bei den spalten also...

$speichern = mysql_query("INSERT INTO bewertung (F_ID, Antwort) VALUES (\'$F_ID\', \'$antwort\')");
oder
$speichern = mysql_query("INSERT INTO bewertung (F_ID, Antwort) VALUES ('". $F_ID ."', '". $antwort ."')");

oder die sauberere variante (mit stringunterbrechung)

$speichern="INSERT INTO bewertung (F_ID, Antwort) " .
"VALUES (" .
"'".$F_ID."'," .
"'".$antwort."'" .
")";

in der admin.php file sinddie auslaufenden body und html-tags innerhalb des php scripts, also raus damit oder in ein echo-string verpacken.

namen von formularelementen (Login.php) ohne sonderzeichen bzw. umlaute auch keine html-entities also zb. &uuml;

escapen heisst wenn du ein backslach vor einem anführunszeichen setzt damit der beim parsen überlesen wird und es zu ekiner stringunterbrechung kommt.

Ph03n!X
2007-04-22, 19:03:06
hmm die admin php ist unwichtig die drei anderen Files sind wichtig

esistich
2007-04-22, 19:05:57
hmm die admin php ist unwichtig die drei anderen Files sind wichtig

poste mal die datenbank sonst kann ichs nicht testen.

Ph03n!X
2007-04-22, 19:07:13
eierstich $speichern = mysql_query("INSERT INTO bewertung (F_ID, Antwort) VALUES (\'$F_ID\', \'$antwort\')") ; <-- geht nicht

die admin.php ist noch gar nicht eingebunden muss auch erstmal nicht

ja wollte ich eben hochladne mom

musse dann unter xampp/mysql/data/fragebogen speichern

http://www.loaditup.de/76701.html

esistich
2007-04-22, 19:15:06
dachte viel mehr an eine db.sql

geh auf phpmyadmin, wähle deine datenbank aus klick oben auf exportieren dann ganz unten auf ok und pack die sql in ein textfile.

nichts für ungut aber ich setze keine files in mein system^^

Ph03n!X
2007-04-22, 19:18:02
ist okay mache ich eben

http://www.loaditup.de/76713.html

esistich
2007-04-22, 19:27:48
ist okay mache ich eben

http://www.loaditup.de/76713.html

hmm hast du die werte ausgelesen ?
im auswerte - script die übermittelten werte mit $POST_ auslesen oder mit $request arbeiten z.b.

z.B. (übergebene werte name und vorname)

<?php
$name=$_POST['name'];
$vorname=$_POST['vorname'];
?>

dann sind die übermittelten vars im cache oder direkt einlesen also...

$speichern = mysql_query("INSERT INTO tabelle (spalte1, spalte2) VALUES ('". $_REQUEST['name'] ."', '". $_REQUEST['vorname'] .')");

Ph03n!X
2007-04-22, 19:31:07
und dann geht es ?

Sagen wir es mal so wenn man Werte in DB von hand eingibt dann geht die Auswertung ohne Probleme , aber ich kann halt keine Werte speichern sobald ich auf Umfrage abschicken klicke passiert einfahc nix. Es müsste aber was passieren nämlichd as seine 2 Antworten ind die entsprechenden Tables der Database gespeichert werden und dann auf Auswertung ausgegeben werden

esistich
2007-04-22, 19:41:13
und dann geht es ?

Sagen wir es mal so wenn man Werte in DB von hand eingibt dann geht die Auswertung ohne Probleme , aber ich kann halt keine Werte speichern sobald ich auf Umfrage abschicken klicke passiert einfahc nix. Es müsste aber was passieren nämlichd as seine 2 Antworten ind die entsprechenden Tables der Database gespeichert werden und dann auf Auswertung ausgegeben werden

so wie ich das sehe ist die db falsch angelegt (keine primärschlüssel, fehlendes auto inkrement die tabelle hat 4 felder nicht nur 2 und noch son paar spässchen) ich müsste das teil mal komplett auseinaderrupfen ich meld mich wieder das kann etwas dauern.

Ph03n!X
2007-04-22, 19:52:56
ja wäre nett gucke in der zwischenzeit selber auch mal , wenn das so nen simpler Fehler war lol :/

Ich glaube nicht das es an den Tabellen bzw. an der Datenbank liegt, weil mein Problem ist ja das, dass eigentlich so schon funktionieren müsste!!!! Allerdings wenn man auf den Button Abesenden klickt nichts passiert, keine reaktion des Browsers er macht garnichts und da weiß ich nicht warum er das nicht macht. Der php Teil läuft so schon bei nem Freund, von daher bin ich etwas ratlos wo mein Prob ist!!

esistich
2007-04-22, 22:19:26
also der fehler warum du keine auswertung kriegst ist...

in der login datei schickst du ein formular mit den werten username und userpw an die frage.php datei.

dort verpackst du die werte in die $user bzw. $pw variable.

in dieser datei hast du aber auch ein weiteres formular das du an sie selbst zur validierung schickst

<form action="<?php echo $_SERVER['PHP_SELF'] ?> method="POST">

der fehler ist der, das du keine werte mitgibst. du must also den usernamen und das pw mitgeben...

<form action="<?php echo $_SERVER['PHP_SELF'] ?>?user=<?echo $user ?>&pw=<?echo $pw ?>" method="POST">

danach hasst du zwar diesen fehler behaoben doch irgendwie ist das script fehlerhaft also dann kommt ein anderer fehler.

ich schau mal ob ich das script neu progge. wird wohl schneller gehen als die öder fehlersuche^^

poste mal was genau du machen willst.

Ph03n!X
2007-04-22, 22:34:22
ich will machen das wenn ich als USer angemeldet bin und auf Umfrage abschicken klkicke das das was er angekreuzt hat in die db gespeichert wird und mir auf der auswertung.php nur als ADMIN angezeigt wird

Es dürfen max 5 fragen pro seite sein, und es müssen mindestens 25 fragen sein

Das wäre dann mein vollständiges Programm zu einer Umfrage

esistich
2007-04-23, 10:23:54
sry habs gestern nicht mehr geschafft, werd mal heute bei der arbeit das teil nochmal anschauen.

hier (http://freenet-homepage.de/skydiver_1/proton.rar) hast du deine umfrage die soweit funktioniert bis auf das die werte nicht in die db geschrieben werden.

das problem mit der validierung habe ich mit versteckten formularelementen gelöst und der auswerte-button konnte nicht funktionieren weil das formular 2 submit-buttons hatte bzw- der auswerte-button den 2. submit-button darstellte.