Wie am besten lösen?

Ich verstehe auch nicht, wieso man heute noch solchen Code bauen will, wieso baust du nicht 1 Funktion mit dem Formular und 1 Funktion zum verarbeiten der Daten?

Im HTML-Formular ist die Methode doch schon definiert, welche du nutzen willst...also kannst du dir die restlichen _GET-Klamotten doch sparen :confused:


PHP:
function formular()
{
// blabla
}

function veraarbeiten($_POST)
{
// balbla
}
 
Zuletzt bearbeitet:
Habs jetzt erst gesehen: Wenn du Text im Query benutzt, hier also den Username aus der Session, dann muss der in Anführungszeichen stehen:
PHP:
$sql = "SELECT `id`, `user` FROM `users` WHERE `user` = '".$_SESSION['user']."'";
 
Login funktioniert nach Wechsel nicht mehr

Hi,

Ich habe ein Login erstellt leider auf einem Webspace von Funpic, heute morgen wollte ich gerne alles auf meinen Space verschieben und habe hierfür die connect.inc.php datei umgeändert soweit so gut , es Funktioniert alles auf meinem alten funpic webspace, nur auf meinem neuen streikt er und gibt mir die Meldung aus dass mein Pass angeblich falsch wäre, ist aber unmöglich.
Habe bereits schon das Pass neuerstellt, neuen User erstellt es hilft alles nichts bekomme immer wieder diese Nachricht... an was kann das liegen ? (habe die Original-Datenbank von Funpic exportiert und eingefügt.)

lg
Patrick
 
Funktioniert die Datenbank-Verbindung denn grundsätzlich mal? Also ich meine, hast du Fehlermeldungen eingebaut, wenn keine Verbindung mittels mysql_connect() aufgebaut werden konnte? Hast du error_reporting() und display_errors mal debugging-freundlich eingestellt?

PHP:
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
?>

Edith sagt: Wie siehts mit mysql_error() nach mysql_connect() und mysql_select_db() aus?
 
mhmmm komisch...

bei meinem alten webspace funktioniert das alles einwandfrei ...

Habe eben jetzt alles so eingefügt
<?php
session_start();
require("connect.inc.php");
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
?>

und habe eine Error ausgabe bekommen line 28
Code:
<?php if($_POST['username'] != "" ) {echo ' value="'.$_POST['username'].'"';} ?>
habe dass jetzt einfach rauslassen funktioniert ohne auch und eine weitere dass ich die variablo $password nicht gefüllt habe habe ich jetzt einfach mit
$password = $_POST['password'];
gelöst =)

jetzt habe ich nurnoch eine meldung

Notice: Undefined index: user_id in /xxx/xxx/xxx/xxx/maturaball/index.php on line 63 muss ich noch schaun wie ich das löse mhmmm aber danke =))
 
Tipp: Verwende

PHP:
if ( isset($_POST['username']) ) ...

statt auf != '' zu prüfen. Wenn das Array $_POST das Element 'username' nicht enthält bekommst du nämlich auch eine Warnung.

Außerdem lass mich raten: Alter Webspace => PHP4, neuer => PHP5?

PHP4-Code muss nicht fehlerfrei auf PHP5 laufen. Einige Dinge sind ausgebaut/anders gelöst worden.
 
Tipp: Verwende

PHP:
if ( isset($_POST['username']) ) ...

statt auf != '' zu prüfen. Wenn das Array $_POST das Element 'username' nicht enthält bekommst du nämlich auch eine Warnung.

Außerdem lass mich raten: Alter Webspace => PHP4, neuer => PHP5?

PHP4-Code muss nicht fehlerfrei auf PHP5 laufen. Einige Dinge sind ausgebaut/anders gelöst worden.

ja habe ich leider feststellen müssen =(( habe ein neues Problem leider habe ja den Code von Grubi bekommen

PHP:
<?php
session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
	header("location:index.php");
	die;
}
require("connect.inc.php");

$userid = false;

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(isset($_POST['id']) && ctype_digit($_POST['id']))
    {
        $userid = $_POST['id'];
	
		////EINFÜGEN !!
    $id = $_POST['id'];
  	$begr = $_POST['begr'];
	$punkte = $_POST['punkte'];
	$posne = $_POST['posne'];


  

 
	
     $aendern = "UPDATE katalog
	 	Set
			`begr` = '$begr',
			`punkte` = '$punkte',
			`posne` = '$posne'
		

	  WHERE `id` = $userid";
     $update = mysql_query($aendern);	


	 
	  }else{
		

		// Hier alle Felder validieren. Z.B. prüfen, ob eines leer ist bzw. ob ungültige Werte darin enthalten sind
        // Anschließend Daten in die Datenbank eintragen. BenutzerID steht in $userid
    

        if($update)
        {


			header('Location: sichere_seite.php?page=katalog_erfolg');
            exit;
        }
		else
		{
		echo "Fehler!";
		}
		
    }
    //  den else-Teil können wir uns sparen. Wenn eine ungültige ID übergeben wurde, wird $userid nicht verändert. Er springt also automatisch in den unteren else-Zweig "Ungültige Anfrage"
}
elseif(isset($_GET['id']) && ctype_digit($_GET['id']))
{
    $userid = $_GET['id'];
}

if($userid !== false)
{
//VORSICHT
    $sql = "SELECT id, posne, punkte, begr FROM `katalog` WHERE `id` = ".$userid;
    $result = mysql_query($sql);
    if(mysql_num_rows($result) == 1)
    {
        $userdata = mysql_fetch_object($result);
?>		
		<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
formular
<?php
		
        // Formular aufbauen und Felder mit den Daten füllen
        // als action-Pfad wieder den Dateinamen wählen (z.B. site.php?page=benutzer_bearbeiten)
        // ein (hidden-)Feld mit der BenutzerID erstellen das id heißt
        // falls es beim abschicken (POST-TEIL) Fehler gab, kannst du eventuell die Daten aus dem POST nehmen, anstatt die Daten aus der Datenbank. Das ist dir überlassen ;)
    }
    else
    {
        // Fehlermeldung: Benutzer nicht gefunden!
    }
}
else
{
    // Fehlermeldung: Ungültige Anfrage
}
mysql_error()
?>

nur leider bekomme ich bei der weiterleitung (head) eine fehlermeldung

Warning: Cannot modify header information - headers already sent by (output started at /hl/maturaball/sichere_seite.php:14) in /h/html/maturaball/katalog_bearbeiten.php on line 38

kann mit der Fehlermeldung leider nichts anfangen da ich line 38 nur dass stehn habe header('Location: sichere_seite.php?page=katalog_erfolg');
 
Zuletzt bearbeitet:
Zurück