SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.08.2003, 22:02:51
crusader crusader ist offline
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
Mit Zitat antworten
  #2  
Alt 25.08.2003, 10:36:38
chris17 chris17 ist offline
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
Mit Zitat antworten
  #3  
Alt 25.08.2003, 18:44:49
crusader crusader ist offline
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.
Mit Zitat antworten
  #4  
Alt 25.08.2003, 18:55:35
chris17 chris17 ist offline
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>"
Mit Zitat antworten
  #5  
Alt 25.08.2003, 21:36:19
crusader crusader ist offline
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;
}
Mit Zitat antworten
  #6  
Alt 26.08.2003, 10:14:23
chris17 chris17 ist offline
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
Mit Zitat antworten
  #7  
Alt 26.08.2003, 18:25:15
crusader crusader ist offline
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.
Mit Zitat antworten
  #8  
Alt 26.08.2003, 18:46:41
chris17 chris17 ist offline
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
Mit Zitat antworten
  #9  
Alt 26.08.2003, 18:53:05
crusader crusader ist offline
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().
Mit Zitat antworten
  #10  
Alt 26.08.2003, 23:08:03
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
PHP-Code:
$a = isset($_GET['xy'])?$_GET['xy']:''
das kann man z.B. noch machen
__________________
PHP-Tutorial - PHP-FAQ - PHP-Manual
HTMLWiki
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:06:18 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt