WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 04.09.2003, 13:32   #1
row
Inventar
 
Registriert seit: 22.06.2001
Beiträge: 1.611


Frage PHP script schreibt unzuverlässig in MySQL db

Hi Leute, ich habe einen Online Fragebogen erstellt der mit einer Session das Sammeln von Antworten über mehrere Seiten ermöglicht. Auf Seite 1 bekommt der User eine survey ID durch folgendes Script:
PHP-Code:
session_start();
$zufall=md5 (uniqid (rand()));
$_SESSION["username"] = "$zufall";
$survey_id $_SESSION["username"]; 
Dann wird der User per HTML Forms befragt, z.B. hier soll er sich eine Aktivität aussuchen:


Nenne die Aktivität hier:
<input name="activity" type="text" size="30" maxlength="100"></P>

Via POST wird das Ergebnis an das folgende PHP Skript weitergeleitet und das schreibt das Ergebnis in eine MySQL Datenbank:
PHP-Code:
session_start();
$survey_id $_SESSION["username"];
$sql "update tels SET activity = '$activity' WHERE session = '$survey_id'  ";
$res send_sql($db,$sql);
mysql_free_result($res); 
Normalerweise arbeitet das Script einwandfrei, nur manchmal versagt das Script und es wird mir nichts unter der ID in die Datenbank eingetragen... Die ID-session wird angelegt und auch in die MySQL-db eingetragen aber dann geht irgendwie die UserID für's script verloren und die weiteren Usereingaben werden nicht mehr eingetragen. Der Fehler tritt am meisten auf wenn ich die Seite zum ersten Mal teste

Findet irgendwer den Bug? Bitte Hilfe!

P.S:
Die function send_sql is per include("funk.php") eingebunden;
PHP-Code:
function send_sql($db$sql) {
   if (! 
$res=mysql_db_query($db$sql)) {
   echo 
mysql_error();
   exit;
   }
   return 
$res;
 } 
row ist offline   Mit Zitat antworten
Alt 05.09.2003, 06:40   #2
SingleParty.cc
Jr. Member
 
Registriert seit: 22.05.2003
Alter: 23
Beiträge: 91


Standard Hidden field

Schreibst Du die SessionID im HTML-Form in ein Hidden Field?

Falls nicht, dann gibt es Probleme, wenn ein User die Cookies deaktiviert hat und somit die ID nicht übergeben wird.
____________________________________
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;www.tgifridays.at
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T.G.I. Friday\'s Vienna
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;www.SingleParty.cc
Plattform für Kontaktsuchende
SingleParty.cc ist offline   Mit Zitat antworten
Alt 05.09.2003, 09:47   #3
row
Inventar
 
Registriert seit: 22.06.2001
Beiträge: 1.611


Standard

@SingleParty.cc

Nach meinen letzten Änderungen läuft das Ding jetzt stabil!
Die Ursache war glaub ich dass session_start(); nicht als erstes aufgerufen wurde, sondern auf den fehlerhaften Seiten etwas weiter unten stand. Und wie steht's eh tausendmal überall ... session aufrufen bevor Code an den Client gesendet wird.

Die User kriegen keine Cookies (war mir zu unsicher). Mit einem hidden field wird auch nicht übergeben.
Die jeweilige surveyID bekomme ich einfach per
PHP-Code:
session_start();
$survey_id $_SESSION["username"]; 
Am Ende vom Fragebogen wird die session einfach zerstört.
row ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:50 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag