Antworten auf deine Fragen:
Neues Thema erstellen

überstieg php 5 mysql 5

patrick1155

Noch nicht viel geschrieben

Hi,

Durch den umstieg auf PHP bzw MYSQL 5 habe ich leider Probleme mit meinem Script bekommen,

Es geht um mein Login script der die Head funktion nicht mehr so richtig akzeptiert grund habe ich leider nicht gefunden daher wollte ich das Problem einwenig umgehen und habe es so gelöst das die Head funktion erst per Klick auf den Submit button ausgelöst wird

Code:
<?

ob_start();

 if(isset($_POST['submit']))

        {      

header('Location:sichere_seite.php?page=katalog_erfolg');

        }

ob_end_clean();

ob_flush();    
?>
nur leider funktioniert dass auch nicht bekomme keine Fehlermeldung nichts werde auch nicht auf meine nächste seite weitergeleitet...

mhmmmmm hätte jemand die Lösung für mein Problem?

lg
 

patrick1155

Noch nicht viel geschrieben

AW: überstieg php 5 mysql 5

ja ist nur ein teil von der Seite =)

!: Katalog_bearbeiten.php ist eine Seite worauf man weitergeleitet wird wenn man auf Bearbeiten der jeweiligen Kategorie klickt, dort wird dann die ID abgerufen damit man alles bearbeiten kann deshalb arbeite ich damit

Code:
<?

//Katalog_bearbeiten.php

//überprüfung vom Login

ob_start();  

session_start();



if(!session_is_registered('user') || $_SESSION['user'] == "") {

     

    header("location:index.php");

    

    die;

    

}

require("connect.inc.php");

//Ende der überprüfung



//Abfrage der mitgesendeten ID einer anderen Seite

$userid = false;



if($_SERVER['REQUEST_METHOD'] == 'POST')

{

    if(isset($_POST['id']) && ctype_digit($_POST['id']))

    {

        $userid = $_POST['id'];

    

// Tabellen im Formular Variablen zuordnen + endern

    $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{

        

        // valdiierung kommt nocht

        

 //Wenn update ausgeführt wird kommt auch erst      

    }

}

if(isset($_GET['id']) && ctype_digit($_GET['id']))

{

    $userid = $_GET['id'];

}



if($userid !== false)

{



    $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);

    



       // 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

} 

ob_flush();

ob_clean();





?> 
///FORMULAR

<?

ob_start();

 if(isset($_POST['submit']))

        {      

header('Location:sichere_seite.php?page=katalog_erfolg');

        }

ob_end_clean();

ob_flush();    

mysql_close();



?>
is a bissi a durcheinander das bitte zuentschuldigen xD

ok habe gerade gemerkt das untere IF wird garnicht ausgeführt ??¿¿
 
Zuletzt bearbeitet:

patrick1155

Noch nicht viel geschrieben

AW: überstieg php 5 mysql 5

Eine frage wenn ich die Meldung bekommen
Code:
[B]Warning[/B]: Cannot modify header information - headers already sent by (output started at /home/www/web358/html/maturaball/connect.inc.php:10) in [B]/home/www/web358/html/maturaball/katalog_bearbeiten.php[/B] on line [B]21

[/B]heißt das ja soviel dass die Funktion HEAD auch schon in meiner connect.inc.php Datei ausgeführt wird, habe dass zuerst auf meine Sec_page gehabt und habe dort das Problem gelöst aber dort finde ich leider keinen fehler

Code:
<?
$dbHost = "localhost";
$dbUser = "";
$dbPass = "";
$dbName = "u7";

$connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
$selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank <b>$dbName</b> nicht ausw&auml;hlen!");

?>
was soll da bitte falsch sein ?...
 

Chickenshooter

Alter Mann

AW: überstieg php 5 mysql 5

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web358/html/maturaball/connect.inc.php:10)
Die Fehlermeldung ist "Programm" Du hast eine Ausgabe in Zeile 10 deiner
connect.inc.php der Fehler kann sein falsche DB-Username, passwort,
host....
das musst Du checken, das kann ich nicht tun.

Cannot modify header information
heisst wenn eine Ausgabe schon erfolgt ist kann der Header des HTML Streams
nicht mehr geändert werden. In Deinem Fall in wurden schon Headerdaten
in den Stream gegeben, somit ist eine Änderung nicht zulässig.
Übersetzt: Kann Kopfinformation nicht modifizieren.
 

patrick1155

Noch nicht viel geschrieben

AW: überstieg php 5 mysql 5

Ja so habe ich es mir auch gedacht , nur habe jetzt einen neuen Code z.b.


Code:
<?
include("connect.inc.php");

//Ende der überprüfung

$userid = $HTTP_GET_VARS[id]; //ID aus url nehmen

//wenn userid = ""

if($userid == "")
{
header('Location: http://www.google.at/');
}






?>    

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

    <title>...</title>

<link rel="stylesheet" type="text/css" href="style.css"></head>

<body>

<form action="sichere_seite.php?page=katalog_bearbeiten" method="post">

<table width="399" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">

    <tr>

        <td bgcolor="#e7e7e7" align="center" colspan="2"><strong><? echo "$userid"; ?> Katalog bearbeiten 

            <input name="id" type="hidden" class="input" value="<? echo "$userid" ?>" size="20">

      </strong></td>

    </tr>

    <tr>

      <td width="158" bgcolor="#e7e7e7">Aufgabe</td>

      <td width="218" bgcolor="#ffffff"><input type="text" bgvolor="#e7e7e7" name="begr" value="<? $benabf = "SELECT begr FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->begr;

    }





      ?>" size="20" class="input">

      </label></td>

    </tr>

    <tr>

      <td bgcolor="#e7e7e7">Punkte</td>

      <td bgcolor="#ffffff"><label>

        <input type="text" bgvolor="#e7e7e7" name="punkte" value="<? $benabf = "SELECT punkte FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->punkte;

    }





      ?>" size="20" class="input">

      </label></td>

    </tr>

    <tr>

      <td bgcolor="#e7e7e7">+,-</td>

      <td bgcolor="#ffffff"><label></label>

        <select name="posne">

        <option value="<? $benabf = "SELECT posne FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->posne;

    }



      ?>" selected><? $benabf = "SELECT posne FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->posne;

    }



      ?></option>

          <option value="0">Ausw&auml;hlen</option>

          <option value="+">+</option>

          <option value="-">-</option>

                </select></td>

    </tr>

    <tr>

      <td bgcolor="#e7e7e7" align="center" colspan="2"><label></label></td>

    </tr>

    <tr>

        <td bgcolor="#e7e7e7" align="center" colspan="2">

        <input type="submit" name="submit" value="Datei bearbeiten" class="button">        </td>

    </tr>

    <tr>

        <td bgcolor="#e7e7e7" align="center" colspan="2">

        <a href="sichere_seite.php">Zur&uuml;ck zur Admin-Seite</a>        </td>

    </tr>

</table>

</form>

</body>

</html>

Also ohne Head am anfang in der überprüfung ect ect ect ect aber bekomme weiterhin die selber Fehlermeldung ... seit MYSQL , PHP 5-.-
 

Chriss1987

me.drinkCoffee();

AW: überstieg php 5 mysql 5

Hi,

Kaede hat recht, hab ja schon oft darüber geschrieben, dass bei vielen php-Installationen die Shorttags (<? ?>) deaktiviert sind! Verwende lieber die "normale" notation mit (<?php ?>). Sollte das dein Problem nicht lösen, gehe ich auch von einer falschen Verbindung zur DB aus. Überprüfe diese Verbindung mal seperat. Sollte die Verbindung korrekt sein, dann überprüfe doch bitte mal die Codierung der Dateien, oftmals gibt es bei UTF-8 mit BOM die Probleme, dass einzelne Bits bereits zum Clienten gesendet werden. Sollte auch das nicht zutreffen, dann schau doch mal, ob in der "connect.inc.php"-Datei nach dem schließenden php-Tag ein Leerzeichen oder ein Zeilenumbruch vorhanden ist, das wird nämlich auch an den Client übertragen...

Schöne Grüße aus dem Sauerland!
Chriss
 

Chriss1987

me.drinkCoffee();

AW: überstieg php 5 mysql 5

Hi,

die Codierung kannst du z.B. beim Notepad++ unten rechts im Fenster überprüfen, da wird die jeweilige Codierung angezeigt. Mit welchem Editor arbeitest du? Wie sieht dein jetziges Script aus?

Schöne Grüße aus dem Sauerland!
Chriss
 

patrick1155

Noch nicht viel geschrieben

AW: überstieg php 5 mysql 5

Ich arbeite mit Dreamweaver 8 ...

Derzeitiger code ist
Code:
<?php
ob_start();
$dbHost = "";
$dbUser = "";
$dbPass = "";
$dbName = "";

$connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
$selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank <b>$dbName</b> nicht ausw&auml;hlen!");
ob_end_flush();

//Ende der überprüfung

$userid = $HTTP_GET_VARS[id]; //ID aus url nehmen

//wenn userid = ""

if($userid == "")
{

header('Location: http://www.google.at/');

}






?>    

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

    <title>...</title>

<link rel="stylesheet" type="text/css" href="style.css"></head>

<body>

<form action="sichere_seite.php?page=katalog_bearbeiten" method="post">

<table width="399" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">

    <tr>

        <td bgcolor="#e7e7e7" align="center" colspan="2"><strong><? echo "$userid"; ?> Katalog bearbeiten 

            <input name="id" type="hidden" class="input" value="<? echo "$userid" ?>" size="20">

      </strong></td>

    </tr>

    <tr>

      <td width="158" bgcolor="#e7e7e7">Aufgabe</td>

      <td width="218" bgcolor="#ffffff"><input type="text" bgvolor="#e7e7e7" name="begr" value="<? $benabf = "SELECT begr FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->begr;

    }





      ?>" size="20" class="input">

      </label></td>

    </tr>

    <tr>

      <td bgcolor="#e7e7e7">Punkte</td>

      <td bgcolor="#ffffff"><label>

        <input type="text" bgvolor="#e7e7e7" name="punkte" value="<? $benabf = "SELECT punkte FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->punkte;

    }





      ?>" size="20" class="input">

      </label></td>

    </tr>

    <tr>

      <td bgcolor="#e7e7e7">+,-</td>

      <td bgcolor="#ffffff"><label></label>

        <select name="posne">

        <option value="<? $benabf = "SELECT posne FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->posne;

    }



      ?>" selected><? $benabf = "SELECT posne FROM `katalog` WHERE `id` = ".$userid;

      $ergbenabf = mysql_query($benabf);

  while($row = mysql_fetch_object($ergbenabf))

    {

    echo $row->posne;

    }



      ?></option>

          <option value="0">Ausw&auml;hlen</option>

          <option value="+">+</option>

          <option value="-">-</option>

                </select></td>

    </tr>

    <tr>

      <td bgcolor="#e7e7e7" align="center" colspan="2"><label></label></td>

    </tr>

    <tr>

        <td bgcolor="#e7e7e7" align="center" colspan="2">

        <input type="submit" name="submit" value="Datei bearbeiten" class="button">        </td>

    </tr>

    <tr>

        <td bgcolor="#e7e7e7" align="center" colspan="2">

        <a href="sichere_seite.php">Zur&uuml;ck zur Admin-Seite</a>        </td>

    </tr>

</table>

</form>

</body>

</html>

<?



?>

Die seite wird dann über sec_seite über ?page=katalog_bearbeiten geöffnet ....

lg
 

Chriss1987

me.drinkCoffee();

AW: überstieg php 5 mysql 5

Hi,

also, gibt es eine logische Begründung, warum du an dieser Stelle mit
PHP:
ob_start():
und
PHP:
ob_end_flush();
arbeitest?
Meiner Meinung nach ist das nicht nötig!

$HTTP_GET_VARS ist veraltet! Benutze stattdessen $_GET!

$array[id] versucht zuerst, ein Feld mit der Konstanten id zu finden, ist id keine Konstante, wird id in einen String konvertiert und das Array erneut durchsucht, statt dessen: $array['id']!

Du hast die php-Tags nur am Anfang geändert und noch weitere Shorttags im Quelltext...

Schöne Grüße aus dem Sauerland!
Chriss

Edit: du übergibst die UserID per GET??? Naja, dann wird es ein leichtes sein, in den geschützten Bereich zu kommen ;) Nimm lieber $_SESSION oder so...
 
Zuletzt bearbeitet:

patrick1155

Noch nicht viel geschrieben

AW: überstieg php 5 mysql 5

Danke für die vielen Infos, die brechtigung wer auf die Seite kommen darf wird noch extra gemacht in dem Teil geht es eigendlich nur daraum dass wenn keine ID mitgesendet werden konnte man auf die seite xxx kommt aber bekomme trotz ausbesserungen noch den fehler


Warning: Cannot modify header information - headers already sent by (output started at /home/www/web358/html/maturaball/connect.inc.php:11) in /home/www/web358/html/maturaball/katalog_bearbeiten.php on line 21

aber in connect inc ist ALLES richtig ... muss aber an der datei liegen weil wenn ich es alleine aufmache funktioniert es ^^
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: überstieg php 5 mysql 5

Danke für die vielen Infos, die brechtigung wer auf die Seite kommen darf wird noch extra gemacht in dem Teil geht es eigendlich nur daraum dass wenn keine ID mitgesendet werden konnte man auf die seite xxx kommt aber bekomme trotz ausbesserungen noch den fehler


Warning: Cannot modify header information - headers already sent by (output started at /home/www/web358/html/maturaball/connect.inc.php:11) in /home/www/web358/html/maturaball/katalog_bearbeiten.php on line 21

aber in connect inc ist ALLES richtig ... muss aber an der datei liegen weil wenn ich es alleine aufmache funktioniert es ^^

Hi,
könntest du die beiden Dateien mal in ein zip-Archiv packen und hochladen? (DB-Passwort entfernen nicht vergessen) Dann schaue ich mir die Dateien mal schnell an ;)

Schöne Grüße aus dem Sauerland!
Chriss

Edit: kannst mir auch ne PN mit dem Link schicken...
 

patrick1155

Noch nicht viel geschrieben

AW: überstieg php 5 mysql 5

Hi danke=)

Aber habe das Problem jetzt gefunden gelöst =))

Also folgendes habe bei meiner sec_site einfach oben
ob_start();
und am ende
ob_flush();
und alle <? ind <?php wie du es gesagt hast
einschreiben müssen das wars eigendlich soweit funktioniert es =)

ES FUNKTIONIERT ALLES WIEDER !!!!!!!!!!!! DANKEEE CHRISS !!!!!!!!!!!!!!!!!!!!!!!
lg
 

Chriss1987

me.drinkCoffee();

AW: überstieg php 5 mysql 5

Hi danke=)

Aber habe das Problem jetzt gefunden gelöst =))

Also folgendes habe bei meiner sec_site einfach oben
ob_start();
und am ende
ob_flush();
und alle <? ind <?php wie du es gesagt hast
einschreiben müssen das wars eigendlich soweit funktioniert es =)

ES FUNKTIONIERT ALLES WIEDER !!!!!!!!!!!! DANKEEE CHRISS !!!!!!!!!!!!!!!!!!!!!!!
lg

Hi,

ok, wenns so funktioniert, dann ist ja gut, wobei ich mal denke, dass iwo noch eine Ausgabe drinn ist, weil es müsste theoretisch auch ohne ob_start(); funktionieren!

Schöne Grüße aus dem Sauerland!
Chriss
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben