CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
24.08.2003, 21:02:51
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Zollhaus
Beiträge: 72
|
|
$_POST[... Index Probleme
Hallo Leute,
ich habe ein kleines Problem mit der Var $_POST.
Ich habe ein PHP-Script, in dem beim ersten Aufruf ein Formular erzeugt wird.
Die Formulardaten werden mit der Methode: POST übermittelt.
Das Ziel ist die Datei selbst.
Wenn ich nun die Formulardaten auswerten (sprich in eine lokale Variable) schreiben möchte, bekomme ich folgende Meldung:
Notice: Undefined index: user in g:datawwwtheshadowrunneradminlogin.php on line 47
Code:
$user = $_POST['user'];
Ich weis zwar, das es sich hier nur um eine Notice handelt, also keinen Fehler, aber die Variabelen sind nach meiner Meinung gesetzt.
Dies schließe ich daraus, wenn ich nämlich die Zuweisung weg lasse und sie gegen ein:
echo $_POST['user'];
austausche, gibt es keine Notice und der Wert wird ausgegeben. Alternative habe ich es schon mit $_REQUEST versucht.
Mein System:
OS: Win2kSP3
Webserver: Apache 1.3.24
PHP: 4.3.2
|
25.08.2003, 09:36:38
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hallo crusader,
wie Du schon gesagt hast, ist nur eine "Notice".
Eine Möglichkeit:
if(isset($_POST['user']))
{
$user = $_POST['user'];
}
Grüsse
chris17
|
25.08.2003, 17:44:49
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Zollhaus
Beiträge: 72
|
|
Ja, aber die Variable ist doch gesetzt und hat einen Inhalt.
Also sollte diese Meldung doch nicht kommen.
Die Meldung kommt auch nicht wenn das Element des Arrays mit Echo ausgebe. Nur beim umkopieren entsteht diese Meldung.
|
25.08.2003, 17:55:35
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi,
die Variable ist aber erst nach dem Posten gesetzt.
Zitat:
Die Meldung kommt auch nicht wenn das Element des Arrays mit Echo ausgebe.
|
Ich bekomme auch bei echo $_POST['user']; eine Notiz.
PHP-Code:
$user = $_POST['user'];//->Notice: Undefined index: user ...
echo $_POST['user'];//->Notice: Undefined index: user ...
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo "<input type='text' name='user'>";
echo "<input type='submit'>";
echo "</form>";
|
25.08.2003, 20:36:19
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Zollhaus
Beiträge: 72
|
|
Bei mir gibt echo den Wert aus.
Code mit Meldung:
case 1:
$user = $_POST['user']; // undefinded index user
$pw = $_POST['pw']; // undefinded index pw
wenn ich nun diesen code verwende:
case 1:
$echo $_POST['user']; //Ausgabe Wert user
$echo $_POST['pw']; //Ausgabe Wert pw
$user = $_POST['user']; //Keine Meldung
$pw = $_POST['pw']; //Keine Meldung
Sprich, wenn ich vorher ein echo mache, funktioniert die Zuweisung.
Und hier liegt das Problem.
Aber warum? Kann das vielleicht was mit meinen Einstellungen in der php.ini zu tun haben?
In deinem Fall Chris17 ist es klar, dass die Meldung kommt. Du versuchst die Variable auszugeben, obwohl diese noch nicht vom Formular gesetzt wurde.
Dieses Problem hab ich mit switch case gelöst. Mein Script durchläuft verschieden Anmeldestatien.
session_start();
session_register("anmeldestatus");
switch($HTTP_SESSION_VARS['anmeldestatus'])
{
case NULL: //Variable hat Wert NULL
/*Hier wird das Formular aufgebaut. Die Formulardaten werden
wieder an das gleiche Script geschickt*/
$HTTP_SESSION_VARS['anmeldestatus'] = 1;
break;
case 1:
/*Formulardaten auswerten*/
$user = $_POST['user'];
$pw = $_POST['pw'];
...
/*wenn Formulardaten ok, dann redirect*/
break;
}
|
26.08.2003, 09:14:23
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Moin,
Zitat:
Aber warum? Kann das vielleicht was mit meinen Einstellungen in der php.ini zu tun haben?
|
Ja, da könnstest Du z.B. folgendes machen:
Zeigt alle Fehler, ausser Notizen.
error_reporting = E_ALL & ~E_NOTICE
In der php.ini ist das schön dokumentiert, was es für Möglichkeiten gibt.
Gruss
chris17
|
26.08.2003, 17:25:15
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Zollhaus
Beiträge: 72
|
|
Also, mit dem Eintrag, dass alle Notices nicht mehr angezeigt werden, ist mir auch nícht geholfen. Jetzt funktioniert die SQL Afrage nicht mehr, da die Variablen leer sind.
Vielleicht noch eine andere Idee? Aus dem Quellcode den ich oben gepostet habe kann man hoffentlich mein System erkennen.
|
26.08.2003, 17:46:41
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hallo,
Du hast in der php.ini am error_reporting geschraubt und deswegen funktioniert jetzt Deine SQL Abfrage nicht mehr?!?
Aber Dein Skript hatte vorher funktioniert, Du wolltest ja nur diese Notizen vom Schirm haben...
Sorry, hier weiss bestimmt noch jemand Rat.
Grüsse
|
26.08.2003, 17:53:05
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Zollhaus
Beiträge: 72
|
|
Das Problem liegt darin, das ich mit dem $_POST Array meine SQL Abfrage zusammen baue.
Die Notizen wollte ich nicht weg haben, sondern wollte eigentlich wissen warum die da sind.
Es verwundert mich nämlich das die Notiz kommt, wenn ich dieses Element einer anderen Variable zuweise und wenn ich statt der Zuweisung eine Ausgabe des Elementes mache funktioniert die Geschichte.
Also, ein Wiedespruch:
Wie kann eine Ausgabe funktionieren und eine Zuweisung nicht.
Kombiniere ich beides hintereinander
echo $_POST
$a = $_POST
funktioniert die Geschichte auch einwandfrei.
Aber so kann es das ja nicht aufbauen.
Erstens unsauber, zweitens mach ich später im script noch ein header().
|
26.08.2003, 22:08:03
|
Member
|
|
Registriert seit: Apr 2002
Beiträge: 821
|
|
PHP-Code:
$a = isset($_GET['xy'])?$_GET['xy']:'';
das kann man z.B. noch machen
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:30:01 Uhr.
|