WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   ein phpmyadmin Problem (http://www.wcm.at/forum/showthread.php?t=237888)

Honk 09.01.2010 15:36

ein phpmyadmin Problem
 
Hallo Leute
Ich steh etwas an (oder auf der Leitung): :rolleyes:
Folgendes Problem:

Datenbank bei meinem Provider > DB-Tabelle mittels phpmyadmin erstellt > Formulardaten (Anmeldung zu einer Sportveranstaltung) der Website werden an ein php-script zur Weiterleitung an die DB übergeben .... und dann passiert folgendes:

a) ich erhalte (von mir als Service für den den User so gewünscht) die Meldung:
"Sie wurden mit folgenden Daten angemeldet"
... nur: da stehen keine Anmeldedaten :(

b) der DB Tabelle wird ein Eintrag hinzugerechnet, aber auch hier stehen keine Werte??

Wo hab ich die am "Datenhighway" denn verloren :confused:

Ich hoffe ich habe das Prob nicht zu kompliziert beschrieben!

thx
honk

pong 09.01.2010 17:49

Ist die Connection wieder geschlossen? Verdeutliche dein Problem und zeig mal einen Screenshot aller relevaten phpmyadmin Formulare her.

pong

ZombyKillah 09.01.2010 18:15

Ich tippe einmal auf einen Fehler im php-skript.

Darf man den einsehen?

Honk 10.01.2010 14:42

Danke dass ihr mir helfen wollt.
Da ein Scriptfehler naheliegender ist .... hier ist die php datei:

.................................................. ...................

<?php
$connect = mysql_connect("xxxxxxxxxxxxxxxxx","xxxxxxxxxx","xx xxx") or die ("Keine Verbindung möglich");
$db = mysql_select_db("xxxxxxxxxxxx") or die ("Die Datenbank existiert nicht");
$tabellenname="wwrm";
$sql="INSERT INTO $tabellenname (vorname,name,strasse,ort,plz,jahr,geschlecht,vere in,email,telefon,strecke)
VALUES ('$vorname','$name','$strasse','$ort','$plz','$jah r','$geschlecht','$verein','$email','$telefon','$s trecke')";
if(mysql_query($sql))
{
echo "<b>VIELEN DANK FÜR IHRE ANMELDUNG ZUM XXXXXXXXXX<p>
Folgende Daten wurden gespeichert!!</b><p>";
echo "<b>Vorname:</b> $vorname<p><b>Name:</b> $name<p><b>Strasse:</b> $strasse<p><b>Ort:</b> $ort<p>
<b>Postleitzahl:</b> $plz<p><b>Geburtsjahr:</b> $jahr<p><b>Geschlecht:</b> $geschlecht<p>
<b>Verein:</b> $verein<p><b>E-Mail Adresse:</b> $email<p><b>Tel. Nr.:</b> $telefon<p><b>Strecke:</b> $strecke<p>";
echo "Nennungen k&ouml;nnen nur akzeptiert werden, wenn das Nenngeld zeitgerecht VOR unserer Veranstaltung auf unserem
Konto eingelangt ist. <b>Einzahlungsbelege k&ouml;nnen als Nachweis NICHT anerkannt werden.</b>
Auf den Einzahlungsbelegen ist der Name des FAHRERS (bei Gruppennennung: die Namen alle Fahrer)
lesbar anzuf&uuml;hren!";}
else {
echo "Ihre daten wurden nicht gespeichert!!";}
?>

.................................................. .........

Seltsamerweise hat das Script die letzten Jahre tadellos gefunkt.
Jetzt bin ich aber bei einem anderen Provider und musste (wollte) alles neu machen :)

Danke
Honk

Honk 10.01.2010 14:57

Und hier meine phpmy... Einstellungen:

http://www.klhoon.com/zwischendatei/phpmyadmin.jpg

wbendl 10.01.2010 15:05

Hi!

Hier ist nicht zu sehen, wie die Variablen befüllt werden.

Könnte es sein, daß dein "alter" Provider register_global auf "ein" hatte, und der Neue nicht?


mfg

WB

ZombyKillah 10.01.2010 15:24

Jap ... diese Art des Aufrufen von POST Variablen wurde in der Zwischenzeit aus Sicherheitsgründen aus php entfernt.

Dadurch war es in der Vergangenheit möglich, dass der Browser beliebige Variablen am Server-Skript initialisieren konnte.

Heute muss folgende Schreibweise verwendet werden:
$_POST['vorname''];
Oder man setzt (wie wbendl schon geschrieben) register_global = 1;

Du kannst folgende Funktion vorsetzen:
PHP-Code:

foreach ($_POST as $nam => $value) {
if (!
isarray($value)) $$nam $value;


Hab den Code jetzt nicht getestet ... solte aber funktionieren ... wenn du es sicherer machen willst, kannst du vorher eine Liste definieren, welche Variablen übernommen werden sollen:
PHP-Code:

$list explode(",""vorname,name,strasse,");

function 
is_part(&$name, &$list){
foreach (
$list as $in){
if (
$name == $in) return true;
}
return 
false;
}

foreach (
$_POST as $nam => $value) {
if (!
isarray($value) && is_part($nam$list)) $$nam $value;
}
unset(
$list); 

Hoffe ich habe mich an die Befehle alle richtig erinnert ...

Honk 10.01.2010 15:26

Super!!! Danke euch allen!!! :-)

Schönen Sonntag noch
Honk

Honk 10.01.2010 17:41

OK, ich bin zwar engagiert aber dennoch Laie :(

.... es funkt nicht!!!! :heul:

wbendl 10.01.2010 18:41

Hi!

Es deutet alles darauf hin, daß die Variablen leer sind.

Laß dir $sql ausgeben. Dann siehst du, was tatsächlich an die DB geschickt wird.


mfg

WB

Honk 11.01.2010 12:47

So, jetzt passts :) ... und wenn ich jetzt noch zusammenbringe, dass sich die Bestätigungsmeldung ein einem neuen Fenster öffnet bin ich überhaupt glücklich :D

thx all
honk

ZombyKillah 11.01.2010 19:00

Ganz einfach in deinen Formular wo <form action="...." ... target="_blank">
Und schon wird der Skript in einen neuen Fenster ausgeführt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:03 Uhr.

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