PHP - Script mit Editierproblem in ein csv - File

PHP - Script mit Editierproblem in ein csv - File

am 28.05.2005 17:26:43 von Bernd Roth

Hallo,

das folgende Script legt Datensätze in ein csv-File ab und soll diese, wenn
....?edit=idnummer übergeben wird, diesen auch editieren. Leider funkt. dies
nicht und ich bin schon verzweifelt.

Bitte um Hilfe!

Danke!!!

Bernd


$filename = 'events.csv';

if ($HTTP_GET_VARS['edit'])
{
function getArrayFromFile($idvergleichen)
{
$errormsg = 'Fehler beim Öffnen der Datei';
$fp=@fopen('events.csv', 'r') or die ($errormsg);
while ($line = fgets($fp, 1024))
{
$line=trim($line);
if(strpos($line, $idvergleichen)> -1)
{
$datensatzzumeditieren[] = explode(';',$line);
}
}
fclose($fp);
return $datensatzzumeditieren;
}
$datensatz = getArrayFromFile($HTTP_GET_VARS['edit']);
$idedit = $datensatz[0][0];
$eventname = $datensatz[0][1];
$ort = $datensatz[0][2];
$kategorie = $datensatz[0][3];
$datum = $datensatz[0][4];
$ueberschrift = 'Datensatz editieren';
}
else
{
$eventname = $HTTP_POST_VARS['eventname'];
$ort = $HTTP_POST_VARS['ort'];
$kategorie = $HTTP_POST_VARS['kategorie'];
$datum = $HTTP_POST_VARS['datum'];
$ueberschrift = 'Neuen Datensatz eingeben';
}
$msg = '';
$msgeventname = ''; // eventname
$msgort = ''; // ort
$msgkategorie = ''; // kategorie
$msgdatum = ''; // datum
$msgMyImage = ''; // Image
$noSave = 'Der Datensatz wurde nicht gespeichert!';
$yesSave = 'Der Datensatz wurde erfolgreich gespeichert!';
$kategorienamen = array("Oper", "Theater", "Kabarett");


// CSV-File Separator
// als Konstante definert
// ! wird ohne $ verwendet !
define(SEP, ';');

// erlaubte Typen für File Upload
$allowedImgs = array(
'image/gif',
'image/jpg',
'image/jpeg',
'image/pjpeg'
);

if (!empty($HTTP_POST_VARS['save'])) // Abfrage submit oder edit existiert?
{
if ($kategorie == "Kategorie auswählen...")
{
$kategorie = '';
}
if (!empty($ort) && !empty($eventname) && !empty($kategorie) &&
!empty($datum))
{
// uniqid generieren
// uniqid('') -- generiert eine einmalige
// Buchstaben-Ziffern Kombination
$id = uniqid('');

// wenn ein Image vorhanden ist
if ($HTTP_POST_FILES['myImage']['size'] > 0)
{
// Größe des Files prüfen
if ($HTTP_POST_FILES['myImage']['size'] < 51200)
{
// File Typ prüfen (mittels in_array())
if(in_array($HTTP_POST_FILES['myImage']['type'],$allowedImgs ))
{
// Extension des Files herausfinden
preg_match('/\.(.+)$/', $HTTP_POST_FILES['myImage']['name'],
$ret);
$ext = trim($ret[1]);

// neuen Namen vergeben
// $id wurde oben generiert (uniqid())
$newName = $id.'.'.$ext;

// das File kommt in das Verzeichnis images
$newPath = "images/$newName";

// File aus dem Temp Verzeichnis
// in das gewünschte Verzeichnis kopieren
// Achtung:
// das Verzeichnis muss mit entsprechenden Rechten
// versehen sein!
copy($HTTP_POST_FILES['myImage']['tmp_name'], $newPath);
} else
{
$msgMyImage = 'Unerlaubter Filetyp!';
$msg = $noSave;
}
} else
{
$msgMyImage = 'Das Image ist zu groß!';
$msg = $noSave;
}
} // End: Image

// nur, wenn beim File alles OK (korrekter Typ, Größe) ist!
if (empty($msgMyImage))
{
// eventuell vorhandene ; entfernen
// ! SEP (Konstante) ohne $ verwenden !
$eventname = str_replace(SEP, '',
$eventname);
$ort = str_replace(SEP, '',
$ort);
$kategorie = str_replace(SEP, '',
$kategorie);
$datum = str_replace(SEP, '',
$datum);

if ($HTTP_GET_VARS['edit'])
{
function getArrayFromFile2()
{
$errormsg = 'Fehler beim Öffnen der Datei';
$fp=@fopen('events.csv', 'r') or die ($errormsg);
$alle = file('events.csv');
fclose($fp);
return $alle;
}

$alle = getArrayFromFile2();

foreach ($alle as $key => $value) /* ALLE IST EIN ARRAYELEMENT !!!!!!!!!! */
{
if ($value == $idedit)
{
$alle[$value+1] = $eventname;
$alle[$value+2] = $ort;
$alle[$value+3] = $kategorie;
$alle[$value+4] = $datum;
}
}
$handle = fopen ($filename, 'w');
for( $i = 0; $i <= 4; $i++)
{
fwrite($handle,$alle[$i]);
}


fclose($handle);
}
else
{
// Zeile zusammenstellen
$line = $id.SEP."\n".
$eventname.SEP."\n".
$ort.SEP."\n".
$kategorie.SEP."\n".
$datum.SEP."\n".
$newName."\n";

$handle = @fopen ($filename, 'a');
fwrite ($handle, $line);
fclose($handle);
}

// allgmeine Message
$msg = $yesSave."
($line)";
if (!empty($newName))
{
$msg .= '
';
$msg .= '
'.
'Zum Image-Verzeichnis
';
}

// zurücksetzen von ort + eventname
$ort = '';
$eventname = '';
$kategorie = '';
$datum = '';
}
} else
{
// ort oder/und eventname oder/und kategorie oder/und datum nicht vorhanden
// Verarbeitung endet hier
if (empty($eventname))
{
$msgeventname = 'Bitte geben Sie einen Eventnamen an!';
}
if (empty($ort))
{
$msgort = 'Bitte geben Sie einen Ort an!';
}
if (empty($kategorie))
{
$msgkategorie = 'Bitte geben Sie eine Kategorie an!';
}
if (empty($datum))
{
$msgdatum = 'Bitte geben Sie ein Datum an!';
}
$msg = $noSave;
}
}
?>



Events





// betrifft allgemeine Message
if (!empty($msg))
{
?>



}
// wird nur ausgegeben, wenn kein Eventname
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgeventname))
{
?>



}
?>




// wird nur ausgegeben, wenn kein ort
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgort))
{
?>



}
?>




// wird nur ausgegeben, wenn keine Kategorie
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgkategorie))
{
?>



}
?>




// wird nur ausgegeben, wenn kein Datum
// angegeben wurde
// ! (nur, wenn das Formular submittet wurde) !
if (!empty($msgdatum))
{
?>



}
?>




// wird nur ausgegeben,
// wenn Probleme beim ImageUpload auftauchen
if (!empty($msgMyImage))
{
?>



}
?>










?>
Eventname*

Ort*

?>
Kategorie*




Datum*(TT.MM.JJJJ)

?>
Image (gif, jpg, < 50 k)


/>
* Pflichtfelder



Re: PHP - Script mit Editierproblem in ein csv - File

am 28.05.2005 18:28:04 von Niels Braczek

Bernd Roth schrieb:

> das folgende Script legt Datensätze in ein csv-File ab und soll diese, wenn
> ...?edit=idnummer übergeben wird, diesen auch editieren. Leider funkt. dies
> nicht und ich bin schon verzweifelt.

1.17. Wie stelle ich meine Frage an die Newsgroup am sinnvollsten?
http://www.php-faq.de/q/q-newsgroup-fragen.html, insbesondere Punkt 4.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: PHP - Script mit Editierproblem in ein csv - File

am 29.05.2005 02:47:49 von Dominic Luechinger

Niels Braczek schrieb:
> Bernd Roth schrieb:
>
>
>>das folgende Script legt Datensätze in ein csv-File ab und soll diese, wenn
>>...?edit=idnummer übergeben wird, diesen auch editieren. Leider funkt. dies
>>nicht und ich bin schon verzweifelt.
>
>
> 1.17. Wie stelle ich meine Frage an die Newsgroup am sinnvollsten?
> http://www.php-faq.de/q/q-newsgroup-fragen.html, insbesondere Punkt 4.
Weiter sollte man auch Crosspostings
(http://de.wikipedia.org/wiki/Crossposting) unterlassen -> siehe
de.comp.lang.php.misc
>
> MfG
> Niels
>